空值或未定义的值可以转换为false,而任何的非空对象、数组或函数都转换为true
 function dispalert() {
        var j = a == true;
        document.write(j);
    }变量a没有定义,应该为false,为什么什么都没有输出呢?

解决方案 »

  1.   

    a 没有定义,程序终止了,根本没有读到document.write(j); 
      

  2.   

    可以这样, 之前先声明一下a:function dispalert() { 
        var a   
        var j = a == true;   
        document.write(j);     
    }
    dispalert() 
      

  3.   

    要事先定义下a,不然js不知道a哪来的
      

  4.   

    想了一下,终于搞明白了、
    你这句话var a=b==true;有问题
    你这里的B没有声明。而是做为一个(未声明)的变量放到A里面去,
    个人觉得这应该是一种运行错误吧,不存在编译问题。
    如果是单独写B的话,JS会为他们自动加上声明,你这里纯粹是一个运算过程了,根本就没有声明他,所以可以算作一种错误的写法,自然JS就会运行出错了。
    我把代码改了。,你可以运行了关键看变量B第一次出现的位置吧
    <script>
    var a;
    b=a;//你刚才写的实际是a=b;但是这里B其实未定义,如果是B=A,那么A已经定义了,然后把值赋给Bif(a==true){
    document.write("1");
    }

    else

    {
    document.write("b");
    }
    </script>