isNaN() 函数
isNaN() 全局函数用于检查其参数是否是非数字值。
语法:isNaN(x)
参数 | 描述 |
---|---|
x | 必需。要检测的值。 |
返回值:如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。
说明:isNaN() 函数可用于判断其参数是否是 NaN,该值表示一个非法的数字(比如被 0 除后得到的结果)。
提示:如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符,正因为如此,isNaN() 函数是必需的。
提示:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。当然也可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。
编码示例
<script type="module">
/**因为 isNaN 是全局函数,所以可以直接使用*/
console.log(isNaN(123)); // 输出 false
console.log(isNaN(-1.23)); // 输出 false
console.log(isNaN(5 - 2)); // 输出 false
console.log(isNaN(0)); // 输出 false
console.log(isNaN("12HaHa123")); // 输出 true
console.log(isNaN("2005/12/12")); // 输出 true
let json = {"name": "华安", "age": 33};
let arr = [1, 2, 3, 4, 5];
console.log(json, isNaN(json)); // 输出 {name: "华安", age: 33} true
console.log(arr, isNaN(arr)); // 输出 [1, 2, 3, 4, 5] true
let parseIntResult = parseInt("123Ha");
let parseFloutResult = parseFloat("3.14159圆周率");
console.log(parseIntResult, isNaN(parseIntResult)); // 输出 123 false
console.log(parseFloutResult, isNaN(parseFloutResult)); // 输出 3.14159 false
console.log(NaN == NaN, NaN === NaN); //输出 false false
</script>