javascript 函数(ES6)

严格模式

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

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

多行字符串

一个字符串若是想要换行,以前只能使用c#

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

ES6如今新增了一个新的方法数组

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

使用这种方法能够直接输出换行符
相似于c#里面的@函数

Slice

它就是js版本的substriingcode

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

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

unshift 和 shift

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

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);

        });
相关文章
相关标签/搜索