对象
JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。用于描述某个对象;
var xiaohong = { name: '明明', 'age': 18 };
JavaScript的对象用{}表示,键值对和Python的dict一样,但最后一个不用加',’,否则有些浏览器会报错。
由于把对象赋值给了变量,可以通过变量来访问属性;
xiaohong['name']; // '明明' xiaohong.name; // '明明' xiaohong['age']; // '18' xiaohong.age; // '18'
并且JavaScript的对象是动态类型,可以自由的添加删除属性;
var xiaoming = { name: '小明' }; xiaoming.age; // undefined xiaoming.age = 18; // 新增一个age属性 xiaoming.age; // 18 delete xiaoming.age; // 删除age属性 xiaoming.age; // undefined delete xiaoming['name']; // 删除name属性 xiaoming.name; // undefined delete xiaoming.school; // 删除一个不存在的school属性也不会报错
如果需要查看是否有某个属性可以用in操作符;
var xiaoming = { name: '小小' } 'name' in xiaoming; // true 'grade' in xiaoming; // false
有些属性可是继承过来的,如果要判断一个属性是否是对象自身所有的可以用hasOwnProProperty()方法;
var xiaoming = { name: '小明' }; xiaoming.hasOwnProperty('name'); // true xiaoming.hasOwnProperty('toString'); // false
条件判断
if语句用 if () {} else {} 表示,和c语言一样如果只有一条语句可以省略{}
注意 JavaScript把null,undefined,0,NaN和空字符串‘’视为false,其他一概视为true
switch语句
switch(name){ case '1': age = 123; break; case '2': age = 456; break; default : age = 777; }
循环
for循环有两种,一种是和c语言类似的for循环通过初始条件、结束条件和递增条件来循环执行语句块;
var x = 0; var i; for (i=1; i<=10000; i++) { x = x + i; }
也能用break语句停止循环
另一种和Python类似的循环for .. in 可以把一个对象的所有属性依次循环出来;
var o = { name: 'Jack', age: 20, city: 'Beijing' }; for (var key in o) { if (o.hasOwnProperty(key)) { console.log(key); // 'name', 'age', 'city' } }
数组也是对象,它每个索引视为对象的属性,因此for ,, in可以循环出数组的索引;
var a = ['A', 'B', 'C']; for (var i in a) { console.log(i); // '0', '1', '2' console.log(a[i]); // 'A', 'B', 'C' }
并且循环得到的是string而不是number。
while循环只有一个判断条件,条件满足,就不断循环,条件不满足时则退出循环。
有两种表示一种while () {} 或者 do {} while() 后一种一定循环一次