前言
Js中的数据类型可以分为Js中的数据类型可以分为原始值和引用值两大类,原始值存储在栈内存中,引用值存储在堆内存中,栈内存中会保存应用值的指针以供调用。
属于原始值的数据类型有:number, string, undefined, boolean
属于引用值的数据类型有:object(包括Array,Object对象和null等)
其中,number类型包括:数字、NaN。undefined类型只有undefined这个值。
下面来分析一下各种原始值及null之间的比较:
一、 String与String的比较
从左到右比较单个字符的ascii码值
二、 String与Number比较
如果String是数字字符串,则将其转换为number类型而后与Number进行数字比较
如果String不是数字字符串,则两者进行的任何比较(!=和!==除外)结果都是false。
三、 false或true与Number进行比较,都将false化为0,将true化为1
四、 false或true与String进行比较
如果String为数字字符串,则将其转换为number类型进行数值比较
如果String不是数字字符串,则任何比较(!=和!==除外)结果都是false。
五、 undefined与0进行的任何比较(!=和!==除外),结果都是逻辑假。undefined等于null。
六、 NaN与包括自己在内的任何值比较都不相等。
以上基本上分析了各种原始值之间的比较。