ECMAScrpti 6基础

1.let和conts命令

let指令

概念:

1.let 没有变量提升的说法 所以没有预解析的说法

2.let 有局部作用域的说法和var作用不同的是 var 的作用域仅在函数中有效 let 所有{} 都有效

3.let 暂时性死区 说的就是 必须要先声明在使用 否则就会死区

4.let 不能重复声明 和java一样

代码示例:

// 使用 let 声明变量
let x = 10;
if (x === 10) {
    let y = 20; // y 只在当前块级作用域内有效
    console.log(x + y); // 输出 30
}
// console.log(y); // 这里会报错,因为 y 不在此作用域内

const 常量

概念:

1.只在声明所在的块级作用域内有效

2.const命令声明的常量不提升

3.存在暂时性死区,

4.只能在声明的位置后面使用声明的常量,

5.也与let一样不可重复声明

6.初始化必须要赋值

7.不能修改

代码示例:

// 使用 const 声明常量
const PI = 3.14159;
console.log(PI); // 输出 3.14159

// 不能修改常量的值,下面的代码会报错
// PI = 3.14;

// const 也有暂时性死区的特性
// console.log(MAX); // 这里会报错,因为 MAX 在声明之前被使用了
const MAX = 100;

2.解构赋值

用途:

  • 交换变量的值。
  • 从函数返回多个值。
  • 定义函数的参数。
  • 提取JSON数据
  • 设置函数参数的默认值

怎么区分构赋值
对象是{};
数组是[];

2.1数组解构赋值

  1. 基本使用
	let [a,b,c]=[1,2,3];
	
    console.log(a);//1
    
    console.log(b);//2
    
    console.log(c);//3
  1. 解构嵌套数组
 	  let arr = [1,[[2],3]];let [a,[[b],c]]=arr;

​      console.log(a+"-"+b+"-"+c);
  1. 不完全解构
let [a,b] = [1,2,3];

​    console.log(a);

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

  1. 剩余运算符
    let [a, ...b] = [1, [2, 3], 4];

​    console.log(a); //1

​    console.log(b);//[[2,3],4]
  1. 解构默认值
	let [x,y] = ['a']; 

	​console.log(x);//'a'

	​console.log(y); // 如果没有的解构 那么就统一都是undefinedlet [x, y = 'b'] = ['a'];

	console.log(x); // 'a'
	
​    console.log(y); //'b'

2.2对象解构赋值

  1. 基本写法
let {

​      age,

​      name, aaa

​    } = obj;

​    console.log(name + age + aaa); //解构的取值方式  aaa没有就是undefined
  1. 解构嵌套数组
	 let obj = {   -- 必须要掌握

​     p:['hello',{y:'world'}]};let {p:[x,{y}] }  = obj;

​     console.log(x+y); //helloworld

  1. 不完全解构
let obj = {

​     p:['hello',{y:'world'}]};let {p:[x,{y},z] }  = obj;

​     console.log(x+y+z); //hello world undefined
  1. 剩余运算符
    let obj = {a:10,b:20,c:30,d:40};

    let {a,b,...rest} = obj

    console.log(a) // 10

    console.log(b)//20

    console.log(rest)//{c:30,d:40}
    
  1. 解构默认值
  // let obj = {a:3};

  // 原本的值优先  

  let {a=10,b=20} = {a:3};

  console.log(a);//3

  //如果 原本没有的 那么就去解构 如果解构没有默认值那就undefined 

  //如果有默认一个值 比如b=20那么就取这个默认值

  console.log(b);//20

   

  // a:aa  aa表示给a属性重写一个变量名称叫aa  避免和上面的a重复命名

  //因为let不允许重复定义同一个变量名

  let {a:aa,b:bb=5} = {a:3};

  console.log(aa);//3 

  console.log(bb);//5 
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值