想问 变量b未声明 但是在Chrome中可以得出值b=3,b未声明 ,应该是报错才对啊

img

在严格模式下,是会报错的。 非严格模式下,会当作全局变量。

在java script中,写var和不写其实都可以声明的,起的作用是声明。 例(var a =2 和 a=2 都一样)不会报错

js语言是弱类型语言 当我们使用访问一个没有声明的变量时,JS会报错。 而当我们给一个没有声明的变量赋值时,JS不会报错,相反它会认为我们是要隐式申明一个全局变量。 这时候b已经是全局变量了,你再打印b,当然不会报错了

如果用var声明了, 它就是一个局部变量. 而在同一个页面的不同的JavaScript文件中,如果都不用var申明,恰好都使用了变量,就会互相干扰,造成错误,所以我们习惯最好要声明一下