在前面我们介绍了对 undefined 进行算术运算以及对一些包含了不合法字符的数据进行数字类型的转换时都会得到 NaN 的结果。对 NaN 使用 typeof 运算符可以得到 number 结果,可知 NaN 是一个非数字的数芓类型的数据其对应的布尔值为 false。
通常得到这个值时意味着程序进行了非法的运算操作。比如 alert('200px'-100) 的结果就是 NaN因为字符串 '200px' 无法转换为数芓,所以不能进行减法运算需要注意的是,NaN 并不等于本身
在实际应用中,有时为了程序的健壮性或者出于某些应用的需要,我们需偠对程序的运算结果或某些数据进行是否为数字类型的判断即判断它们的值是否为 NaN。对此需求JavaScript 提供了 isNaN() 函数来实现。isNaN 对应的英文单词为:is Not a Number意思是是否不是一个数字。
isNaN() 函数的使用格式如下:
isNaN() 的作用是:判断指定参数是否为数字是数字,返回 false否则返回 true。
下面我们通过一個具体的示例来演示一个 isNaN() 函数的应用
【例 1】使用 isNaN() 判断文本框输入的值是否为数字。
上述代码中的 if…else… 是一种判断结构程序用来实现条件判断,当 if 后面的括号中的值为 true 时执行if后面大括号中所括的代码,否则执行 else 后面大括号所括的代码
上述代码中的 if 判断语句使用 isNaN() 判断表單文本框输入的值是否为数字作为条件,当输入的值为数字时isNaN() 返回 false,此时执行 else 语句块否则执行 if 语句块。执行上述代码的最初结果如图 1 所示
图 1:未输入数据的状态
当在图 1 中分别输入 abc 和 123 后,单击“判断输入值是否为数字”后弹出的结果分别如图 2 和图 3 所示
图 2:在文本框中輸入 abc 后的结果
图 3:在文本框中输入 123 后的结果
我们看到,例 1 使用了 isNaN() 来判断一个数据是否为数字可能有些读者会想到使用 typeof 运算符,事实上對示例 1 来说,使用 typeof 是无法达到目的的因为,在 JS 程序中从 HTML 页面中获取的任何元素的属性值,类型都是字符串所以不管你在文本框中输叺的是否是数字,获得的值都是字符串类型
只有前后都是false的时候才返回false否則返回true。
前面”是false,后面1是true,而返回结果是1
前面0是false,后面”是false返回结果是”
a() || b() :如果执行a()后返回true,则整个表达式返回a()的值b()不执行;如果执行a()後返回false,则执行b()并返回b()的值;
只要“||”前面为false,不管“||”后面是true还是false都返回“||”后面的值。
只要“||”前面为true,不管“||”后面是true还是false都返回“||”前面的值。
只有前后都是true的时候才返回true否则返回false。