Es6是javascript:;的新标准
变量声明
et
1、let声明的关键字和var 声明的基本一致
2、let声明的关键字是局部作用域,只在一对{}中启用
3、let声明的变量不会存在变量提升 先把所有变量和函数提升到最前面,变量同意赋值为undefined
const
1、和let基本一致
2、声明必须赋值
3、声明的数据不能修改(值类型)
引用类型只要不是重新赋值,都是引用的同一块内存地址
if switch for 都可以形成局部作用域
var 只能通过函数形成函数作用域
var 声明的变量for 循环在单击时候已经执行完毕,执行完毕j的值就是5
let声明的局部作用域(for循环的局部作用域是相互不影响的)
lis[j].οnclick=function。。。代码在局部作用域中执行就可以读取当前局部作用域的j了
数组的解构
01、数组解构:把数组解析为单个变量
02、通过逗号跳过
03、...接受剩余值
var k = 18; var l = 10; [k, l] = [l, k]; console.log(k, l);
04、可以给默认值
不给默认值为undefined
string字符串
检测:includes是否包含 startsWith以什么开头 endsWith以什么结尾 有返回true 没有返回false
补齐 padStart(len,symbol) 左侧 padEnd(len,symbol)右边
len 指定的长度,为满足指定的长度则以symbol填充
数组
sort 排序
find 查找符合条件的元素
findIndex查找符合条件的元素的下标
forEach遍历
var arr1 = ["小鹏", "大鹏", "少鹏", "sure鹏", "东鹏"]; arr1.forEach((item, index, self) => { console.log(item, index, self); });
filter过滤
var arr2 = [1, 4, 8, 45, 567, 345, 45, 232, 454, 64, 754, 23, 68, 97]; var arr2 = arr.filter(function (item) { return item % 2 === 0 })
map映射
reduce累计
some 有一个为真 返回为true
every 全部为真 返回及为true
箭头函数
箭头函数:函数的简写
如果不是一个需要添加()
如果有多行语句用{}
如果需要返回对象用({})
箭构函数不能做构造函数
箭头函数里面的this指向上一层作用域里面的this
var fun7 = (name, age) => { console.log("我的名字是" + name, "今年" + age + "岁"); } fun7("sure鹏", 3)
var arr = [2, 4, 6, 8]; var arr1 = arr.filter(item => item > 5) console.log(arr1);//过滤 var arr2 = arr.reduce((a, b) => a + b) console.log(arr2);//过滤 var arr3 = arr.map(item => item * 2) console.log(arr3);//映射
不定参
function meeting(p1, p2, p3) { console.log("今天有" + p1 + p2 + "和" + p3); } var arr = ["张大大", "六大大", "里大大", "二大大"]; meeting(...arr)
对象新增
Object.create()通过现有的对象创建一个新的对象
新对象的原型上源对象的方法和属性
Object.key()获取对象所有键的集合成为一个数组
var keys = Object.keys(obj3) console.log(keys);
var obj1 = { name: "dada", age: 18, leg: 2 } var obj2 = { age: 17, job: "teacher" } var obj3 = Object.assign(obj1, obj2) console.log(obj3);
Object.values()获取值的集合
var vals = Object.values(obj3) console.log(vals);
Object.assign()合并对象
var obj1 = { name: "dada", age: 18, leg: 2 } var obj2 = { age: 17, job: "teacher" } var obj3 = Object.assign(obj1, obj2) console.log(obj3);
对象简写
- ES6 允许在发括号中直接写入变量和函数 作为对象的属性和方法
- 这样的书写更简洁
- 如果在外部声明一个变量并赋值 则可以在打括号中直接使用变量掉调用