javascript数据类型

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是内置对象,不是函数。