这里只是我本人自己的收获,所以不会详细的列出知识点,若是想了解可以直接去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命令 ②箭头函数的嵌套可以在官网查看