一、简单数据类型
ECMAScript有6种简单数据类型(也称为原始类型):Undefined、Null、Boolean、Number、String和Symbol。
Undefined类型
Undefined类型只有一个值,就是特殊值undefined。当使用var、let声明了变量但没有初始化时,就相当于给变量赋予了undefined值。
一般来说,永远不用显示的给某个变量设置为undefined。
Null类型
Null类型也只有一个特殊值null,逻辑上讲,null值表示一个空对象指针。
任何时候,只要变量保存对象,而当时又没有那个变量可以保存,就要用null来填充该变量。这样就可以保持null是空对象指针的意义。
Boolean类型
Boolean类型是使用最频繁的类型之一,有两个字面值:true和false(区分大小写)。这两个布尔值不同于数值,因此true不等于1,false不等于0。
不同类型于布尔值之间的转换规则。
数据类型 | 转换为true的值 | 转换为false的值 |
---|---|---|
Boolean | true | false |
String | 非空字符串 | “” |
Number | 非零数值(包括无穷值) | 0、NaN |
Object | 任意对象 | null |
Undefined | N/A(不存在) | undefined |
Number类型
在JS中所有的数值都是Number类型,包括整数和浮点数(小数)
Js中可以表示数字的最大值
Number.MAX_VALUE
1.7976931348623157e+308
Number.MIN_VALUE 大于0的最小值
5e-324
如果使用Number表示的数值超过了最大值,则会返回一个
Infinity(无穷大)
表示一个正无穷
-Infinity
表示一个负无穷
使用typeof检查Infinity也会返回一个number
NaN表示一个特殊的数字,表示Not A Number
String类型
在JS中字符串需要使用引号引起来
使用双引号或单引号都行,但是不要混着用
引号不能嵌套,双引号不能放双引号,单引号不能放单引号
在字符串中我们可以使用\作为转义字符,当表示一些特殊符号是可以使用 \进行转义
\“表示”、\‘表示’、\n表示换行、\t制表符(空格)、\表示(2个斜杠出来1个斜杠)
Symbol
Symbol(符号)是ES6新增的一种数据类型。符号是原始值,且符号实例是唯一、不可变的。符号的用途是确保对象属性使用唯一标识符,不会发生属性冲突的危险。
二、复杂数据类型
Object类型
对象其实就是一组数据和功能的集合。(一切对象的根源都指向它)
每个0bject对象都有的属性和方法。
constructor:用于创建当前对象的函数。
hasOwnProperty(propertyName):用于判断当前对象实例(不是原型)上是否存在给定的属性。
isPrototypeOf(Object):用于判断当前对象是否为另一个对象的原型。
propertyEnumerable(propertyName):用于判断给定属性是否可以使用。
toLocaleString():
toString():返回对象的字符串表示。
valueOf():返回对象对应的字符串、数值或布尔值表示。
三、typeOf
用来确定任意变量的数据类型。
let arr = [];
let obj = {};
let num = 10;
let str = "0";
let true1 = true;
let un1 = undefined;
let un2;
let fn = function () { };
console.log(typeof arr); //object
console.log(typeof obj);//object
console.log(typeof num);//number
console.log(typeof str);//string
console.log(typeof true1);//boolean
console.log(typeof un1);//undefined
console.log(typeof un);//undefined
console.log(typeof fn);//function