let 声明
-
拥有块级作用域block (没有变量提升现象)
-
不会成为 window 属性
-
暂时性死区 (局部内声明过的变量也不能再次声明)
-
不能重复定义
const 声明
- const 声明的是常量
- 声明的变量必须立即初始化
- 栈区的值不变,但是堆区的值可变
新的数据结构
数据结构 set
Set
对象;是值的集合,可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 Set 中的元素是唯一的。
NaN
和undefined
都可以被存储在Set 中, NaN
之间被视为相同的值(NaN被认为是相同的,尽管 NaN !== NaN)。
let arr = ["你好","你好","你好1","你好2","你好3","你好1","你好2"];
let newArr = new Set(arr);
newArr.add() 添加
newArr.delete() 删除 t/f
newArr.has() 是否存在 t/f
newArr.size 数组长度
newArr.clear() //清空数组
console.log(newArr.clear());
console.log([...newArr]);
数据结构 map
Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者原始值) 都可以作为一个键或一个值。
一个Map对象在迭代时会根据对象中元素的插入顺序来进行 — 一个 for...of
循环在每次迭代后会返回一个形式为[key,value]的数组。
// Map
let m = new Map();
// 添加键set
m.set(1,"ont");
m.set(2,"two")
// 读取值get
m.get(1);
m.has('ont') // true
m.delete('ont') // true
console.log(...m);
es6语法-字符串扩展
1.trim,trimLeft ,trimRight 去掉字符串的空格
当字符串调用方法的时候,会把字符串包装成对象
new String(‘要包装的字符串’)
字符串的方法都挂在了 String.prototype
let str = " hello,world ";
let s1 = str.trimRight(); //去右边空格
let s2 = str.trimLeft(); //去左边空格
2.模板字符串
`` :表示模板字符串 (在英文输入环境下,tab键上的按钮)
用法 ${变量}值
;
let obj = {
y:2021,
m:12,
d:31
}
let str = `${
obj.y}年${
obj.m}月${
obj.d}日`;
3. repeat 方法
作用:重复输出字符串固定次数
格式:str.repeat(n) n表示次数
结果: 输出一个新的字符串,该字符串由n个str组成;
let str = " hello,world ";
str.repeat(2) //输出2次hello,world
4. 字符串检测方法(includes, startsWith, endsWidth)
-
includes: str.includes(child) str 中是否含有child;
-
startsWith: str.startsWith(child) str 是否是以child开头;
-
endsWith: str.endsWith(child) str 是否以child结尾;
-
注意:
l 这三个方法返回的数据类型是布尔类型的;
l Str表示一个字符串,child表示str的子串
l 与indexOf的区别是返回的结果不同;
let str = "hello,world";
let s1 = str.includes("o"); //true / false
let s1 = str.startsWith("he");//true / false
let s1 = str.endsWith("d");//true / false
5. 字符串填充(padStart , padEnd)
padStart : str.padStart(n,’’) 在str的开头填充若个,使输出的字符串长度为n;
padEnd : str.padEnd(n,’’) 在str的结尾填充若干个,使输出的字符串长度为n;
padStart(“输出字符串的总长度”,“填充的内容”);
注意:输出字符串的总长度,如果小于字符串的长度则按原样返回,没有填充。
let str = "hello,world!";
let s1 = str.padStart(20,'yy')
let s1 = str.padEnd(20,'yy')
es6语法-数组的扩展
回顾:
-
push:在后面添加
-
pop :返回最后一个元素,并在原数组中删除它。
-
unshift :在前面添加
-
shift :返回第一个元素,并在原数组中删除它。
-
join :把数组拼成一个字符串,用指定的分隔符号
-
slice : slice(开始索引,结束索引) 方法可从已有的数组中返回选定的元素。
-
splice :删除,插入 splice(开始操作的索引[,删除的元素个数,新增加的内容])
-
reverse:翻转
-
conact:连接两个或更多的数组,并返回结果
-
indexOf:查找元素,如果找到就返回下标,找不到,就返回-1.
-
sort(function(r1,r2){return r1-r2;}) 排序的方法
解构赋值的应用
1. 交换变量的值、
let x = 1;
let y = 2;
[x,y] = [y,x];
console.log(x,y); // x:2 y:1
2. 快速获取函数返回的多个值
function getData()