原始值,即存储在栈(stack)中的简单数据段:Number、String、Boolean、Null、Undefined。
它们的值直接存储在变量访问的位置。
引用值,即存储在堆(heap)中的对象:Array、Function、Object。
存储在变量处的值是一个指针(point),指向存储对象的内存处。
注:在很多语言中由于string长度可变而被视为引用值,但在js中string属于原始值。
使用 typeof 运算符来判断一个值是否在某种类型的范围内:
var sTemp = "test string";
alert (typeof sTemp); //输出 "string"
alert (typeof 86); //输出 "number"
对变量或值调用 typeof 运算符将返回下列值之一:
- undefined - 如果变量是 Undefined 类型的(意为缺少值:未声明、声明的变量未初始化、函数无明确返回值)
- boolean - 如果变量是 Boolean 类型的
- number - 如果变量是 Number 类型的
- string - 如果变量是 String 类型的
- object - 如果变量是一种引用类型或 Null 类型的(null 被认为是对象的占位符)