首页 > 代码库 > 关于js作用域
关于js作用域
我们知道在编程语言中,作用域的作用就是控制变量、参数的可见范围和生命周期。
js中提供了函数作用域的功效,比如在函数中定义的变量外部是无法访问到的:
function jsFunc(){ var a = 5; }alert(a); // undefined
但是js中却没有提供块作用域的功效,比如我们在java代码中如果些如下代码:
public static Boolean b = false; public static void main(String[] args) { if(!b){ int a = 5; } System.out.println(a); // 这里会报编译时错误 }
在打印输出a的时候,会报变量未定义异常。
而在js中写如下代码:
var flg = false;function jsFunc(){
alert(a); // undefined if(!flg){ var a = 5; } alert(a); // 5}jsFunc();
alert(a); // Uncaught ReferenceError: a is not defined
在它会弹出5,说明在函数内部块级元素内部单独定义的变量,在整个函数范围内是可以访问到的。
因此这就需要我们在命名变量时额外注意,避免出现参数冲的问题。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。