let 和const的区别
let 声明的变量只在 let 命令所在的代码块内有效。
const 声明一个变量的常量,一旦声明,常量的值就能改变。
let 命令
for 循环计时器很适合let
for(var i = 0 ;i<10; i++){
setTimeout(function(){
console.log(i);
})
const 命令
const PI = "3.1415926";
PI // 3.1415926const MY_AGE;
ES6 明确规定,代码块内如果存在 let 或者 const,代码块会对这些命令声明的变量从块的开始就形成一个封闭作用域。代码块内,在声明变量 PI 之前使用它会报错。
}
二、解构赋值
数组模型的结构(Array)
let[a,b,c]=[1,2,3];
console.log(a);
字符串
剩余运算符
let {a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40};
// a = 10
// b = 20
// rest = {c: 30, d: 40}
解构默认值
let {a = 10, b = 5} = {a: 3};
// a = 3; b = 5;
let {a: aa = 10, b: bb = 5} = {a: 3};
// aa = 3; bb = 5;
Symbol 值,若没有则新建并返回一个以该字符串参数为名称的 Symbol 值,并登记在全局环境中供搜索。
Symbol.for() 类似单例模式,首先会在全局搜索被登记的 Symbol 中是否有该字符串参数作为名称的 Symbol 值,如果有即返回该
Symbol.keyFor() 返回一个已登记的 Symbol 类型值的 key ,用来检测该字符串参数作为名称的 Symbol 值是否已被登记。
map与Set
Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。
---var MyMap=new Map();
---var keyString="一个人";
Map 与 Array的转换
var kvArray = [["key1", "value1"], ["key2", "value2"]];
// Map 构造函数可以将一个 二维 键值对数组转换成一个 Map 对象
Set
// Array 转 Set
var mySet = new Set(["value1", "value2", "value3"]);
// 用...操作符,将 Set 转 Array
var myArray = [...mySet];
String
// String 转 Set
var mySet = new Set('hello'); // Set(4) {"h", "e", "l", "o"}
// 注:Set 中 toString 方法是不能将 Set 转换成 String
数组去重
并集
//var mySet = new Set([1, 2, 3,3, 4, 4]);
var a = new Set([1, 2, 3]);
var b = new Set([4, 3, 2]);
// [1, 2, 3, 4]
console.log([...a, ...b] );
//console.log([...mySet]);
indexOf方法
includes():返回布尔值,判断是否找到参数字符串。
startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。
endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。
repeat():返回新的字符串,表示将字符串重复指定次数返回。
padStart:返回新的字符串,表示用参数字符串从头部(左侧)补全原字符串。
padEnd:返回新的字符串,表示用参数字符串从尾部(右侧)补全原字符串。
标签模板
alert`Hello world!`;
// 等价于
alert('Hello world!');
应用于
过滤 HTML 字符串,防止用户输入恶意内容。
function f(stringArr,...values){
let result = "";
for(let i=0;i<stringArr.length;i++){
result += stringArr[i];
if(values[i]){
result += String(values[i]).replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">");
}
}
return result;
}
name = '<Amy&MIke>';
f`<p>Hi, ${name}.I would like send you some message.</p>`;
// <p>Hi, <Amy&MIke>.I would like send you some message.</p>
知识点有一些
后期还会补上来,做两次来发哦~