js中布尔值为false的六种情况

JavaScript029

js中布尔值为false的六种情况,第1张

参考文献: https://www.cnblogs.com/zjx304/p/9782942.html

"!!" 将表达式进行强制转化为boolean值的运算,运算结果为true或者false。

1、未初始化的变量

2、不返回任何结果的函数的调用结果

3、不存在的对象属性或方法

4、越界索引数组元素

1、在js的dom元素获取中,如果没有获取到指定的元素对象,结果一般是null。

2、Object.prototype. proto 的值是null。

3、在正则捕获的时候,如果没有捕获到结果,默认也是null。

这说明,你这段代码的执行后,roleDel变量的值为false,究其原因,只能是在拼接过程中存在false变量值或者是引号位置出错。

我看了一下,引号位置确实错了(倒数第三个双引号),正确书写应该是:

"<td id="+data[i].id+">"+data[i].name+"<img onclick='deRole("+data[i].id+")' src='/static/imgs/icon19.gif'>"+"</td>"

但是,如此并不能确保roleDel变量的值就是你所期望的字符串,因为可能data[i].name或者data[i].id的值可能是false,其结果也是不是你所期望的字符串,所以还需要检查这两个变量值