javascript 函数(ES6)

严格模式

在js第一行写上'use strict' 将开启严格模式

在严格模式下,声明变量时不允许不加var;

多行字符串

一个字符串如果想要换行,之前只能使用

 alert("这是\r\n一个\r\n多行\r\n字符串");

ES6现在新增了一个新的方法

alert(`这是
       一个
       多行
       字符串`);

使用这种方法可以直接输出换行符
类似于c#里面的@

Slice

它就是js版本的substriing

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C']
arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G']

Slice方法包含首,但是不包含尾

push 和 pop

在数组最后追加/删除一个

unshift 和 shift

在数组头部追加/删除一个

Map

map是一组key-value的组合。可以极快的查找

// 初始化一个map
var m = new Map([['xyy','yebao'],['lz','xiubao'],['hali','habao']]);
// 添加一个新的key-value组合
m.set('santong','alex');
// 删除一个key-value
m.delete('santong');
// 根据key获取
m.get('xyy');
// 判断是否存在
m.has('xyy');

Set

Set和map类似,是一组key的组合。
但是只保存key,不保存value。
同时key不会重复

// 虽然声明了很多重复的,但是实际上 s = [1,2,3,4,5]
var s = new Set([1,1,1,1,2,2,3,3,4,4,4,5]);

 alert(typeof s);
// 打印每个key
 s.forEach(function(item){
          alert(item);
        });       

iterable

和Map、Set一样,iterable也是ES6新引入的语法。

这是因为array可以使用下标来访问,而Map和Set则不行。
为了统一集合类型,ES6引入了新的类型----iterable。
Array,Map和Set均属于iterable类型。
具有iterable类型的集合可以使用新的for...of方法来遍历

 var s = new Set([1,1,1,2,3,4,5,5,5,6,6,7]);
        
        for(var t of s){
          alert(t);
        }

for...of 和in最大的区别有两点:

  • 返回的不是属性名,而是每个元素
  • 修复了for...in的历史遗留问题,只会返回集合本身的元素

当然除了使用for...of之外,更好的遍历集合的方法是使用forEach方法


// array 中forEach的回调函数参数
var arr = ['a','b','c'];
// 当前元素,当前序号,集合本身
arr.forEach(function(element,index,arr){
    alert(element);
    alert(index);
    alert(arr);
});

// Set中的回调函数参数
 var s = new Set([1,2,3]);

// 因为Set并没有索引,因此前两个参数都是当前元素,最后一个参数是集合本身
s.forEach(function(element,element2,s){
          alert(element);
          alert(element2);
          alert(s);

        });

// Map中的回调函数参数        
var m = new Map([['lz','xiubao'],['xyy','yebao'],['hali','habao']]);

        m.forEach(function(value,key,m){
          alert(value);
          alert(key);
          alert(m);

        });
        

posted @ 2016-01-31 20:31  刘荘  阅读(294)  评论(0)    收藏  举报