es6介绍+let和const

太过爱你忘了你带给我的痛 2022-11-24 11:21 300阅读 0赞

1.什么是ES6

JavaScript es3+es5
Es6是ECMAScript6的简写

2.ES 与js区别

Es是js的语法部分(规定了js的核心语法),js是一门复合技术,包含ES、DOM、BOM等技术。ES是js的语法,与宿主环境无关,es既可以在浏览器中运行,又可以在其他平台运行(例如:nodejs)

3.ES6的兼容性问题

在低版本浏览器上不可以使用,每一年ES6都会有新的更新

let和const

1.let
let是用来声明变量的
1)在ES5中,声明变量的关键字:var function
2)在ES6中,var 和function依然可以使用,let/const/class
3)let定义变量
4)let和var定义变量的区别
a.var定义的变量是函数作用域,let定义的变量是块级作用域
b.var定义的变量存在变量提升,let不存在
c.let定义的变量,必须先定义再使用,不允许重复定义
d.let定义的变量,会出现暂时性死区
e.let和const定义的变量不会绑定到顶层对象(window)
优点:let定义的变量不会产生作用域污染问题,不会覆盖…
案例:

  1. var arr = [];
  2. for (let i = 0; i < 5; i++) {
  3. //在数组中插入元素(函数)
  4. arr.push(function () {
  5. console.log(i);
  6. });
  7. }
  8. //分析执行过程:每一次for循环执行,都是一个新的代码块
  9. //系统会记录每一次循环执行完毕之后,变量的值,再新一次循环执行时,赋值给下一次的变量
  10. { //父作用域
  11. let i = 0;
  12. if (i < 5) {
  13. arr.push(function () { //子作用域
  14. console.log(i);
  15. });
  16. }
  17. i++;
  18. }
  19. //第二次:
  20. {
  21. let i = 1;
  22. if (i < 5) {
  23. arr.push(function () {
  24. console.log(i);
  25. });
  26. }
  27. }
  28. //...

执行过程:
let变量声明之后,生成了一个大的块级作用域;在这个大的块级作用域里,会产生两个作用域,一个父级作用(),一个是子级作用{};父级作用域保存上一次循环后的值,下一次使用,子级作用域是独立的,是基于上一次循环的值,再进行计算;一直到循环结束;。

2.const
const也是用来定义变量(常量)
特点:
0)一旦初始化完毕,不能被修改
1)不能重复定义
2)不存在变量提升
3)先定义,再使用
4)块级作用域
5)定义的时候,必须初始化
一般情况下,常量的名称应该使用大写字母

const使用场景:
1)、数学中的PI的声明
2)、多人开发的时候,通用、公共的模块数据可以使用const常量,防止被覆盖和修改

特殊情况:const修饰引用类型:

//设置引用类型不能被修改
const obj = Object.freeze( {
sName: “jack”,
age: 18
});

发表评论

表情:
评论列表 (有 0 条评论,300人围观)

还没有评论,来说两句吧...

相关阅读

    相关 es6let const

    Let和const 一、Let 1.let用来声明变量,并且会在当前作用域形成代码块;let声明的变量可以改变,(值和类型都可以改变)。 { le

    相关 ES6基础:letconst

    ES6基础之let和const > 变量声明是我们在学习一门语言时,最先了解的部分之一。不要忽略它,我们一起来看看ES6中新增的两种变量声明命令吧~ 在开始ES6系列之

    相关 es6 let const 命令

    一.let 1.作用域 在javascript中只有全局作用域和函数作用域,并不存在块级作用域。这样,在使用时就会出现一些问题。 下面我们先来举例说明let块级作用