浅谈javascript中的数据类型和引用类型

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;
        }
原文地址:https://www.cnblogs.com/JhoneLee/p/3540413.html