在javascript中if语句判断失误是怎么回事
在javascript中if语句判断失误是怎么回事
由于numm变量中是一个存在字符的字符串,在JS中,由于if()语句的括号中需要一个布尔类型的值,而当它的值不是布尔类型时,JS会尝试将其转变为布尔值。
那么,我们进行一个类型测试代码,你放在你的浏览器中运行一下,就知道各种情况转换为布尔值将会如何:
!doctype html
html
head
meta charset=”utf-8″
title测试各种情况下的布尔转换/title
/head
body
script
//空字符串转布尔:
document.write(““””转换为布尔值为:” + Boolean(”) + ‘hr/’);
//字符串0转布尔:
document.write(““’0’”转换为布尔值为:” + Boolean(‘0’) + ‘hr/’);
//任意字符串转布尔:
document.write(““’false’”转换为布尔值为:” + Boolean(‘false’) + ‘hr/’);
//null转换为布尔:
document.write(““null”转换为布尔值为:” + Boolean(null) + ‘hr/’);
//数字0转换为布尔:
document.write(““0”转换为布尔值为:” + Boolean(0) + ‘hr/’);
//数字1转换为布尔:
document.write(““1”转换为布尔值为:” + Boolean(1) + ‘hr/’);
//大于1的整数数字转换为布尔:
document.write(““6”转换为布尔值为:” + Boolean(6) + ‘hr/’);
//大于0的浮点数转换为布尔:
document.write(““0.25”转换为布尔值为:” + Boolean(0.25) + ‘hr/’);
//负数转换为布尔:
document.write(““-25”转换为布尔值为:” + Boolean(-25) + ‘hr/’);
//对于if来说,还可以对未赋值(undefined)进行直接判断:
if(!a) document.write(“变量a未赋值hr/”);
var a=0;
if(typeof a != ‘undefined’) document.write(“变量已经赋值hr/”);
/script
/body
/html
javascript中的boolean(today)是将变量转化为布尔值,那么得到的布尔值是真是假怎么辨别
可以理解优先级是一样的
下列值为false,其他均为true:
false
null
NaN
空字符串
注意:Boolean(new Boolean(false))也为true
Javascript语言中赋值语句有没有布尔值?比如a=5能不能判断是true or false?
在js中,这相当于一个赋值语句,如果b的值大于0或为true,那么就把b的值赋给a,否在就把c的值赋给a
布尔值,javascript中以下值会被转换为false
false
undefined
null
-0
NaN
“”
”
js中布尔值为false的六种情况
参考文献:
“!!” 将表达式进行强制转化为boolean值的运算,运算结果为true或者false。
1、未初始化的变量
2、不返回任何结果的函数的调用结果
3、不存在的对象属性或方法
4、越界索引数组元素
1、在js的dom元素获取中,如果没有获取到指定的元素对象,结果一般是null。
2、Object.prototype. proto 的值是null。
3、在正则捕获的时候,如果没有捕获到结果,默认也是null。