js的数据类型
js有七种数据类型,其中又可以划分为基本数据类型(Number、String、Null、Boolean、undefined、Symbol(ES6新增))和引用数据类型(Object)。
基本数据类型
- Number
- String
- Null
- Boolean
- undefined
- Symbol(ES6新增)
一、Number 数字
Number类型里有整数和小数。
其中NaN(Not a Number) 和 Infinity(无限大)属于Number型里的特殊值。
typeof(NaN) //number
typeof(Infinity) //number
NaN === NaN //false
Infinity === Infinity //true
isNaN(123) //false 用于判断是不是非数字值
以上是NaN和Infinity的几种特殊情况。
二、String 字符串
字符串最外层是单引号或者双引号,它们没任何区别。而且自身带有length属性,比如:
var str = '这是汉字长度'
console.log(str.length) //6
var str = 'hello'
console.log(str.length) //5
两种转换string类型的方法
- String(X) (推荐使用这种)
String({a:1,b:2}) // [object object]
String([1,2,'a','b']) // "1,2,a,b"
String(123) // "123"
String(null) // "null"
- X.toString()
[1,2].toString() // "1,2"
null.toString() // 报错:Uncaught TypeError: Cannot read property 'toString' of null
undefined.toString() // 报错:Uncaught TypeError: Cannot read property 'toString' of undefined
123.toString() // 报错:Uncaught SyntaxError: Invalid or unexpected token
toString并不能转换null和undefined,并且,数字转换string时我们要先声明变量再转换
let num = 123
num.toString() //"123"
toString还有个作用就是查看数字的进制结果
let num = 123
123.toString(2) // "1111011"
显而易见,我们如果要转string类型还是用String()的办法好。
三、Null 空值
一个空值变量,它可以为各种可能的类型。同时还可以给变量赋值来利用垃圾回收机制清除不需要的变量。
四、Boolean 布尔
Boolean型只有两个值,那就是true和false。
五、undefined 未定义的
undefined类型的值就只有undefined,当你声明了一个无初始化值的变量时,那它的值就是undefined。
var a
console.log(a) //undefined
六、Symbol
这是一个ES6才引进的数据类型,它是通过Symbol()函数产生的值,并且每个产生的值都是唯一的,这也说明它产生的任意两个值都不想等。
Symbol() === Symbol() // false
可以利用这一特性给组件属性命名,而不再怕和别的组件重复了。
引用数据类型
- Object 对象
对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。
var obj = new Object()
var arr = new Array()