在ECMAscript中,
变量
可以存在两种类型的值,即
原始值和引用值
。
原始值:存储在栈中的简单数据段,也就是说,他们的
值直接存储在变量访问的位置。
引用值:存储在堆中的对象,也就是说,
存储在变量处的值是一个指针,指向存储对象的内存处。
在ECMAscript的原始类型:
underfined、bolean、null、number、string。
使用
typeof()判断一个值是否在某个原始类型内;
null是object的占位符,当var a = null;它的类型为object。
var a;变量进行了声明,当我们并未给它赋值的时候会有一个默认值,为underfinde
alert(typeof c);//我们直接弹会弹出数据类型为
underfined
但是如果
实际使用会报错
例如:var oTemp; alert(oTemp2 == undefined);//会报错
当函数无明确返回值时,返回的值也是underfined:
例如:function check (){
}
alert(check()==underfined); //true
Null
var a = null; 值是null,null是对象的占位符,所以typeof为object
值underfined实际上是从
值null派生出来的因此ECMA把它们定义为相等的。即alert(underfined == null);
null和underfined的值相等但是含义不同,underfined是声明了变量,但未对其初始化时赋予该变量值,空表示尚未存在的对象。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是null。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是null。
ECMA
规定啦alert(NaN == NaN) //false
ECMAscript 提供了大量的简单的类型转换方法。
bolean、数字、字符串的原始值有趣之处在于他们是伪对象。
总而言之,3 种主要的原始类型 Boolean 值、数字和字符串都有 toString() 方法,可以把它们的值转换成字符串。