includes(), startsWidth(), endsWidth()
includes() 返回Boolean,表示是否找到了参数字符串
srartsWith() 返回Boolean,表示参数字符串是否在查找字符串的头部
endsWith() 返回Boolean,表示参数字符串是否在查找字符串的尾部
他们三个都可以接收第二个参数,表示开始查找的位置,第一个参数是需要查找的字符串
定义变量使用let代替var
1.let声明只在块级有效
2.let变量会提升,但是ES6规定了let声明变量前不能使用该变量
const定义不可修改的变量
const遵循的规则和let相差无二,只是,const是用来声明恒定变量的,且声明的同时就得赋值,不然会报错
函数的用法
1.箭头函数
function hello(name) {
console.log('hello' + name)
console.log(`hello ${name}`) //模板字符串的用法
}
es6:
const hello = (name) => {
console.log(`hello ${name}`)
}
//如果函数只有一条语法 可以直接简写为
const double = x=>x*2
2.函数默认值
const hello = (name='abc') {
console.log(`hello ${name}!`)
}
hello() //hello abc1!
hello('xiaoming') //hello xiaoming! 如果不传值,默认为abc
3.展开符
function hello(name1, name2) {
console.log(name1, name2)
}
let arr = ['immok', 'imooccc']
hello(...arr)
// 这里会把这个数组展开 数组结果为 immok imooccc
// es5要想实现的话就用hello.apply(null, arr)
对象的扩展
1.object.keys、values 、entries
const obj = {name:'张三',sex:'男'}
console.log(Object.keys(obj)) // ["name", "sex"] 返回对象所有的属性,键名
console.log(Object.values(obj)) //["张三", "男"]
console.log(Object.entries(obj))
//[Array(2), Array(2)] 把对象转成数组了
0: (2) ["name", "张三"]
1: (2) ["sex", "男"]
length: 2
__proto__: Array(0)
2.对象方法简写,计算属性
const obj = {name:'a', course:'abc'}
const obj2 = {type:'IT', course:'zhang'}
console.log({...obj,...obj2}) //{name:'a', course:'abc',type:'IT', course:'zhang' } // ...会把对象展开,然后合并成一个新的对象,也可以在加属性
eg: {...obj,...obj2,date:'2017'}
3.展开运算符,不是es6标准,但是babel也支持
import * as obj from "xxx"
按 es6 的规范 import * as obj from “xxx” 会将 “xxx” 中所有 export 导出的内容组合成一个对象返回
import * as x from “./test.js” 的转译直接转译成 var x = require("./test");