es6通常使用babelrc来转换成es5的来兼容低级版本的浏览器
1.循环迭代:
for...of循环是ES6中新加的一种遍历迭代器的语法,不能遍历对象
var arr = ['nick','freddy'];
arr.name = "数组";
for(var i in arr){
console.log(i+': '+arr[i]);//0:nick 1:freddy name:数组
}
for(var item of arr){
console.log(item);//nick freddy
}
给数组添加一个自定义属性name,而且赋值"数组"。而后进行遍历输出的,会发现新定义的属性也被for in输出来了,而for of并不会对name进行输出。
2.let,const:
let 的做用域是在它所在当前代码块,但不会被提高到当前函数的最顶部。
const 声明的变量都会被认为是常量,表示它的值被设置完成后就不能再修改了。
若是const的是一个对象,对象所包含的值是能够被修改的。就是对象所指向的地址没有变就行。
3.模板字符串
第一种,基本的字符串格式化。字符串的拼接
es5: var name = 'ff'
alert('hello'+name)
es6: const name = 'ff'
alert(`hello ${name}`)
第二种,在es5时咱们能够经过反斜杠(\)来作多行字符串或者字符串一行行拼接,es6反引号(``)直接搞定。
es5: var msg = "\
<div>1231</div>\
<span>dfasd</span>"
es5: conse msg = `<div>
<span>wfdsf</span>
</div>`
此外还有一些比较厉害的方法:
1).includes: 判断是否包含而后直接返回布尔值
const str = 'hhhrty'
alert(str.includes('t)) //true
2).repeat: 获取字符串重复n次,若是带有小数按照Math.floor(num)处理
const str = 'he'
alert(str.repeat(3)) //hehehe
3).startsWith和endsWith判断是否以给定文本开始或者结束
const str = 'hello wwww!'
alert(str.startsWith('hello')) //true
alert(str.endsWith('!')) //true
4.函数
函数默认值
es5: function action(num) {
num = num || 200
return num
}
当传入num的时候,num为传入的num值,没有传参的时候就是200,可是当num=0的时候,此时num会为200,与咱们实际想要的效果明显不同。
es6为参数提供了默认值,在定义函数初始化时就初始化了这个参数,如:
function action(num = 200){
console.log(num)
}
action(0)//0
action()//200
action(300)//300
箭头函数:es6
直观的三个特色:不须要function关键字来建立函数;省略return关键字;继承当前上下文的this关键字。
当函数有且仅有一个参数的时候,是能够省略括号的;当函数返回有且只有一个表达式的时候能够省略{}和return;例如
let people = name => 'hello' +name
let people = (name.age) => {
const fullName = 'hello' + name
return fullName
}
未完待续加班中....数组