ES6-学习之路-04
对象key值构建
有时候我们会在后台定义key值,而不是我们前台定义好的,这时候我们如何构建我们的key值。比如我们在后台取了一个key值,然后可以用[ ] 的形式,进行对象的构建。
/**key值构建 */
let key = 'name'
let obj = {
[key]: 'duming'
}
console.log(obj['name'])
自定义对象方法
对象方法就是把兑现中的属性,用匿名函数的形式编程方法。
/**自定义对象方法 */
let objFun = {
add: (a, b) => {
return a + b
}
}
console.log(objFun.add(3, 4))
Object.is( ) 对象比较
对象的比较方法,以前进行对象值的比较,经常使用===来判断,比如下面的代码:
/**对象比较 */
let obj1 = { name: 'duming' }
let obj2 = { name: 'duming' }
console.log(obj1.name === obj2.name)
console.log(Object.is(obj1.name, obj2.name))
console.log(Object.is(obj1, obj2))
/**
* output: true true false
*/
====
表示值相等,Object.is()
表示严格相等。
Object.assign( )合并对象
/**合并对象 */
let obja1 = { tel: '187' }
let obja2 = { address: 'js' }
let obja3 = { age: '20' }
let objA = Object.assign(obja1, obja2, obja3)
console.log(objA)
/**
* {tel: "187", address: "js", age: "20"}
*/
Set和WeakSet数据结构
首先看set的声明
let setdemo1 = new Set(['apple', 'pear'])
console.log(setdemo1)
Set和Array 的区别是Set不允许内部有重复的值,如果有只显示一个,相当于去重。虽然Set很像数组,但是他不是数组。
增删改查示例代码:
/**set的声明 */
let setdemo = new Set(['apple', 'pear'])
console.log(setdemo)
/**
* Set(2) {"apple", "pear"}
*/
/**set的增删改查 */
setdemo.add('orange')
setdemo.delete('apple')
console.log(setdemo.has('apple'))
console.log(setdemo.has('pear'))
/**循环 foreach*/
setdemo.forEach(item => {
console.log(item)
})
/**
* 输出
* false
pear
orang
*/
WeakSet
跟Set相比,WeakSet的特点如下:
- 作为Object的容器,而不是简单类型
- WeakSet中的对象如果没有其他地方引用,会被垃圾回收吸收掉。
/**WeakSet */
var ws = new WeakSet();
var windows = {};
var foo = {};
ws.add(windows);
ws.has(windows); // true
ws.has(foo); // false, foo has not been added to the set
ws.delete(windows); // removes window from the set
ws.has(windows); // false, window has been removed
Map数据结构
在一些构建工具中是非常喜欢使用map这种数据结构来进行配置的,因为map是一种灵活,简单的适合一对一查找的数据结构。我们知道的数据结构,已经有了json和set。那map有什么特点。
let json = {
name: 'du',
age: 20
}
console.log(json)
/**map数据结构 */
let map1 = new Map
map1.set('name', 'du2')
map1.set('age', 20)
map1.set('json', json)
console.log(map1)
/**
* 输出
* {name: "du", age: 20}
Map(3) {"name" => "du2", "age" => 20, "json" => {…}}
*/
Map增删改查
map的增删改查语句如下:
map1.delete('json')
map1.forEach(item => {
console.log(item)
})
console.log(map1.get('json'))