js var变量以及作用域问题

var a=9

(function ab(){

alert(a)
a=10
})()

alert(a)--9
/*js 中只有函数作用域和全局作用域,函数外面用 var 和不用var 声明都是全局的变量,区别是,用var
声明的变量不可以delet,函数内部声明的变量var 和不用 var的是有区别的,不用var 的是全局变量,不会提升变量,还会覆盖函数
外面定义的变量的值,如果用var声明的变量就是局部变量和函数外的变量是各自的,互不干扰。函数内优先用局部定义的变量。
函数的作用域优先在当前作用域内,当前语句前查找作用域,如果有则用,没有往上层(函数外等)查找,以此类推,最终到windo作用域上去查找。
*/

猜你喜欢

转载自www.cnblogs.com/coolzone/p/9084005.html