1.概述
javascript中有五种简单数据类型和一种复杂数据类型。
分别是:undefind, null, number, string ,boolean ----简单数据类型
Object------复杂数据类型
令人迷惑的是还有以下若干种引用类型。
分别是:Array,Date,RegExp,Function,Object
Number,String,Boolean-----基本包装类型
Global Object,Math------单体内置对象
2.差异
大家有歧义的地方肯定是number string boolean和Number String Boolean之间的差异
光从字面意思分辨二者不太直观,说出东西来只能是理论,还很绕,我们可以做实验来分辨。
window.onload = function () { var a = 100; //number类型变量 var b = Number(100); //使用Number函数进行数据类型转换 var c = new Number(100); //定义一个Number对象且它的值为100 alert(typeof a + ',' + typeof b + ',' + typeof c); //number,number,object a.name = 'jack'; //设置属性无效 b.name = 'mary'; //设置属性无效 c.name = 'tom'; //name属性值为tom alert(a.name + ',' + b.name + ',' + c.name); //undefined,undefined,tom //--------------------华丽丽的分割线--------------------------------------- var d = new String(10); setValue(d); //形参赋值肯定无效,d仍为10 setName(d); //按照C语言的说法,此时d为name属性的指针。d的name为rose swapValue(c, d); //形参赋值还是无效,甭管形参是值还是指针.c的name还是tom swapName(c, d);//交换成功,c的name为rose }; function setName(obj) { obj.name = 'rose'; } function setValue(value) { value = 'rose'; } function swapValue(val1, val2) { val1 = val2; } function swapName(val1, val2) { val1.name = val2.name; }