背景
js虽然一直在使用,但是脑中的知识并不成体系,多数情况是在网上搜索代码段然后复制粘贴。趁现在有时间通过菜鸟教程系统的学习一下js。
问题
在菜鸟教程函数这一部分,有下面这段话,我觉得比较神奇,于是验证一番。
向未声明的 JavaScript 变量分配值
如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。
这条语句:
1
2 >carname="Volvo";
>
将声明一个全局变量 carname,即使它在函数内执行
验证
起初我根据字面意思理解,在函数内只要定义了如上所述的一个变量,那么在全局就都可以访问,于是我写了如下一段代码:
1 | <!DOCTYPE html> |
发现hehe
可以正常弹出,而wang
却不行。我立马就火了,这菜鸟教程怎么回事?!明白过来是半个小时以后的事了,原来我只是定义了函数,而并未调用过它,变量也就无从创建了。所以改成下面这个样子,就可以访问啦。
1 | <!DOCTYPE html> |
后记
出现这个疑问归根结底还是基础知识不牢固,路漫漫其修远兮呀!不过实际运用中应该不会这样用,在函数外多打三个字母var
,又方便又清晰,何乐而不为呢?