JavaScript 出现 NaN 的情况大总结

JavaScript 出现 NaN 的情况大总结

每次看这个运算真的头大,为啥这个 NaN 啊简直让人恼火,这次就简单暴力做个大总结吧

注意事项:

  1. NaN(NOT A NUMBER) 是 JavaScript 的保留词,指不合法的数
  2. 运用 NaN 进行运算,最后得出也是 NaN
  3. 可以使用 isNaN()来判断是否某个值是否为数
// 判断是否为 NaN
console.log(isNaN("apple")); // true,是非数字就返回 true
console.log(isNaN(12)); // false
// 运用typeof NaN 返回是 number
console.log(typeof NaN); // number
// 尝试用一个非数字字符串进行➕(都是字符串的话会产生级联) ➖ ✖ ➗ %会得到 NaN(Not a Number)
console.log(12 + "apple"); // 字符串级联 12apple
console.log("12" + "apple"); // 字符串级联 12apple
console.log("apple" + 12); // apple12
console.log("apple" + "12"); // apple12

console.log(12 - "apple"); // 12 - "apple" = NaN
console.log("12" - "apple"); // "12" - "apple" = NaN

console.log(12 * "apple"); // 12 * "apple" = NaN
console.log("12" * "apple"); // "12" * "apple" = NaN

console.log(12 / "apple"); // 12 / "apple" = NaN
// "12" 转为 number进行除法运算,但是 "apple" 非数字字符串,最后得出 NaN
console.log("12" / "apple"); //"12" / "apple" = NaN

console.log(12 % "apple"); //NaN
console.log("12" % "apple"); //NaN

注意 true/false 布尔类型的转换:

  1. true 会转换为 1,false 会转换为 0
  2. 不是加法运算,后面的数是数字字符串,会转为数字 number 类型进行运算
  3. 是加法运算,后面的数无论是不是数字,都直接是级联
  4. true —> “true”,此时就是 string 类型(非数字类型的字符串)而不是 boolean,运算会出 NaN
console.log(typeof true); // boolean

console.log(true + "1");   // true1
console.log("1" + true);   //1true
console.log("true" + "1"); //true1
console.log("1" + "true"); //1true

console.log(true - "1");   //0
console.log("1" - true);   //0

console.log(true * "1");   //1
console.log("1" * true);   //1

console.log(true / "1");   // 1
console.log("true" / "1"); // NaN

console.log(true % "1");   //0
console.log("1" % true);   //0

注意 js 还有一种 Infinity(-Infinity ) —— js 在运算中超出最大可能输的范围返回的值

除以 0 也会出现 Infinity,typeof Infinity —> number

console.log(12 / 0);          // Infinity
console.log(-12 / 0);         // -Infinity
console.log(typeof Infinity); // number
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值