0.let const
局部变量,不允许重复声明.const只读常量,一旦声明就无法改变.
1. for…of
for … in循环由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。for … of循环则完全修复了这些问题,它只循环集合本身的元素
var a = ['A', 'B', 'C']; a.name = 'Hello'; for (var x in a) { alert(x); // '0', '1', '2', 'name' } var a = ['A', 'B', 'C']; a.name = 'Hello'; for (var x of a) { alert(x); // 'A', 'B', 'C' }
当然也可以直接使用iterable内置的forEach方法,它接收一个函数,每次迭代就自动回调该函数。以Array为例:
ar a = ['A', 'B', 'C']; a.forEach(function (element, index, array) { // element: 指向当前元素的值 // index: 指向当前索引 // array: 指向Array对象本身 alert(element); });
2.新增字符串遍历的三个方法
es6新增includes:返回布尔值,表示是否找到字符串。startsWith:返回布尔值,表示字符串是否在源字符串的头部位置。endsWith:返回布尔值,表示参数字符串是否在源字符串尾部。
3.字符串操作新增repeat方法
返回一个新字符串,表示将源字符串重复多少次.
'x'.repeat(3)
和python里'x'*3
同样作用,都返回字符串'xxx'
4.模板字符串
字符串操作里面最麻烦的莫过于拼接字符串,为解决这个问题ec6提供了模板字符串解决方案
var name='zhangyiqiu' var str=`hello,${name}!`//hello,zhangyiqiu!