以下代码执行返回什么结果?
console.log(1+"true"); // 1true , 进行字符串连接
console.log(1+true ); // 2 , true变为1
console.log(1+undefined ); // NaN , undefine(未定义)不是数字
console.log(1+null ); // 1 , null是空值
donsole.log("2">10); // false , 字符串2转化成数字类型
donsole.log("2">"10"); // true , 字符串比较第一个2的ASCII值大于1
donsole.log("abc">"b"); // false , 字符串比较第一个a的ASCII码值小于b
donsole.log("abc">"aad"); // true , 第一个相等就比较第二个b大于a
donsole.log( NaN=NaN ); // false , NaN(Not a Number)是一个特殊类型 代表不是数字 是一个范围 没有确切的值
consol.log (undefined=null); // true , null和undefined比较时不会进行类型转换但是他们相等,因为undefined派生于null
重点
- null 表示无值
- undefiined 表示未定义,一个函数没有返回值 ,或已声明但未赋值的变量,或一个不存在的对象属性。
- null和undefined比较时不会进行类型转换但是他们相等,因为undefined派生于null
- 为什么NaN!=NaN?