美文网首页
JS中数据类型及类型判断

JS中数据类型及类型判断

作者: 奋斗_登 | 来源:发表于2023-03-08 17:31 被阅读0次
    1.数据类型

    ES6中有6种简单数据类型(也称为原始类型)Undefined、Null、Boolean、Number、String、Symbol。Symbol(无符号)是ES6新增类型,可用于属性名定义。还有一种复杂数据类型Object(对象)也称为引用类型,它是JS语言中所有对象的基类。Object是一种无序名值对的集合。因为ES6中不能定义自己的数据类型,所有值都可以用这7种数据类型之一表示。但ES6的数据类型很灵活,一种数据类型可以当做多种数据类型来使用。
    内置引用类型包含:

    • 基本引用类型:Date、RegExp、Function、原始值包装类型(Boolean、Number、String)、单体内置对象(Global、Math)
    • 集合应用类型:Object、Array、定型数组(ArrayBuffer、DataView)、Map、WeakMap、Set、WeakSet
      JS数据类型.png
    2.数据类型判断

    typeof
    typeof 操作符可以确定任意变量的数据类型。一个变量使用typeof操作符会返回下列字符串之一:

    • undefined 表示值未定义
    • boolean 表示值为布尔值
    • string 表示值为字符串
    • number 表示值为数值
    • symbol 表示值为符号
    • object 表示值为对象(不是函数)或者null
    • function 表示值为函数
    let message = "some string";
    console.log(typeof message);    // "string"
    console.log(typeof(message));   // "string"
    console.log(typeof 95);         // "number"
    

    注意:调用typeof null返回的是object。这是因为特殊值null被认为是一个对空对象的引用。
    instanceof
    typeof虽然对原始值很有用,但它对引用值的用处不大。我们通常不关心一个值是不是对象,而是想知道它是什么类型的对象。为了解决这个问题,ECMAScript提供了instanceof操作符,语法如下:

    result = variable instanceof constructor
    

    一般认为instanceof操作符是确定对象类型更可靠的方式。
    如果变量是给定引用类型(由其原型链决定)的实例,则instanceof操作符返回true。
    按照定义,所有引用值都是Object的实例,因此通过instanceof操作符检测任何引用值和Object构造函数都会返回true。类似地,如果用instanceof检测原始值,则始终会返回false,因为原始值不是对象。

    let person = new Object();
    console.log(person instanceof Object);  //true
    let colors = ['red','blue','green']
    console.log(colors instanceof Array);   //true
    const pattern  = new RegExp(/cat/g);
    console.log(pattern instanceof RegExp); //true
    

    相关文章

      网友评论

          本文标题:JS中数据类型及类型判断

          本文链接:https://www.haomeiwen.com/subject/jnznldtx.html