javascript语言中,在函数中声明的变量在函数执行进行一创建,当函数执行完毕的时候就会被销毁掉。
<script>
function getName () {
var name = "凡夫俗子";
console.log("函数体访问",name)
}
getName()
ert(name)
</script>
变量name是在函数中使用var定义的。当函数被调用时,就会创建该变量并为其赋值。而在此之后,这个变量又会立即被销毁,因此例子中的下一行代码就会导致错误。
不过,可以像下面这样省略var操作符,从而创建一个全局变量:
function getName () {
name = "凡夫俗子";
console.log("函数体访问",name)
}
getName()
alert(name)
虽然省略var操作符可以定义全局变量,但这也不是我们推荐的做法。因为在局部作用域中定义的全局变量很难维护,而且如果有意地忽略了var操作符,也会由于相应变量不会马上就有定义而导致不必要的混乱。给未经声明的变量赋值在严格模式下会导致抛出ReferenceError错误