<javascript>ES6新增let、const、this和bind、json对象与字符串的转换、for...in|of、字符串扩展方法、箭头函数、解构赋值、set集合等

1-let

	用来定义变量的关键字 
	特点
		1-要求变量必须先定义再使用,不能声明提升
		2-不能重复定义变量
		3-块级作用域(变量在该作用域中不会丢失)
		4-暂时性死区(当内部变量与外部变量同名时,内部变量屏蔽外部变量)

2-const

	定义只读变量的关键字(创建有名的常量)
	特点
		1-被const修饰的变量为只读变量
		2-被const修饰的变量必须初始化(赋初值)
		3-不能声明提升,必须先定义后使用
		4-不能重复定义
		5-块级作用域
		6-暂时性死区
	面试题
		var、let、const的异同
			1-都用来定义变量的关键字
			2-var具备声明提升
			3-let、const必须先定义后使用,不具备声明提升,不能重复定义变量。块级作用域,暂时性死区
			4-const修饰的变量为只读变量,且必须初始化

3-this与bind

	this
		this-函数体内的内置对象,作用域只能在函数体内使用
		1-与事件体连用-代表触发该事件的元素本身
		2-与普通方法连用(除了事件体和构造方法),调用该方法的对象本身
	bind
		函数对象的一个方法,作用就是来改变该函数的this指向,主要修饰匿名函数的this
		bind(被修改的this指向)

4-json和字符串的相互转换

	字符串=>json对象
		JSON.parse(str)
		var str = '{"name":"老王","age":18}';
		var json = JSON.parse(str);
		console.log(json);
	json对象=>字符串
		JSON.stringify(json)
		var json = {"name":"老王","age":18};
		var str = JSON.stringify(json);
		console.log(str);
	注意事项-使用以下转换方法的json对象和字符串,key必须用双引号引起来

5-for…in和for…of

	for...in
		通常用来遍历json对象,因为遍历的是下标,也能 遍历数组
		for(let 索引 in json对象)
	for...of
		针对于没有下标的容器进行遍历
		for(let 元素数值 of 容器)

6-字符串扩展方法

	str.includes(参数)
		返回布尔值,表示是否找到了参数字符串
	str.startWith(参数)
		返回布尔值,参数是否在源字符串的头部
	str.endWith(参数)
		返回布尔值,参数是否在源字符串的尾部
	打印中文的问题-unicode
		中文解析默认为utf-16
		0-65535
		超过65535的汉字,中文和编码的读取方式
		中文
			console.log('\u{21c56}');
		汉字对应编码
			console.log(str1.codePointAt(0));

7-箭头函数

	匿名函数的一种写法
		let fun = function(){
		 	console.log("郑州加油");
		}
		let fun = ()=>{
			console.log("heiheihei");
		}
	特点
		1-如果只有一个参数,可以省略圆括号
			let fun = a => {
				console.log(a + 5);
			}
			fun(10);
		2-如果函数体只有一条语句,则可以省略花括号
			let fun = a => console.log(a + 10);
			fun(40);
		3-如果函数体只有一条语句,则自带return
			let fun = a => a * 2;
			console.log(fun(20));

8-解构赋值

	1-解析结构进行赋值
		1-数组
			let [x,y,z] = [1,2,3];
		2-json对象
			let {name,age} = {
			     "name":"老王",
			    "age":8
			}
			目的为去掉json的前缀,直接用变量即可
	2-交换两个变量的值
		let [a,b] = [1,2];
		[a,b] = [b,a];

9-Set集合

	set为一个新容器,集合,没有下标,自动去重
	let set = new Set(数组)
	操作
		add(参数)---向集合中添加一个元素
		delete(值)---删除集合中某个数
		has(值)---判断集合中是否含有某个值
		clear()---清空集合
	数组去重
		let arr = [1,"heihei",1,2,2,3,4,4,5,5,1,"heihei"];
		let set = new Set(arr);
		arr = Array.from(set);
	Array.from(集合)---将集合转化为数组

10-map

	键值对的容器,映射
	key1=value1,key=value2...
	操作
		1-增改
			set(key,value)向集合中添加一个元素---key已存在,则为改,不存在则为增
		2-取
			get(键)---根据键取值
		3-删
			delete(键)----删除集合中某个数
		4-查
			has(键)--判断集合是否有某个值
		5-清除
			clear()--清空集合

11-字符串模板

	字符串创建的方式
		“heihei”
		‘haha’
		·123·
	注意事项
		前两者不支持换行
		被··包含的字符串序列也是字符串
		反引号支持换行,常用于页面的拼接
		ES6字符串模板中出现变量必须用${变量}

ES5新增的迭代函数

遍历
	1-循环
	2-循环中执行相应的功能
数组迭代函数-帮我们把循环实现了,我们只需要写功能
回调函数
	function 回调函数(元素数值,[元素下标],[数组名])
forEach
	遍历数组
	arr.forEach(回调函数)
	无返回值
map
	遍历数组
	arr.map(回调函数)
	在回调含糊添加return,返回一个新数组
filter
	过滤,根据回调函数返回的布尔值,决定元素是否被存入新的数组
	arr.filter(回调函数)
	根据回调函数返回的布尔值,决定元素是否被存入新的数组
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值