- NaN是什么?
NaN指"不是一个数字"(not a number),表示未定义或不可定义的值
NaN 是一个"警戒值"(sentinel value, 有特殊用途的常规值),用于指出 数字类型 中的错误情况, 即"执行数学运算没有成功, 这是失败后返回的结果".
NaN是一个特殊值, 它和自身不相等,返回布尔值false 判断内容是否是NaN,通过isNaN来判断
| NaN | 结果是数值类型 但是不是一个具体的数字 |
|---|---|
| 1, 有 非数字参与的运算 运算结果 往往是 NaN | |
| '北京' - 100 | |
| 表示运算结果是数值类型 但是不是某一个具体的数字 | |
| 2, 有 NaN 参与的运算 运算结果 一定是 NaN | |
| 3, 两个 NaN 并不相等 | |
| 4, NaN 可以作为数值 直接赋值给变量 | |
| NaN 赋值时要注意大小写 | |
| 补充知识 | |
| 表达式1 === 表达式2 | |
| 判断 两个表达式的值 是不是 相等 | |
| 执行结果是 true 表达式1 和 表达式2 的值 相等 | |
| 执行结果是 false 表达式1 和 表达式2 的值 不等 |
// 运算结果是 数值类型 并且是一个具体的数字
// console.log( 100 - 200 );
// 第一 '北京' - 200 运算执行结果 是 数值类型的数据
// 第二 '北京' - 200 运算执行结果 不是一个具体的数字 计算机程序使用 NaN 表示
console.log( '北京' - 200 );
// 有 NaN 参与的运算 结果是 NaN
console.log( NaN - 100 );
console.log( NaN / 100 );
// 全等判断
console.log( 6 === 6 );
console.log( 6 === 8 );
// NaN 不是一个具体的数字 两个NaN 不能判断 是不是 相等 结果就是false
console.log( NaN === NaN );
console.log( '北京' - 100 === '上海' - 300 );
// 将 NaN 作为 数值 直接赋值给变量
var d = NaN ;
console.log( d );
- let const var 的区别
声明方式 变量提升 暂时性死区 重复声明 初始值 作用域
var 允许 不存在 允许 不需要 非块级
let 不允许 存在 不允许 不需要 块级
const 不允许 存在 不允许 需要 块级