es6相关内容

本文介绍了JavaScript中的let和const关键字,包括它们的特性如块级作用域、不允许重复声明以及常量的值不可变性。同时,讲解了解构赋值的概念,包括在数组、对象和字符串中的应用,并给出了示例。此外,还展示了如何利用解构赋值进行变量交换、函数返回值处理和函数参数传递。
摘要由CSDN通过智能技术生成

1、let


键字用来声明变量,使用 let 声明的变量有几个特点:

1) 不允许重复声明

2) 块儿级作用域

3) 不存在变量提升

4) 不影响作用域链

5) 暂时性死区

6)不与顶级对象挂钩

在代码块内,使⽤let命令声明变量之前,该变量都是不可⽤的。 这在语法上,称为“暂时性死区”。

该变量在声 明之前使⽤都属于“暂时性死区“。

2、const


const 关键字用来声明常量,const 声明有以下特点

1) 声明必须赋初始值

2) 标识符一般为大写(建议)

3) 不允许重复声明

4) 值不允许修改

const实际上保证的,并不是变量的值不得改动,⽽是变量指向的那个内存地址所保存的数据不得

改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此 等同于常量。

但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是⼀个指向实际数

据的指针,const只能保证这个指针是固定的(即总是指向另⼀个固定的地址),⾄于它指向的数据结 构是不是可变的,就完全不能控制了。

注意: 对象属性修改和数组元素变化不会出发 const 错误, 对象地址不可改变。

5) 块儿级作用域

6)、 不与顶层对象挂钩

应用场景:声明对象类型使用 const,非对象类型声明选择 let

3、let和const总结

1. let 声明的变量会产⽣块作⽤域,var 不会产⽣块作⽤域

2. const 声明的常量也会产⽣块作⽤域

3. 不同代码块之间的变量⽆法互相访问

4. 注意: 对象属性修改和数组元素变化不会出发 const 错误 (数组和对象存的是引⽤地址)

5. 应⽤场景:声明对象类型使⽤ const,⾮对象类型声明选择 let

6. cosnt声明必须赋初始值,标识符⼀般为⼤写,值不允许修改。

4、变量的解构赋值

ES6 允许按照一定模式,从数组和对象中快速的提取成员,对变量进行赋值,这被称为解构赋值。 本质上,只要等号两边的模式相同,左边的变量就会被赋予对应的值。

1>解构分类

1)、数组的解构

ES6中允许从数组中提取值,按照对应位置,对变量赋值
1 <script>
2 //数组的解构
3 const F4 = ['⼩沈阳','刘能','赵四','宋⼩宝'];
4 let [xiao, liu, zhao, song] = F4;
5 console.log(xiao);
6 console.log(liu);
7 console.log(zhao);
8 console.log(song);
9 // 省略变量
10 let [a, , c] = [1, 2, 3];
11 console.log(a, c);//1,312 </script>
13

2)、对象的解构

对象的解构与数组有一个重要的不同。数组的元素是按顺序排列的,变量的取值由它的位置决定;而对象的属性没有
次序,变量必须与属性同名,才能取到正确的值,否则解构失败就是undefined。
1 <script>
2 //对象的解构
3 const zhao = {
4 name: "赵本⼭",
5 age: "不详",
6 xiaopin: function () {
7 console.log("我可以演⼩品");
8 },
9 data: {
10 list: ["贾玲", "沈腾", "···"],
11 },
12 };
13
14 let {
15 name:n,//起别名
16 age=18,//可以定义默认值
17 xiaopin,
18 data: { list },//可以解构下⼀级数据
19 } = zhao;
20 console.log(n);//赵本⼭
21 console.log(age);
22 console.log(xiaopin);
23 console.log(list);
24 xiaopin();
25
26 let {xiaopin} = zhao;
27 xiaopin();
28 </script>

3)、字符串解构

1 let [ a , b , c ] = "hello" ;
2 console . log ( a ); //h
3 console . log ( b ); //e
4 console . log ( c ); //l
5 let { length } = "hello" ;
6 console . log ( length ); //5

2、解构应⽤

1)、变量值交换

1 let a = 1 ;
2 let b = 2 ;
3 [ a , b ] = [ b , a ];
4 console . log ( a );

2)、函数返回多个值

1 function myfun () {
2 return [ 2 , 3 , 4 ];
3 }
4 let [ a , b , c ] = myfun ();
5 console . log ([ a , b , c ]); //[2, 3, 4]
6 console . log ( a ); //2
7 console . log ( b ); //3
8 console . log ( c ); //4

3)、函数参数传参数

1 function myfun ([ a , b , c ]) {
2 console . log ( a );
3 }
4 myfun ([ 4 , 5 , 6 ]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值