标签:ES6 变量 六种 js 作用域 let import 声明
var 在ES5阶段中,使用var具有以下特点: (1)没有块的概念,可以跨块访问,不能夸函数访问; (2)存在变量提升,赋值不提升 (undefined) let 在ES6阶段新增,新增出块的概念,新增块级作用域,具有以下特点: (1)let声明的变量只在它所在的代码块有效; (2)let不会出现变量提升,需先声明后使用,否则会报错; (3)暂存性死区,在代码块内,使用let使用变量之前,该变量都是不可用的; (4)不允许重复声明 const 用于声明一个只读的常量,具有以下特点: (1)一旦声明就必须立即初始化; (2)一旦声明,常量值就不能改变(指的是内存地址不能改变,但指向的数据结构不受控制;通过 Object.freeze() 方法,使对象的原始属性不可变, 但仍然可以更改嵌套对象); (3)块作用域内有效; (4)不存在变量提升; (5)存在暂时性死区; function 用于定义一个函数,具有以下特点: (1)函数声明后 需要调用的时候 才能执行; (2)对支持ES5和ES6的浏览器环境在块作用域内有一定区别,所以应避免在块级作用域内声明函数。 class ES6引入了class关键字,用来定义类。该写法相比于对象原型的 方式具有以下特点: (1)相比于对象原型的方式写法更清晰; (2)更像面向对象编程的语法(方便) ```JavaScript class Calculate { constructor(x, y) { this.x = x; this.y = y; } add() { return this.x + this.y; } } ``` import 用于加载模块,然后输出变量,具有以下特点: (1)import 命令接受一对大括号,其里面的变量名必须与被导入的模块对外接口的名称相同; (2)用 as 关键字可将输入的变量名重命名; (3)import 命令输入的变量都是只读的; (4)import 命令具有提升效果,会提升到整个模块的头部,首先执行(因为import命令实在编译阶段执行的,在代码运行之前); (5)import 是静态执行,不能使用表达式和变量; (6)import 会执行所加载的模块标签:ES6,变量,六种,js,作用域,let,import,声明 来源: https://www.cnblogs.com/bluebones/p/16060556.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。