1.JavaScript作用域
在 JavaScript 中有两种作用域类型:
- 局部作用域:在 JavaScript 函数中声明的变量,会成为函数的局部变量,局部变量会在函数完成时被删除。
- 全局作用域:函数之外声明的变量,会成为全局变量,全局变量会在您关闭页面是被删除。
补充:ECMAScript是一个国际通过的标准化脚本语言。JavaScript由ECMAScript和DOM、BOM三者组成。可以简单理解为:ECMAScript是JavaScript的语言规范,JavaScript是ECMAScript的实现和扩展。JavaScript没有块作用域({})的概念,ECMAScript 6(简称ES6)中新增了块级作用域。在 HTML 中,全局作用域是 window。所有全局变量均属于 window 对象。
2.var、let和const之间的区别
- var:var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。
- let:可以使用 let 关键词声明拥有块作用域的变量,在块 {} 内声明的变量无法从块外访问,也不能跨函数访问。
- const用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改。