jquery/attr参数隐性转换问题
<input type="checkbox" checked="checked" value='30' id='tree'/><input type="text">
<script>
$("#tree").attr('checked',0);
</script>
传0不能改变checked,false可以,undefined不行。
js 里面,0,undefined, 不就是false吗?
后来我试过 “!!0”,“!!undefined”可以改变checked值了,
为什么我直接传参就不行?
------解决方案--------------------
js 里面,0,undefined, 不就是false吗?
不好意思 不是
!!undefined是因为 进行了2次求值运算 并且根据运算规则 转换成了bool值
所以 以后此类问题 请动手测试 千万不要 模糊的假定
测试很简单的
alert(undefined == false)
alert(!!undefined == false)
alert(0 == false)
alert(0 === false)