ES6新增方法和属性
sonder 超大杯

字符串扩展:

1
2
3
4
str.includes(s)     //检测字符串中是否含有参数代表的字符  返回布尔值;
str. startsWith(s) // str. endsWith(s) 检测是否以参数开头或结尾,返回布尔值;
str.repeat(n) //n为多少,就重复字符串多少次 ;
str.padStart(n,s) // str.padEnd(n,s) 第一个参数代表新字符串的位数,原字符串如果不够n位,则补充到n位,补充内容为s;

模板字符串:
1
2
3
4
ˋ这里是字符串${变量名}ˋ 
var num = 123;
// 例子
str = `<li>${num}</li>`;

函数扩展:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
函数参数默认值
function foo(a=1,b){
// To do sth.
}
foo(10,20);
//可以在形参里写上默认参数,但是在调用时的实参是会替换的;
//函数的length属性
//形参就是函数的length的长度(个数);
//rest参数:
//rest参数接受函数多余参数,形成数组;实参会传入这个数组里,如果有其他形参,则剩下的参数会放到rest里;
function foo(...rest){ console.log(rest)} ;
Array.from() //将一个类数组对象或者可遍历对象转成真的 数组;
var str = "abcd"Array.from(str);//["a","b","c","d"];
Array.of()
//方法总是返回参数值组成的数组。如果没有参数,就返回一个空数组;

//set结构:一种新的数据结构,类似数组,返回值不重复;
var str = new Set(['参数']);
//返回的参数是一个数组,且没有重复;(去重);
//假如参数是一个字符串则返回{},并不是一个数组,需要其他方法来转成字符串,通过Array.from()转为数组;
keys()://返回键名的遍历器for (let item of set.keys()) { console.log(item); }
values()://返回键值的遍历器
entries()://返回键值对的遍历器
forEach()://使用回调函数遍历每个成员set.forEach((value, key) => console.log(value * 2) )
//Map结构:一种新的数据结构,类似对象;
var map = new Map([["name","john"],["age",30]]);
map.set(1,1);
map.size //长度
map.set(key,value);map.get(key);map.delete(key);map.has(key);map.clear();
keys()://返回键名的遍历器
values()://返回键值的遍历器
entries()://返回键值对的遍历器for (let [key, value] of map.entries()) { console.log(key, value); }
forEach()://使用回调函数遍历每个成员map.forEach((value, key) => console.log(value * 2) )
//箭头函数:
1. let foo = () =>10; // 只含一个表达式 例如
2.含有多条语句;
3.this的指向问题; 在箭头函数中,this指向要看{}外面的this指向什么;正常函数里看是谁触发的函数;
4.在哪定义的this就指向谁;

生成器函数:
function*foo(){yield a } var f = foo(1); f.next(); yield // 暂停 并返回后面跟的值,也就是那个value;
Symbol: 一种新的原始数据类型,只要是为了避免属性名的重复;
var obj = {name:"zhang"}; var s = Symbol(); obj[s] = "li"
this指向: call() apply() bind() ; 会改变this指向;严格模式下,在函数内部定义的 看包含的父级;正常模式下,看触发函数的事件源是谁;
obj.方法名.call(obj2,1,2); //单个参数列表;
obj.方法名.apply(obj2,[1,2]);//将要传递的参数放到数组里;
obj.方法名.bind(obj2)(1,2);//放到后面;
  • 本文标题:ES6新增方法和属性
  • 本文作者:sonder
  • 创建时间:2019-05-23 14:58:36
  • 本文链接:https://sonderss.github.io/2019/05/23/ES6新增方法和属性/
 评论