JavaScript数据类型

来源:互联网 发布:mysql空闲连接 编辑:程序博客网 时间:2024/06/05 09:13

JavaScript中有5中简单数据类型(也称基本数据类型):Undefined、Null、Boolean、Number和String,一种复杂数据类型:Object,JavaScript中所有值最终都属于上述6中数据类型之一。

typeof操作符:检测给定变量的数据类型

检测类型 检测结果 未定义 undefined 布尔值 boolean 字符串 string 数值 number 对象 或者 null object 函数 function

在这里 null的类型检测为object,是因为在JavaScript中特殊在null被认为是一个空的对象引用。

Undefined类型

Undefined类型只有一个值,即特殊的undefined,在使用var什么变量但未对其加以初始化时,这个变量的值就是undefined,当然如果变量如果未申明,直接检测是得不到任何类型的,只会报错。

    var name;    console.log(name == undefined)//true    console.log(age)//产生错误

Null类型

Null类型也是只有一个值的数据类型,这个特殊值是null,从逻辑角度上看,null值表示一个空指针对象,所以检测类型是object,实际上undefined值派生自null值,所有对他们进行检测,会返回true。

    var car = null;    console.log(typeof car);//object    console.log(null == undefined);//true

Boolean类型

Boolean类型是JavaScript中使用最多的一种类型,该类型只有两个字面值:true和false。下面是各种数据类型转换为Boolean类型的转换规则

数据类型 转换为true值 转换为false值 Boolean true true String 任何非空字符串 “ ”(空字符串) Number 任何非0数字 0 或者 NaN Object 任何对象 null Undefined n/a undefined

Number类型

Number类型是最令人关注的数据类型,拥有各种数值类型,整数、浮点数、八进制、十六进制、nan等。它拥有3个函数,可以把非数值转换为数值,分别是:Number()、parseInt()、parseFloat()。
Number()转换规则

被转换类型 Number()转换的结果 Boolean: true 1 Boolean: false 0 数字值 简单传入和返回 null 0 undefined NaN 字符串:只包含数字的 转换为十进制数值 空字符串 0 字符串:包含十六进制格式 转换为大小相同的十进制数值 字符串:除上面之外 NaN

parseInt()函数转换规则

    var num1 = parseInt("1234blue"); //1234    var num2 = parseInt("blue12bb34"); //nan    var num3 = parseInt("blue1234"); //nan    var num4 = parseInt(""); //nan    var num5 = parseInt("0xA"); //10 十六进制数    var num6 = parseInt("22.5"); //22     var num7 = parseInt("070"); //56 八进制数     var num8 = parseInt("70"); //70 十进制数     var num9 = parseInt("0xf"); //15 十六进制数 

String类型

String类型用于表示由零或者多个16位Unicode字符串组成的字符序列,即字符串。
字符串特点:

字符串是不可变的,一旦创建,它们的值就不能改变,要改变某个变量保存的字符串,首先要销毁原来字符串,然后再用一个另一个包含新值的字符串填充该变量。

转换为字符串

  1. 如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果;
  2. 如果值是null,则返回“null”;
  3. 如果值是undefined,则返回“undefined“;
  4. toString()方法中如果带有参数,则会根据参数的类型转换为不同进制的数值。

Objcet类型

对象其实就是一组数据和功能的集合,对象可以通过new操作符后跟要创建的对象类型名来创建。创建的对象实例可以对其添加方法和属性。

var o = new Object();
0 0