神马是 NaN,它的类型是神马?怎么测试一个值是否等于 NaN?

NaN 是 Not a Number 的缩写,JavaScript 的一种特殊数值,其类型是 Number,可以通过 isNaN(param) 来判断一个值是否是 NaN:

console.log(isNaN(NaN)); //true

console.log(isNaN(23)); //false

console.log(isNaN(‘ds‘)); //true

console.log(isNaN(‘32131sdasd‘)); //true

console.log(NaN === NaN); //false

console.log(NaN === undefined); //false

console.log(undefined === undefined); //true

console.log(typeof NaN); //number

console.log(Object.prototype.toString.call(NaN)); //[object Number]

ES6 中,isNaN() 成为了 Number 的静态方法:Number.isNaN().

时间: 2024-10-25 20:48:13

神马是 NaN,它的类型是神马?怎么测试一个值是否等于 NaN?的相关文章

NaN不等于NaN

[TOC] 不知道这个小知识点用得多不多,曾经在书上看到过,所以有一些印象,前段时间顺手写出类似如下的代码 var result; if (parseInt('abc')==NaN) { return "相等"; } else { return "不等"; } 断点调试之后发现无论如何都不相等,方法parseInt()返回的结果确实是NaN,但是与右侧的NaN比较返回的结果却是false,这时候才突然想起来NaN有不等于自身的特性,所以简单收集一下资料做个整理 原因

【C语言】编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数。

/*编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数. 例如:输入传入(0 , 5)函数返回5,传入(10 , 9)函数返回1,传入(12 , 4)函数返回4 */ #include <stdio.h> int yue(int a,int b) { int temp; int n; if (a>b) { temp=a; a=b; b=temp; } n=a; if(a==0) return b; else while(n!=0) { if( a%n==0 &&

【算法研究】25匹马赛跑,每次只能跑5匹马,最快能赛几次找出跑得最快的3匹马?赛跑不能计时,并假设每匹马的速度是恒定不变的。

答案是7次. 1. 首先将25匹马分成5组a.b.c.d.e进行比赛.比赛的次数就是5次.得到每组的第一名,分别编号a1,b1,c1,d1,e1. 2. 然后我们将每组的第一名进行比赛,得出结果.假设a1>b1>c1>d1>e1.(大于号表示a1比b1快,1表示第一名).在这个地方我们可以推断出,a1是所有马中最快的,所以它是第一名.d1,e1不可能是前三的马,同时这两匹马所在的组也不可能是前三的马.所以排除这两组马,还剩三组15匹马.现在需要找出第二快和第三快的马. 3. 第二名

编写高质量代码改善C#程序的157个建议——建议8: 避免给枚举类型的元素提供显式的值

建议8: 避免给枚举类型的元素提供显式的值 一般情况下,没有必要给枚举类型的元素提供显式的值.创建枚举的理由之一,就是为了代替使用实际的数值.不正确地为枚举类型的元素设定显式的值,会带来意想不到的错误. 如果为建议7中的枚举类型Week增加一个元素,代码如下所示: enum Week { Monday = 1, Tuesday = 2, ValueTemp, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6, Sunday = 7 } 设

36.百马百担问题。有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大中小马多少匹,共有多少组解?

//1.先确定变量关系,将问题分为3个维,用for语句嵌套搭建循环框架 //2.内层用判断语句确定满足题目的条件 //注意,设置一个变量用于计数 ?#include<iostream> using namespace std; int main() { int m=0; for(int i=1;i<=100;i++) { for(int j=1;j<=100;j++) { for(int k=1;k<=100;k++) { if((((i+j+k)==100))&&a

商品类型的下拉框绑定一个事件,通过ajax获取属性

html代码这么写 <!-- 商品属性 --> <table cellspacing="1" cellpadding="3" width="100%" style="display:none;" class="tab"> <tr><td> <select name="Goods[type_id]"> <option val

【C语言】用定义结构类型的方法,编写程序建立一个具有学生学号、姓名、总分和联系电话的记录文件。编写程序从键盘上输入学号可以查到此人的其他信息。

1.用定义结构类型的方法,编写程序建立一个具有学生学号.姓名.总分和联系电话的记录文件. 2.编写程序从键盘上输入学号可以查到此人的其他信息. 第一部分代码(向文件中添加数据) 1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 5 4 struct student 5 { 6 int num; 7 char name[10]; 8 float score; 9 char tel[20]; 10 }stu[N]; 11 in

Js判断值是否是NaN

方法一:window.isNaN() 注意: window.isNaN 只对数值有效,如果传入其他值,会被先转成数值.比如,传入字符串的时候,字符串会被先转成NaN,所以最后返回true,这一点要特别引起注意.也就是说,isNaN为true的值,有可能不是NaN,而是一个字符串.(不是数值会先调用 Number 方法转化为数值) 方法二:Number.isNaN(value)(ES6语法,存在兼容性问题) 1. 首先判断 value 类型是不是 number; 2. 然后判断 value 是不是

通过反射得到object[]数组的类型并且的到此类型所有的字段及字段的值

private string T_Account(object[] list) { StringBuilder code = new StringBuilder(); //得到数据类型 Type t = list[0].GetType(); List<string> str = new List<string>(); //得到类型的所有字段 FieldInfo[] fields = t.GetFields(BindingFlags.NonPublic | BindingFlags.