es6语法
https://www.jianshu.com/p/dc5057e7ad0d
注意: 在玩es6的时候,用严格模式(use strict)
1. 变量l定义let和常量定义const
let定义变量 有块级作用域(只对本块起作用,不会影响其他)
应用: 可解决i值问题
let aBtn = document.getElementsByTagName('input');
console.log(aBtn.length, 989898)
for (let i = 0; i < aBtn.length; i++) {
aBtn[i].onclick = function () {
alert(i)
}
}
注意: let不能重复定义同一变量
2. 字符串模板引擎(字符串拼接)
Es6的这种新的"字符串"拼接方法比较简单,没有繁琐的加好和引号, 只需要在需要的字符串"边界"加上``即可
var name = 'jack'; var age = 18; var sex = '男'; var str1 = `我是${name}, 今年${age}岁, 性别${sex}`; console.log(str1)
3. 解构赋值
根据对应赋值
let [a,b,c] = [12, 5, 8]
console.log(a,b,c)
json 格式赋值
let {a,b,c} = {a:1,b:2,c:3};
console.log(a,b,c) //1 2 3
// 数组里嵌套数组
let [a,[b,c],d] = [1,[2,3],4]
console.log(a,b,c,d) // 1, 2, 3 4
解构赋值与顺序无关 与结构有关
let {a,b,c} = {b: 5, c: 4, a: 3};
console.log(a,b,c) // 3,4,5
解构赋值的默认值
let {time = 1000, id = 0} = {};
console.log(time, id) // 1000 0
4. 神奇的三个点
深拷贝的几种方式
方式一: 利用for循环把原数组的每一项都遍历,然后扔到新数组中
var arr = [1,2,3]; var arr2 = []; for (var i = 0; i < arr.length; i++) { arr2.push(arr[i]) }
方式二: 利用Array.from(原数组)
var arr = [1,2,3]; var arr2 = Array.from(arr);
方式三: 三个点
var arr = [1,2,3]; var arr2 = [...arr];
5. for 循环
for in 循环
let arr = [1,2,3]; for (let i in arr) { console.log(i) // 0 1 2 console.log(arr[i]) // 1 2 3 } // 循环json let json = {a: 12, b: 13, c: 14}; for (let name in json) { console.log(name) // a b c console.log(json[name]) // 12 13 14 }
for of 循环 (不可循环json)
let arr = [1,2,3]; for (let name of arr) { console.log(name) // 1 2 3 }
浙公网安备 33010602011771号