JS中数据类型及类型判断

2023-03-08  本文已影响0人  奋斗_登
1.数据类型

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

2.数据类型判断

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

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
上一篇下一篇

猜你喜欢

热点阅读