日期:2014-05-16  浏览次数:20434 次

请问布尔类型
空值或未定义的值可以转换为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>

------解决方案--------------------
引用:
想了一下,终于搞明白了、
你这句话var a=b==true;有问题
你这里的B没有声明。而是做为一个(未声明)的变量放到A里面去,
个人觉得这应该是一种运行错误吧,不存在编译问题。
如果是单独写B的话,JS会为他们自动加上声明,你这里纯粹是一个运算过程了,根本就没有声明他,所以可以算作一种错误的写法,自然JS就会运行出错了。
我把代码改了。,你可以运行了

……
再补充一点,看B出现在赋值运算符的右边还是左边哦,我指的是第一次。