es6基础知识

本文深入探讨了ES6中引入的重要特性,包括let和const声明、解构赋值、对象扩展等,解析了它们的基本用法和高级技巧,以及如何在实际编程中应用这些新特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、let命令
1.基本用法

1) let所声明的变量,只有在let命令所在的代码块内有效。

  {let a=10; var b=7}
    console.log(a);
    console.log(b);
    结果:a is not defined ,  b=7;

2)不存在变量提升

console.log(bar);
let bar = 2;
结果报错

3)在代码块内,使用let命令声明变量之前,该变量都是不可用的

var tmp = 123;
if(true){
	tmp='abc';
	let tmp;
	}
	报错

4)不允许重复声明

function(){let a=10;let a=5;}   
        报错

2.块级作用域
let为javascript新增了块级作用域。外层作用域无法读取内层作用域的变量,内层作用域可以定义外层作用域的同名变量

let foo=1;
{
	let foo=2;
	let bar='one';
}
console.log(foo);    //1
console.log(bar);      //报错

二、const命令
基本用法
1)不能重复声明
2)不存在变量声明的提升
3)const一旦声明变量,就必须立即初始化,const声明的变量不得改变值
4)只在声明所在的块级作用域内有效,
5)在代码块内,使用let命令声明变量之前,该变量都是不可用的
三、解构赋值

eg:     let[a,b,c]=[1,2,3];

1.数组的解构赋值

  let[a,b,c]=[1,2,3];
  let[a[b],c]=[1,[2,3],4];     //a=1,b=2,c=4
  let[head,...tail]=[1,2,3,4];    //head=1;tail=[2,3,4]
  let[x,y='b']=['a'];          //x=a,y=b;
 

2.对象的解构赋值
3.字符串的解构赋值

const[a,b,c,d]='hello';      //a=h,b=e,c=l,d=l
let{length:len}="hello";      //len=5
解构时,如果等号右边是数值或布尔值,则会先转为对象
let{toString:s}=123;     //s===Number.prototype.toString true
let{toString:s}=true;     //s===Boolean.prototype.toString true

4.函数参数的解构赋值

function move({x=0,y=0}){
	return[x,y]
	}
	move({x:3,y:8});      //[3,8]
	move({x:3});      //[3,0]
	move({});      //[0,0]
	move();      //[0,0]

解构赋值的用途

1) 交换变量的值

let x=1;
let y=2;
[x,y]=[y,x];

四、对象扩展

1) 对象简写
	var age = 12;
	var obj = {
		name:'terry',
		age,
		sayName(){
			console.log(this.name);
		}
	}
	
2) Object函数的拓展
	Object.is() 	
				类似于=== ,在对比+0,-0,NaN时可以用到
	Object.assign() 	
				用于对象的合并
	Object.setPrototypeOf(obj,prototype); 
				设置某个对象的原型
	Object.getPrototypeOf(obj); 	
				获取指定对象的原型
	Object.keys(obj)
	Object.values(obj);
	Object.entires(obj)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值