ES6相关内容笔记(一)

1.var 和 let 区别

var和let都是用于对于变量声明的操作
但是let的声明与var相比会严格很多
①let作为块级作用域,声明的变量作用域在所在的"{}"中,或者找到最近的{
②let对于作用域内的同一个变量不可重复声明,会产生报错
③let没有变量提升的概念,而var有变量提升的概念
④let暂时性死区:在一个代码块内,如果有某个变量,会绑定该区域,不再受外界的影响
⑤var声明以后 let不能声明,声明也会存在重复声明报错的情况
⑥和let类似的声明const,声明值不可以改变的量 其余规则和let一样

2.字符串扩展

①模板字符串
在变量和常量拼接的时候使用 整个字符串使用${变量}

var stu={
				name:'zs',
				age:12
			}
			txt.innerHTML=`学生的姓名是${stu.name},年龄是${stu.age}`;

②标签模板
模板字符串不仅仅可以按照上面的这种方式使用。还可以跟在一个函数后面。该函数将被调用来处理这个模板字符串

alert(123);
alert`123`;

以上两个alert弹窗弹出的内容一致

如果使用的是``的话出来的一整个数组

function add(x,y){
				console.log(x,y);
				console.log(arguments)
			}
			add(1,23);
			add`1,23`;

在这里插入图片描述

function add(x,y){
				console.log(x,y);
				console.log(arguments)
			}

let a=10;
let b=2;

add`hello${a}welcome${b}${a+b}`

在这里插入图片描述
如果使用的是模板字符串调用函数,如果参数是一个常量,此时会把参数解析成一个数组合并成一个参数

如果实参有变量有常量的时候,会自动解析 把常量(用变量隔开的)拼接成一个数组,每一个变量依次拼接到后面

3.解构
解构:es6中允许按照一定模式,从数组和对象中提取值,按照一定的规则,对变量进行赋值

①数组的解构赋值 按照数组的顺序一一赋值

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

②交换值

let m=12;
let n='hello';
// 通过解构可以直接交换值
[m,n]=[n,m];
console.log(m,n);

③对象的解构赋值
对象的解构赋值和数组有一个重要的不同,数组的解构是有顺序的,对象的解构没有顺序,由属性来决定
变量名字必须与属性名字一致,才能获取到正确的值

let stu={
	name:'zs',
	age:12
}
let {age,name,address}=stu;
// address相当于声明了,没有赋值
console.log(name,age,address);

④字符串的解构赋值
把字符串中的字符解析一一赋值。如果有多余的不会报错,只是没有对应变量赋值

let[x,y,z]='hello';
console.log(x,y,z);

⑤属性值解构赋值

			let {length:len}='hello';
			console.log(len);

⑥函数参数的解构赋值
类似于数组的解构赋值

function add([a,b]){
		console.log(a,b)
	}
		add([2,3])

4.数组扩展
①类数组转化为数组,forEach遍历数组

var btns=document.getElementsByTagName('button');
btns=Array.from(btns);
btns.forEach(function(item,index,arr){
		console.log(item,index,arr)
	})

forEach只能用来遍历数组,不能用来遍历集合,所以用Array.from(btns),转化为数组
用forEach来遍历数组中的所有元素。

②声明数组Array.of()
创建10个空数组
var ar=new Array(10)
创建一个数组,包含内容10,20,30
var ar=Array.of(10,20,30)

③find和findIndex

数组.find(function(条件){书写具体条件})得到的结果是第一个符合条件的数组元素的值。查找顺序,从左到右

数组.findIndex(function(条件){书写具体条件})得到的结果是第一个符合条件的数组元素对应的下标。查找顺序,从左到右

④filter方法
数组.filter(function(条件){}) 可以把所有符合条件的数据过滤出来

⑤copyWithin方法

规则1:copyWithin(参数1,参数2,参数3) 复制数组中的一段元素,替换原来的元素 参数1:替换开始的位置 参数2:复制开始的位置 参数3:复制结束的位置 含开始不含结束

规则2:如果复制的元素,超出数组的长度,直接舍弃,不会扩展数组, 复制的元素把原来的元素是替换,不是插入

规则3:数组下标可以是负值 从右到左 最右边的是-1

let score=[98,97,96,86,79,79,80];
score.copyWithin(1,3,6);
console.log(score);
score.copyWithin(0,4,10);
console.log(score);
score.copyWithin(-3,-4,-1)
console.log(score);

5.函数的扩展
①参数的传递

function fn(x,y=3){
	console.log(x*y)
}
fn(3,20);

函数参数的默认值 如果y没有实参,默认值就是3。如果有实参,默认就是实参的值

② rest剩余参数
用于获取函数多余的实参,是一个数组 必须要放置在结尾。

			function add(x,y,...values){
				console.log(x+y);
				console.log(values);

				var arr=values.push(x,y);
				console.log(values)
			}
			// 获取用户所有输入的实参,放在一个数组里面
			add(1,2,3,4);

③箭头函数
去除function ()和{}之间用=>

			setInterval(()=>{
				console.log(111)
			},1000)
			var fn=(x,y)=>{
				console.log(x+y);
			}

			fn(2,3)

如果函数体,只有一句话,可以直接省略{}。如果这句话带有return省略return

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值