基本概念
js有五种简单数据类型,也称基本数据类型 Undefined、Null、Boolean、Number和String
一种复杂数据类型也称引用类型,里面包含的 function、Array、Date
分类
1.undefined
在使用var声明变量声明但未对其加以初始化时,值为undefined
null == undefined //true
null === undefined //false
2.Null
只有一个值的数据类型,这个特殊值是null,标识一个空对象指针,typeof检测为Object
3.String
注意:toString()和 String()函数的区别?
toString() null和undefined 没有此方法
string() 可以将任何值转化为字符串
let str = 'hellow'
let aa = 123
str.length // 获取字符长度
aa.toString() || String(aa) // 转为字符串方法
4.Boolean
0 == false
1 == true
ps:两者是不全等的
4.Number
//浮点数计算会有误,一般不作为条件判断
0.1+0.2 = 0.30000000000000004 //不等于0.3
// NaN:非数值
console.log(NaN/10) //NaN
NaN和任何值都不相等包括NaN本身
isNaN() 检测是否是NaN
注意:
Nunber()和parseInt()的区别在于Number()只能转换字符串形式的数字或者布尔值,例如上述①②③④⑥
parseInt() 则会一直读取字符,直到读到非数值,结果为非数值前面的值(ps:从第一个字符开始为数值的才会继续读取)
//转化为数值函数
Number()
parseInt()
parseFloat()
//转化
① Number(false) // 0
② Number(null) // 0
③ Number(true) // 1
④ Number(undefined) //NaN
⑤ Number('01.1') // 1.1
⑥ Number('134') //134
5.Object
一组数据和功能的集合,可以根据执行new 操作符后跟要创建的对象类型的名称来创建
var obj = new Object()
如何检测数据类型
1.typeof
let aa = false
typeof aa
Object & Null ==> object (Null是一个空对象指针)
String ==> string
undefined ==> undefined
Number ==> number
Boolean ==> boolean
2.instanceof
用来判断A是否为B的实例,表达式为:A instanceof B,检测的是原型
Object instanceof Object; //true
[] instanceof Array; //true
[] instanceof Object; //true
"123" instanceof String; //false
new String(123) instanceof String; //true