JavaScript基础知识(2)

来源:互联网 发布:离线日语翻译软件 编辑:程序博客网 时间:2024/05/22 07:47

JavaScript中的对象:

var user={

name:'赵日天',

score:null,

age:100

}

使用{}声明,内部的变量使用属性:数值,每个变量使用,隔开,不是java中的;

注意:关于属性的命名:如果包含特殊字符则需要加上''包裹,如

var user={

'hello-worls':'hello',

name;'赵日天'

}

这里对于hello-world字段的访问,不能再使用、语法,而应该使用user['hello-world']来访问,对于name字段可以使用user.name也可以使用user['hello-world']

对于属性的增加删除:JavaScript是动态语言,所以可以在运行过程中对对象的属性进行动态的修改,例如:

var user={

name:'赵日天'

}

user.age;//添加了age属性

user.age=100;//对age属性进行了赋值

delete user['name'];//删除name属性

delete user.class;//删除一个不存在的属性也不会报错

检测该对象是否具有该属性:

var user={

name:'赵日天',

age:100

}

‘name’ in user;//判断name属性是否在user对象里面,该返回值是一布尔值,true和false

注意:该方法虽然可以判断该对象中是否具有该属性,但是如果该对象是继承自某个父类对象,那么父类对象具有的属性也会被当做是当前对象的属性。所以正确的判断方法应该是hasOwnProperty()方法。

var user={

name:'赵日天',

};

user.hasOwnProperty('name');//true





2.JavaScript中的条件判断

基本使用和java中的相同,if..else /if..else if....

JavaScript中把null、undefined、0、NaN和‘’视作false,其他的都为true,例子

var name='赵日天';

if(name){

//if (true)

}

3.JavaScript中的循环语句

(1).

java类似:

var totol=0;

var i;

for(i=1;i<100;i++){

totol=totol+i;

}

(2).遍历

第一种:

for..in

var array=['a','s','c'];

for(var a in array){

alert(a);//得到‘0’,‘1’,‘2’

alert(array[a]);//得到a/s/c

}

注意:这里的for in语句和java不同,java会直接获取里面的数值,但是这里获取到的是下标的string表示。

第二种:

var i;
for(i=0;i<arr.length;i++){
alert(arr[i]);
};

第三种:

for ....of-------该方法等价于java中的for...in  注意:该方法是ES6引入

var array=['a','s'];

for(var a of array){

alert(a);//返回'a'.'s'

}

第四种:

forEach();---------和java中的for--in等价。注意:该方法是ES5引入

var array=['a','s','d'];

array.forEach(function (element,index,array)){

//element---对应元素,index---下标,array---指定循环的是Array,Set写作set,Map写作map

alert(element);

}

3.JavaScript中的集合

JavaScript中的对象可以视作一个map,但是缺陷是对象的键只能是字符串。为了解决问题,最新的ES6引入了Map和Set。

(1).Map:

var map=new Map();

map.set('赵日天',100);

map.set('叶良辰',60);

map.has('王尼玛');//判断是否有该字段

map.get('赵日天');//获取该键对应的值

map.delete('叶良辰');//删除该键

(2)set:

var set=new Set();

set.delete(1);//删除

set.add(1);//添加

(3)关于map和set的遍历

 参照for循环那里的forEach方法(forEachf方法是ES6引入,Map和Set也是ES6引入);



0 0