首页 > 代码库 > js随笔-变量作用域
js随笔-变量作用域
1.函数中定义的变量只在函数中起作用,所以两个函数定义相同的变量互不影响
function fun(){ var i=0 } console.log(i);//i is not defined
2. 函数中内嵌函数时,内部的函数可以访问外部函数的变量,外部函数则不能访问内部的变量
function fun(){ var i=0; function fun2(){ var j=1; console.log(i); } fun2(); } fun();//0
function fun(){ var i=0; console.log(j) function fun2(){ var j=1; console.log(i); } fun2(); } fun();//j is not defined
3.当内部函数与外部函数定义同样的变量的时候,内部函数会把外部函数的变量覆盖掉,所以变量查找,都会先在当前作用域中查找,如果找不到会不停的向上查找,最后如果在全局作用域中也没有找到,则报ReferenceError错误。
4.因为js会提升变量声明,不会提升变量赋值,因此在变量声明前使用变量也不会报错,因此最好在函数内部首先申明所有变量
5.减少命名冲突的办法,是把所有的变量和方法都绑定到自己的全局变量上
// 唯一的全局变量MYAPP: var MYAPP = {}; // 其他变量: MYAPP.name = ‘myapp‘; MYAPP.version = 1.0; // 其他函数: MYAPP.foo = function () { return ‘foo‘; };
6.let可以声明一个块级作用域,const可以定义常量
js随笔-变量作用域
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。