
Javascript按存储方式区分变量类型:值类型(也称基本数据类型)和引用数据类型。
1.基本数据(值)类型
字符串型(String);数值型(Number);布尔型(Boolean);未定义(undefined);Null类型
2.引用数据类型
对象(Object)类型;数组类型(Array);函数类型(function)
3.区别
基本数据类型的变量存放的是基本类型数据的实际值;而引用数据类型的变量保存对它的引用,即指针。
引用数据类型好几个变量共用一个内存块,赋值一旦被修改,互相会有影响。
4.需注意
(1) typeof只能区分值类型的详细类型,如果这个值是引用数据类型或者null,则区分不出来
typeof 95 //"number"
typeof 'aa' //"string"
typeof true //"boolean"
typeof undefined //"undefined"
typeof null //"object"
var o= new Object();
typeof o //"object"
(2) null==undefined会返回true,但null===undefined会返回false。那么编码过程中,什么时候用“==”,什么时候用“===”呢?
a.对象的属性是否存在
if(obj.a==null){
//这里相当于obj.a===null||obj.a==undefined,简写形式
//这是jQuery源码中的推荐写法
}
b.函数的参数a是否存在
function(a,b){
if(a==null){
...
}
}
其他情况都用“===”。
(3)怎么判断一个变量a在if语句中是true还是false?
!!(a);
注: 0,NaN,’’,null,false,undefined–>会转换为false
(4)JS中的内置函数:Object,Array,Boolean,Number,String,Function,Date,RegExp,Error…
Math是内置对象,不是函数。




近期评论