Js有2种类型的值,分别是原始类型值和引用类型值。
原始类型
原始类型值(基础数据类型)有5种,分别是:
Undefined、Null、Boolean、Number、String。
原始类型值储存在栈(stack)内存中,大小固定,可以直接访问。
引用类型值(类对象Object)
引用类型值储存在堆(heap)内存中,大小不固定,存储在变量处的值是一个指针(point),指向存储对象的内存处。(抄的,还是不太理解)
Undefined
Undefined只有一个值,既undefined。在声明变量但未初始化时,这个变量的值就是undefined。如:
var a;
alert(a); => undefind
// var b;
alert(b); => 报错
当声明一个变量为初始化,输出的值为undefined,但如果直接输出一个未声明的值就会报错。不管声明未初始化和未声明,它们的值类型用typeof
检测都是undefined,两者不矛盾。如:
var a;
// var b;
Boolean(typeof a === typeof b); => true
Null
Null也只有一个值,既null。
从技术角度来看,null值表示一个空对象指针。所以,用typeof
检测数据类型为“object”。
如果声明变量用于保存对象,最好初始化为null。
undefined值是null的派生值。
Boolean(undefined == null); // => true
Boolean(undefined === null); // => false
Boolean
Js中使用最多的一种类型,有两个值 true 和 false 。
所有类型的值都与Boolean值有等价值。可用Boolean()函数转换。
数据类型 | true值 | false值 |
---|---|---|
Boolean | true | fasle |
String | 任何非空字符串 | ""(空字符串) |
Number | 任何非零数字值(包括无穷大) | 0和NaN |
Object | 任何对象 | null |
Undefined | n/a | undefined |
控制语句(如if)会把数据值隐式转换为Boolean值。如:
if("字符串"){
console.log(true);
}
Number
Number类型使用IEEE754格式表示整数和浮点数值。
三种字面量格式:十进制、八进制、十六进制。
网友评论