JavaScript学习(3)--对象,Map与Set

68 阅读1分钟

对象

若干个键值对组成

// 定义了一个对象,这个对象有3个属性
var person = {
    name: "hello",
    age:12,
    score: 60
}

js对象中,{...}表示一个对象,其中每个属性由键值对表示,通过诸如person.name去获取对应属性的值。 JavaScript中所有的键都是字符串,值是任意对象!

1. 对象赋值

person.name = "new_name"
console.log(person.name)
> new_name

2. 使用一个不存在的对象属性是不会报错的,只会说undefined

person.nonedefine
> undefined

3. 动态的删减属性,delete

delete person.name
true

4. 动态添加

person.adddata = "hhh"

5. 判断某个属性是否在person中

'age' in person
true
//继承
'toString' in person
true

6. 判断一个属性是否是这个对象自身拥有的 hasOwnProperty()

person.hasOwnProperty('toString')
false
person.hasOwnProperty('age')
true

循环控制

js的循环控制大同小异,这里讲一些比较特殊的存在。

var age = [1,2,3,4,5,6];

age.forEach(function (value){
    console.log(value)
})

for(var key in age){
    console.log(age[key])
}

Map与Set

Map: 其实就是词典

var names = ["tom","jack","haha"];
var scores = [100,90,80];

var map = new Map([['tom',100],['jack',90]]);
var score = map.get('tom');
console.log(score);
map.set('admin',123456);
> {'tom' => 100, 'jack' => 90, 'admin' => 123456}

Set:去重是其一大特性

var set = new Set([3,1,1,1]);//Set可以去重
> [3,1]
set.delete(1)
> [3]
console.log(set.has(3))
> true
set.add(2)
> [3,1,2]

iterator

var map = new Map([['tom',100],['jack',90]]);
for (let x of map){
    console.log(x)
}

var set = new Set(5,6,7);
for (let x of set ) {
    console.log(x)
}