昨天学习了JS的严格检查模式,今天做一点补充
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <script> 7 console.log(x + 1); 8 var x = 2; 9 console.log(x); 10 </script> 11 </head> 12 <body> 13 14 </body> 15 </html>
此代码并不会报错,能运行,在控制台打印NaN以及2
在JS当中,执行引擎会自动提升变量的声明,但是不会提升变量的赋值,所以并不会给未定义的x报错。
为了规范,建议把变量都定义在函数头部,便于维护