参考文献: 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,其结果也是不是你所期望的字符串,所以还需要检查这两个变量值