块级作用域、函数作用域以及全局作用域,彻底搞明白了!
七娃博客715人阅读
块级内声明
案例:
{ let a = 1; // let 声明块级遍历,作用域仅在{}块级内部,外部报错未定义 var b = 2; // var 声明全局变量,作用域为全局 } console.log(b) // 2 console.log(a) // Uncaught ReferenceError: a is not defined
函数内部声明
- 函数作用域:函数内部的变量,作用域在函数内
- var 函数内部声明,作用域依旧在函数内部,外部无法访问!
- 未用var,let,const声明时,变量默认为全局变量
案例:
function aa(){ let b = 4; // 函数内部变量,作用域在函数内 var a = 6; // var 函数内部声明,作用域依旧在函数内部,外部无法访问! c = 8; // 未用var,let,const声明时,变量默认为全局变量 console.log("函数作用域:"+b) // 4 } aa() console.log(b) // 2 console.log(c) // 8 console.log(a) // Uncaught ReferenceError: a is not defined
总结
- var在函数内声明变量,是局部变量!var在块级内声明时全局变量
- let在块级和函数内声明变量,都是局部变量!
- var,let在函数和变量外部声明,均属于全局变量!
- 未使用声明字符,在函数和块级内,均属于全局变量!
评论 | 0 条评论
登录之后才可留言,前往登录