书接上会把剩余的继续写完!es6
你们比较熟悉的 `Object.hasOwnProperty();` 还有一中: `key in Object;` 这两种也能够用来判断Object是否为空!
都是到map是数组的方法,可是有些场景时候我也须要遍历数组又不能使用`for in` 或者`for of`的时候怎么办呢! 咱们能够是用一下三个方法: `Object.keys();`: 这个方法返回的是Object中的全部`key`组成一个数组; `Object.values();` 这个方法返回的是Object中的全部`value`组成一个数组; `Object.entries();`: 这个方法返回的是一个二位数组,子集包含Object的key和value;
方法是将两个Object做比较,省去了咱们循环遍历的代码;
这个方法相似于数组的concat方法,不一样的是`Object.assign();`链接从来你给个对象的时候若是 两个对象有属性重复的时候,后面的会把前面的覆盖; es6中咱们简写成`{...object1, ...object2}`
...
拓展运算符es6中新提出来的,主要做用: - 合并array或者object ``` // ES5 的写法 var arr1 = [0, 1, 2]; var arr2 = [3, 4, 5]; arr1.conant(arr1, arr2); // ES6 的写法 var arr1 = [0, 1, 2]; var arr2 = [3, 4, 5]; arr1.push(...arr2); ``` - 与解构赋值结合 ``` // ES5 a = list[0], rest = list.slice(1) // ES6 [a, ...rest] = list 下面是另一些例子。 const [first, ...rest] = [1, 2, 3, 4, 5]; first // 1 rest // [2, 3, 4, 5] const [first, ...rest] = []; first // undefined rest // []: const [first, ...rest] = ["foo"]; first // "foo" rest // [] ``` 或者不少博主写的`剩余参数`都是这个东西 ``` function add(first, second, ...remaining) { return first + second; } ``` - 函数的返回值 JavaScript 的函数只能返回一个值,若是须要返回多个值,只能返回数组或对象。扩展运算符提供了解决这个问题的一种变通方法。 ``` var dateFields = readDateFields(database); var d = new Date(...dateFields); ``` 上面代码从数据库取出一行数据,经过扩展运算符,直接将其传入构造函数Date。 - 字符串 扩展运算符还能够将字符串转为真正的数组。 ``` [...'hello'] // [ "h", "e", "l", "l", "o" ] ``` 上面的写法,有一个重要的好处,那就是可以正确识别 32 位的 `Unicode` 字符。 ``` 'x\uD83D\uDE80y'.length // 4 [...'x\uD83D\uDE80y'].length // 3 ``` 上面代码的第一种写法, JavaScript 会将 32 位 Unicode 字符,识别为 2 个字符,采用扩展运算符就没有这个问题。所以,正确返回字符串长度的函数,能够像下面这样写。 ``` function length(str) { return [...str].length; } length('x\uD83D\uDE80y') // 3 ```
[]
设定变量为属性名栗数据库
let obj = {}, name = 'machinist' obj[name] = 1111; console.log(obj); //{machinist: 1111}
当if条件内部只有一行代码的时候省略{}
栗:数组
if(true)retrun true else return false
当函数体内只有一行代码的时候
栗:函数
() => ...你的代码
等同于:rest
()=> { .... }
当函数体内return
一个map
的时候能够省略return 以及函数的大括号;
栗:code
arrayMap = data => data.map(item => { ....处理逻辑 })
等同于:对象
arrayMap = (data) => { return data.map(item => { ....处理逻辑 }) }
同时声明多个变量的时候;
栗:ip
let a = 1, b = 2, c = 3, ..., z = 26;
等同于:
let a = 1; let b = 2; ...; let z = 26;
5.声明对象带方法的rem
栗:
let object = { func(){ ... }, func1(){ ... }, func2(){ ... }, }
等同于:字符串
let object = { func:() => { ... }, func1:() =>{ ... }, func2:() =>{ ... }, }