js函数作用域及变量声明提前 | 您所在的位置:网站首页 › 函数已在此作用域内声明怎么改 › js函数作用域及变量声明提前 |
作用域 函数的作用域指的是在{}内所执行的方法。 function foo() { var a = 1;//这个a的作用域在foo中 function foo2() { var a = 2;//这个a的作用域在foo2中 console.log(a)//2 } foo2() console.log(a)//1 } foo()由上可知,变量的执行只在对应的作用域中才会有效。 function foo() { var b = 2//在foo中定义b function foo2() { b = 3//在foo2中对b重新赋值 } foo2() console.log(b)//3 } foo()由上可知,在在foo2中对b重新赋值会对foo中的b产生影响。 变量声明提前 function foo() { console.log(b)//undefined var b = 2//在foo中定义b console.log(b)//2 } foo()使用var定义变量时,提前使用变量时,变量值为undefined。 function foo() { console.log(b)//会出现暂时性死区 let b = 2//在foo中定义b console.log(b)//不会执行 } foo()使用let定义变量时,提前使用变量时,会出现暂时性死区。 有兴趣的话可以去看看es6对于暂时性死区的详解,这里不做过多赘述。 |
CopyRight 2018-2019 实验室设备网 版权所有 |