Javascript 教程 在线

2519检查某个值是否为有穷大的数 isNaN()

需要注意的是,isNaN() 函数其实并不能像它的描述中所写的那样,数字值返回 false,其他返回 true。

实际上,它是判断一个值能否被 Number() 合法地转化成数字。

这中间有什么区别呢,主要提现在一些特别的情况如下:

  • 1、数字形式的字符串。例如 "123"、"-3.14",虽然是字符串型,但被 isNaN() 判为数,返回 false。("12,345,678","1.2.3" 这些返回 true)
  • 2、空值。null、空字符串""、空数组[],都可被Number()合法的转为0,于是被isNaN认为是数,返回false。(undefined、空对象{}、空函数等无法转数字,返回true)
  • 3、布尔值。Number(true)=1,Number(false)=0,所以isNaN对布尔值也返回false。
  • 4、长度为 1 的数组。结果取决于其中元素,即:isNaN([a])=isNaN(a),可递归。例如isNaN([["1.5"]])=false。
  • 5、数字特殊形式。例如"0xabc"、"2.5e+7",这样的十六进制和科学计数法,即使是字符串也能转数字,所以也返回false。

可能还有其他情况,一时想不到了。

总之,很多时候不能用单纯用 isNaN() 取判断。

比如一个空值或者数组,甚至是包含字母和符号的字符串,它都有可能告诉你这是数值。还是要结合具体情况使用。

2518检查某个值是否为有穷大的数 isNaN()

isNaN(x):

如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。

isNaN() 函数可用于判断其参数是否是 NaN,该值表示一个非法的数字(比如被 0 除后得到的结果)。

如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符。正因为如此,isNaN() 函数是必需的。

2517检测数组元素中是否有元素符合指定条件 sort()

降序排列:

var list=[1,2,3,4];
list.sort((x,y)=>y-x);

尝试一下 »

2516检测数组元素中是否有元素符合指定条件 sort()

这个 sort() 方法,如果看上面的例子会非常痛苦。

sort() 方法,有一个可选参数,必须是函数,供它调用。那么就是个回调函数咯!

回调函数的参数要有两个:第一个参数的元素肯定在第二个参数的元素前面!!!

这个方法的排序是看回调函数的返回值:

  • 如果返回值大于 0,则位置互换。
  • 如果返回值小于 0,则位置不变。

例子:

var arr = [9,7,2];

arr.sort(function(a,b){
    if(a>b) // 如果 a 大于 b,位置互换
        return 1;
    else //否则,位置不变
        return -1;
});
// 排序结果: 2,7,9

2515选取数组的的一部分 返回一个新数组 some()

上述的例子中,some 调用了一个外部函数。

通过回调函数也可以实现该部分的功能,代码如下:

function myFunction() {
    document.getElementById("demo").innerHTML = ages.some(v => {return v>document.getElementById("ageToCheck").value});
}