JavaScript从零开始3
-----------------------------------------------------------------------------
一、对象
(1)JS里的字符串,数组,数值,函数都是对象。
(2)自定义的,由键值对组成的属性的集合。
var person={
name:'小王', //用逗号隔开,最后一个不加逗号
age:28,
sex:'man',
profession:'programmer',
'work-add':'BeiJing'
}
console.log(person.name+", 工作地点:"+ person['work-add'] +", 女友: "+person.grilFrind);
// 小王, 工作地点:BeiJing, 女友: undefined
删除某个属性delete,判断对象是否具有某个属性in , hasOwnProperty
delete person.age;//true
console.log(person);//{name: "小王", sex: "man", profession: "programmer", work-add: "BeiJing"}
delete person.grilFrind;//true 即使没有这个属性也返回true
console.log(person);//{name: "小王", sex: "man", profession: "programmer", work-add: "BeiJing"}
'name' in person;//true
'grilfrind' in person;//false
'toString' in person;//true person继承的属性
person.hasOwnProperty('toSting');//false 判断对象自己是否含有某个属性,不包括继承的。
二、判断语句
if...else.. if...else if...else... 比较容易理解,不多描述。需要注意的地方:null
、undefined
、0
、NaN
和空字符串''
视为false
三、循环
for , for...in , while , do...while 也较容易理解,其中 for...in可以遍历对象里的属性
for(var key in person)
{
console.log(person[key]);
}
// 小王
// 28
// man
// programmer
// BeiJing
for...of 较for...in 的区别是它是遍历数组,Map,Set内的元素,for...in 是遍历key值或者索引值
var arr=[1,2,'a',4];
for(var i of arr)
{
console.log(i); //1,2,a,4
}
var person= new Map([['name','小王'],['age',28],['sex','man'], ['profession','programmer'],['work-add','BeiJing']]);
for(var key of person)
{
console.log(key);
}//['name','小王'] ['age',28] ['sex','man'] ['profession','programmer'] ['work-add','BeiJing']
forEach这个更强大,是ES5.1引入,要看用户使用的浏览器是否支持
var arr = [1, 'a', 'hello'];
arr.forEach(function (element) {
console.log(element);//1 a hello
});
var s = new Set([1, 'a', 'hello']);
s.forEach(function (element, sameElement, set) {
console.log(element);//1 a hello
});
var m = new Map([['name', '小李'], ['age', 20], ['sex', 'man']]);
m.forEach(function (value, key, map) {
console.log(value);//小李 20 man
});
四、Map和Set
Map 可以理解为由键值对组成的一维数组,或者说是一个二维数组,我这里理解的,呵呵。
Set 没有value的Map。
二者都是进行某种操作都会用到key, Map 一般只用到get,set,delete, Set一般用到add,delete
var m = new Map([['姓名','小王'],['性别','男'],['age',18],['tel',188888888]]);
m.get('age');
m.set('grilFrind','小李');
console.log(m);//{"姓名" => "小王", "性别" => "男", "age" => 18, "tel" => 188888888, "grilFrind" => "小李"}
m.delete('性别');
console.log(m);//{"姓名" => "小王", "age" => 18, "tel" => 188888888, "grilFrind" => "小李"}
var s=new Set([1,2,3]);
s.add('4');
s.delete(1);
console.log(m);//{2, 3, "4"}