JavaScript学习记录(1)— 数据类型

122 阅读2分钟

Undefined类型

  • Undefined类型仅有一个值,即undefined;
  • 当var声明的变量但未进行初始化时,对应的变量值即为undefined。同时,对未声明的变量执行typeof操作符时也会返回undefined值。

Null类型

  • Null类型仅有一个值即null,null表示一个空对象指针。
  • typeof操作符检查null值会返回object,因为本身就是指向一个对象。 一般用于初始化一些用于保存对象的变量。
  • undefined值派生自null,即 null == undefined。

Boolean类型

  • 仅有两个字面值:true 和 false,与数字值不是一回事,true不一定等于1,false不一定等于0
  • ECMAScript中所有类型的值都有和这两个Boolean等价的值,可使用Boolean()函数对任意值进行转型,转换为boolean类型。
var message = "Hello world";
var messageToBoolean = Boolean(message);
  • 各类型转换关系

Number类型

  • 0开头 八进制(严格模式下无效), 0x开头 十六进制
  • e 科学记数法,如var num = 3.125e7; // 等价于31250000,默认情况下ECMAScript会将小数点后带6个零以上的浮点数转换为用e表示。
  • 浮点数最高精度为17位小数,但不要测试特定的浮点数值,如
if (a + b == 0.3){ // 当a和b位为0.1和0.2时,a+b=0.30000000000000004
  alert("you got 0.3!");
}
  • Number.MIN_VALUE 最小值 5e-324,如果负数超出JavaScript这个最小值,则会被转换为-Infinity(负无穷),Number.MAX_VALUE 最小值 1.79769311348623157E+308,如果正数超出JavaScript这个最大值,则会被转换为Infinity(正无穷);
    可用使用isFinite()函数检测数值是否为无穷值。
  • NaN(Not a Number),特殊数值,本来要返回数值的操作数但是未返回数值的情况,例如除零就会返回NaN。
    NaN和任何数值都不相等,包括本身。
    判断数值是否为NaN必须使用isNaN()函数(函数尝试将传入参数转换为数值)。
  • Number(),parseInt(),parseFloat()函数都可用于数值转换,转换规则为

parseInt的用法(不指定基数和指定基数):

String类型

由0个或多个16位Unicode字符组成的字符串。

  • 字符串字面量

  • 字符串一旦创建就不能修改,改变某个变量保存的字符串,实质是销毁原字符串,然后用一个包含新值的字符串填充该变量。
  • 利用toString()方法将一个值转换为字符串,注意此时null和undefined没有toString方法

指定进制的情况下:
针对null和undefined的转换,可用String()函数实现,此时会将null转换为"null",将undefined转化为"undefined"

Object类型

一组数据和功能的集合。创建对象的方法为:

var o = new Object();

Object的每个实例都具有如下属性和方法:

参考

《JavaScript 高级程序设计》 第三版