直接抛出问题吧:

   

 1 <html>
 2 <head>
 3 <script type="text/javascript" language="javascript">
 4 window.onload = fun;
 5  function fun(){ 
 6    if(var n = false){
 7      alert("判断输出正确");
 8     }
 9      else {
10      alert("判断输出错误");
11     }
12    }
13 </script>
14 </head>
15 <body>
16 </body>
17 </html>

当在页面中输入上述代码的时候,程序是不能够运行的,提示的错误是:语法错误。即

1 if(var n = false)

这行代码是有语法错误的。

问题分析:

      显然,这里if语句的使用是不符合常规的语法的,使用这样的语句也没有什么意义,这里权当研究之用。

      首先要说的是:

      if语句后面的小括号里可以是任意的表达式,这是毋庸置疑的,使用的表达式的结果也不一定是Boolean类型,可以使任意的类型,只是当不是Boolean类型的时候,默认调用Boolean()方法进行转换就是了。

      对声明语句的分析:

      这里小括号里是声明语句,显然不是表达式,JavaScript引擎对声明语句的处理规则是:

      创建这个Boolean类型的对象,并创建初始值,然后将这个对象添加到环境变量中。结束。也就是JavaScript引擎会对声明的变量或者函数进行预解析。

       所以当执行到需要判断if语句中的表达式的值的时候,就不在执行小括号里的语句,就会导致语法错误了。

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-11
  • 2021-09-28
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-24
  • 2022-02-11
  • 2022-01-18
  • 2021-08-29
  • 2022-12-23
相关资源
相似解决方案