JavaScript知识点回顾(三)——数据类型(一)| 8月更文挑战

323 阅读2分钟

这是我参与8月更文挑战的第三天,活动详情查看:8月更文挑战

数据类型

ECMAScript有六种简单数据类型:Number,String,Boolean,Null,Undefined和Symbol。其中Symbol是ES6新增的。

还有一种复杂数据类型叫Object,js中有一句话叫万物皆对象,后面会详细讲到。Object是一种无序名值对的结合。

typeof操作符

在介绍各种具体的数据类型之前,不得不提到typeof操作符,因为ECMAScript的数据类型是松散的,所以需要一个操作符来确定变量的数据类型。对一个变量使用typeof操作符会返回以下字符串之一: -“undefined”表示值未定义;

  • “boolean”表示值为布尔值;
  • “string”表示值为字符串;
  • “number”表示值为数值;
  • “function”表示值为函数;
  • “symbol”表示值为符号;
  • “Object”表示值为对象或Null 注意,这里对null使用typeof会返回object,是因为null被认为是一个空对象的引用

Undefined类型

Undefined类型只有一个值,就是特殊值undefined,当var或者let声明了变量但是没有初始化时,就相当于给变量赋了一个值undefined。

    let a;
    console.log(a);//这里会打印undefined
    console.log(b);//这里会报错
    console.log(typeof a);//这里会打印undefined
    console.log(typeof b);//这里也会打印undefined

通过上面的代码,我们会发现一个有趣的事情,未经声明的变量在调用typeof以后也会得到undefined

Null类型

Null类型同样的只有一个值,就是特殊值null。之前在typeof操作符时提到了,对null使用typeof会返回object,这是因为null值表示一个空对象的指针。对于Null类型,我们需要记住一句话:任何时候,只要是变量保存对象,而当时又没有那个对象可保存,就要用null来填充该变量。这样便可以保持null是空对象指针的语义。

Boolean类型

Boolean类型有两个字面值:true和false。虽然Boolean类型只有两个值,但是其他所有类型的值都有相应的布尔值的等价形式,可以调用Boolean()函数将其他类型的值转换为布尔值。 转换规律如下

数据类型转换为true的值转换为false的值
Booleantruefalse
String非空字符串""空字符串
Number任何非零数值0和NaN(not a number)
Object任意对象null
undefinedundefined