ES6新特性

本文介绍了ES6的几个重要特性,包括块级作用域的let声明,参数默认值,剩余参数,箭头函数以及模板字符串。通过示例详细解析了如何使用这些新特性,特别是箭头函数的特性和模板字符串的限制。

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

关于ES6新特性

  1. 块级作用域(let声明)

let声明的变量不存在提升,不允许反复声明
在块级作用域下使用let声明的变量是局部变量,不能被其他作用域访问到

注意:if,else,while,for…所有大括号中都是块级作用域

  1. 函数增强
  • 参数默认值(default)
    即使调用函数时没有传入实参值,对应的形参变量也有默认值可用
function 函数名(形参1,形参2,形参n=默认值){
	
}
  • 剩余参数(rest)
    专门代替arguments来解决不确定实参值个数的问题
    因为arguments是类数组,并非数组,所以不能使用数组家的函数
    ES6箭头函数禁止使用arguments

定义函数时,…会自动收集除前几个形参变量外剩余的所有实参值

function 函数名(形参1,形参2,...自定义数组名){
	//收集的所有实参值,都自动放在自定义数组中
}

举例:

var add = (...arr)=>arr.reduce((box,elem)=>box+elem,0);
console.log(add(1,2,3));

function jisuan(ename,...arr){
    var sum = arr.reduce((box,elem)=>box+elem,0);
    console.log(`${ename}的总工资是${sum}`);
}
jisuan("韩梅",6000,300,900);

在这里插入图片描述

  • 打散数组(speard)
    专门将一个数组或对象整体打散为多个值,再使用
函数名(...数组名)

举例:

var arr=[1,5,6,8];
console.log(Math.max(...arr));

在这里插入图片描述
总结:定义函数时,用…收集;调用函数时,用…打散

…的语法糖:

复制一个数组:var arr2 = […arr1];
拼接两个数组以及其他元素:var arr3 = [元素1,…arr1,元素n,…arr2];
复制一个对象(clone):var obj2 = {…obj1};
拼接多个对象以及属性:var obj3 = {属性1:值1,…obj1,属性n:值n,…obj2};

  1. 箭头函数

简化了匿名函数的写法,但不等价于匿名函数

//普通函数
function sort(a,b){
	return a-b;
}
//箭头函数
sort((a,b)=>{return a-b;})
//再简化
sort((a,b)=>a,b);

  • 箭头函数的特点:
    (1)内外this保持一致,但不是所有的function都可以使用箭头函数
    (2)对象内的函数不能使用箭头函数,ES6提供了简写:函数内部使用箭头函数
    举例:
var Hanmeimei = {
	sname:"Hanmeimei",
	friends:["小米","小曼","小明"],
	intr:function(){
		this.friends.forEach(
		elem=>{
			console.log(`${this.sname}认识${elem}`)
		});
	}
};
Hanmeimei.intr();

在这里插入图片描述
原理:
在这里插入图片描述

在这里插入图片描述

当对象内的函数使用箭头函数后,因为对象没有作用域,intr()直接指向window,所以forEach的this直接指向window,再打印时,会undefined,因为全局中没有friends
在这里插入图片描述

  1. 模板字符串
`我最喜欢的小说是:${js表达式(任何形式的数据)}`

注意:
可以写:
变量, 算数计算, 各种有返回值的运算,三目,
有返回值的函数调用,创建对象,访问数组元素
不可以写:
模板字符串中不可以写任何结构分支

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值