javascript中的数据类型有number(这个容易和integer混淆起来),null,undefined,string,boolean,object,以及es6新增加的symbol类型数据
我们首先来看这些数据之间的转换运算
首先是number和string
我们让一个数字和一个字符相加得到的结果是一个字符串
使用一个数字和一个字符串相加我们得到的任然是一个字符串
那么问题来了,number类型的数据和string类型的数据相减会得到什么结果呢?
从控制台输出可以看到,number类型的数据减去string类型的数据得到的数据还是number类型的数据,我们再来看另外一种情况
当我们使用number类型的数据减去一个不为数字的string类型时,虽然我们得到得还是number类型的数据,ps:NaN数据类型属于number类型的数据
这些是NaN与string类型以及number类型数据运算得出来的结果。
number类型和string类型的还有一个比较重要的
说完number和string数据类型
我们可以来看一下null和undefined区别,同样作为基本数据类型,用除可能不尽相同
可以看到null和undefined在两个等于号的时候,布尔值为真,这是因为两个等于号会触发类型转换,将两个值都转成布尔值false,这样就相等布尔值就为真了,而三等则不会触发类型转换,所以布尔值为false
这个很重要,需要记住,第一次在我们看起来可能像是bug,null类型怎么它的typeof怎么会是object类型呢,这是因为null类型只有唯一一个字面量值null,表示一个空指针对象,所以使用typeof运算符会返回object。