基本数据类型及检测方法

  • 1、数据类型
    es5的数据类型:Number、String、 Underfined 、Null 、Boolean 、Object
    引用数据类型包括 Object、Array、Function
    es6新增数据类型:Symbol

  • 2、什么是基本数据类型、引用数据类型
    基本数据类型指的是简单的数据段,而引用数据类型指那些可能由多个值构成的对象;
    引用类型的值是保存在内存中的对象,对Javascript来说,不能直接访问内存的位置。在操作对象时,实际时操作对象的引用而不是实际的对象,为此,引用类型是按引用访问的。

  • 3、探讨复制变量值的影响
    3.1 、基本数据类型

    <script>
        var num1 = 123;
        var num2 = num1;
        console.log(num2); //123
        num1 = 'liujie'
        console.log(num1); //liujie
        console.log(num2); //123
    </script>

如果从一个变量(num1)向另一个变量(num2)复制基本数据类型的值,会在变量对象上创建一个新值,然后为将值赋给新分配的位置上。,两个变量相互独立,不互相影响。
在这里插入图片描述
3.2、 引用数据类型
下面这个,变量obj1保存了一个对象的新实例,然后将它的值复制到了obj2中,因为这两个变量都指向同一个对象,这样,当为obj2添加name属性时,可以通过obj1.name访问,下面图中展示了保存在变量对象中的变量及保存在堆中的对象之间的关系。两者互相影响了。

        var obj1 = new Object();
        obj2 = obj1;
        obj2.name = 'Niolas'
        console.log(obj2.name);
        console.log(obj1.name);

在这里插入图片描述

  • 4、检测数据类型
    4.1、typeof
    typeof能检测一个变量是否是基本数据类型,也就是说 String、Number、Boolean、Underfined。type一般用来检测基本数据类型,但是检测引用类型时该操作符用处不大。

有点不同的是,typeof null是Object,typeof null也是Object

 		console.log(typeof 1); //number
 		console.log(typeof '1'); //string
        console.log(typeof [1, 2, 3]); //object
        num = null
        console.log(typeof null); //object
        num1 = NaN
        console.log(typeof num1); // number
        num2 = true
        console.log(typeof num2); //boolean
        var num3 = new Object();
        console.log(typeof num3); //object
        var num3 = function() {

        }
        console.log(typeof num3); //function

4.2、instanceof
通常我们想知道某个值是什么类型的对象时,typeof不再适用。下面例子可以看出,在检测引用类型值和Object构造函数时,均返回true,但instanceof 基本数据类型时都返回false。

        console.log(1 instanceof Number); //f
        console.log('1'
            instanceof String); //f
      console.log([1, 2, 3] instanceof Object); //t
        num = null
        console.log(null instanceof Object); //false
        num1 = NaN
        console.log(num1 instanceof Number); //false
        num2 = true
        console.log(num2 instanceof Boolean); //f
        var num3 = new Object();
        console.log(num3 instanceof Object); //t
        var num3 = function() {

        }
        console.log(num3 instanceof Function); //t
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值