es6的阅读收获

这里只是我本人自己的收获,所以不会详细的列出知识点,若是想了解可以直接去es6官网查看

1.关于let和var以及const的用法:①var是定义全局变量的,会有变量提升的现象也就是会有先先操作变量后定义(这里不会报错值是undefined),②let是块级作用域它没有变量提升不然会报错,③const一旦声明变量就必须要初始化(本质:不能改动的其实是变量指向的内存地址所保存的数据不能改动,但是他的数据结构就不一定了,所以用const定义对象的时候需要注意)

2.解构赋值的用途(从数组或者对象中提取值,对变量进行赋值这被称为解构)

①交换变量的值

let x = 1;
let y = 2;

[x, y] = [y, x];
②从函数返回多个值
// 返回一个数组

function example() {
  return [1, 2, 3];
}
let [a, b, c] = example();

// 返回一个对象

function example() {
  return {
    foo: 1,
    bar: 2
  };
}
let { foo, bar } = example();
③函数参数的定义
// 参数是一组有次序的值
function f([x, y, z]) { ... }
f([1, 2, 3]);

// 参数是一组无次序的值
function f({x, y, z}) { ... }
f({z: 3, y: 2, x: 1});
④提取json数据
let jsonData = {
  id: 42,
  status: "OK",
  data: [867, 5309]
};

let { id, status, data: number } = jsonData;

console.log(id, status, number);
// 42, "OK", [867, 5309]
⑤函数参数的默认值
jQuery.ajax = function (url, {
  async = true,
  beforeSend = function () {},
  cache = true,
  complete = function () {},
  crossDomain = false,
  global = true,
  // ... more config
} = {}) {
  // ... do stuff
};
⑥遍历map结构(很有用)
const map = new Map();
map.set('first', 'hello');
map.set('second', 'world');

for (let [key, value] of map) {
  console.log(key + " is " + value);
}
// first is hello
// second is world
⑦输入模块的制定方法(这里我本人不是很理解没有用过)
const { SourceMapConsumer, SourceNode } = require("source-map");
3.字符串的扩展
  • includes():返回布尔值,表示是否找到了参数字符串。
  • startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
  • endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
例子
let s = 'Hello world!';

s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true
②repeat(返回一个新的字符串,表示将原字符串重复n次)
'x'.repeat(3) // "xxx"
'hello'.repeat(2) // "hellohello"
'na'.repeat(0) // ""
参数如果是小数会被取整数部分的值,若是为负值会报错
③padStart(),padEnd()--如果字符串长度不够指定的长度则会在头部或者尾部补全
'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'

'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'
如果原字符串的长度等于大于制定的长度则返回原字符串
如果原字符串与用来补全的字符串加一起大于最大长度,则截去超出位数的补全字符串
如果省去第二个参数则会默认用空格代替补全长度
padStart()的常见用途是为数值补全指定位数。下面代码生成 10 位的数值字符串。
'1'.padStart(10, '0') // "0000000001"
'12'.padStart(10, '0') // "0000000012"
'123456'.padStart(10, '0') // "0000123456"

另一个用途是提示字符串格式。

'12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"
'09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"
④string.raw()
往往用来充当模板字符串的处理函数
String.raw`Hi\n${2+3}!`;
// 返回 "Hi\\n5!"

String.raw`Hi\u000A!`;
// 返回 "Hi\\u000A!"
4.数值的扩展
①Number.isInteger()判断一个数值是否为一个整数
②number.paseInt()和number.paseFloat()
还有一些对数和指数一类的可以直接到官网查找
5.函数的扩展
①函数的length属性是函数的参数个数-函数参数默认值个数
②rest参数用来获取函数多余的参数---rest参数之后不能在有其他参数不然会报错(函数的length不包含rest参数)
③.name返回函数名
6.箭头函数
①在箭头的左边是函数的参数,右边是return的值
注意:--箭头函数里的this是指定义时所在的对象,而不是使用时所在的对象
--不可以当做构造函数,不可以使用new命令
--不可以使用yield命令
②箭头函数的嵌套可以在官网查看


posted @ 2019-01-29 19:02  -w-t-t  阅读(184)  评论(0编辑  收藏  举报