请问布尔类型
空值或未定义的值可以转换为false,而任何的非空对象、数组或函数都转换为true
function dispalert() {
var j = a == true;
document.write(j);
}
变量a没有定义,应该为false,为什么什么都没有输出呢?
------解决方案--------------------a 没有定义,程序终止了,根本没有读到document.write(j);
------解决方案--------------------可以这样, 之前先声明一下a:
function dispalert() {
var a
var j = a == true;
document.write(j);
}
dispalert()
------解决方案--------------------没有声明(定义)的变量,js中不能直接用
------解决方案--------------------直接将值赋给没有声明的变量,有错了!
------解决方案--------------------要事先定义下a,不然js不知道a哪来的
------解决方案--------------------想了一下,终于搞明白了、
你这句话var a=b==true;有问题
你这里的B没有声明。而是做为一个(未声明)的变量放到A里面去,
个人觉得这应该是一种运行错误吧,不存在编译问题。
如果是单独写B的话,JS会为他们自动加上声明,你这里纯粹是一个运算过程了,根本就没有声明他,所以可以算作一种错误的写法,自然JS就会运行出错了。
我把代码改了。,你可以运行了
关键看变量B第一次出现的位置吧
<script>
var a;
b=a;//你刚才写的实际是a=b;但是这里B其实未定义,如果是B=A,那么A已经定义了,然后把值赋给B
if(a==true)
{
document.write("1");
}
else
{
document.write("b");
}
</script>
------解决方案--------------------再补充一点,
看B出现在赋值运算符的右边还是左边哦,我指的是第一次。