JavaScript 基础(三) 对象 条件判断

时间:2022-04-23
本文章向大家介绍JavaScript 基础(三) 对象 条件判断,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

JavaScript的对象是一种无序的集合数据类型,它是由若干键对组成。

		    var guagua = {
			        name:'瓜瓜',
			        birth:1988,
			        school:'No.1 Middle School',
			        height:1.70,
			        weight:65,
			        score:null
		    };

JavaScript用一个{...}表示一个对象,键值对以xxx: xxx形式申明,用,隔开。注意,最后一个键值对不需要在末尾加,, 如果加了,有的浏览器(如低版本的IE)将报错。 上述对象申明了一个name属性,值是'小明',birth属性,值是1988,以及其他一些属性。最后,把这个对象赋值给变量guagua后, 就可以通过变量guagua来获取小明的属性了:

		    guagua.name;  //'瓜瓜'
		    guagua.birth;   //1988

访问属性是通过.操作符完成的,但这要求属性名必须是一个有效的变量名。如果属性名包含特殊字符,就必须用''括起来:

		    var tutu = {
    			        name: '图图',
    			        'middle-school': 'No.1 Middle School'
		    };

图图的属性名middle-school不是一个有效的变量,就需要用''括起来。访问这个属性也无法使用.操作符,必须用['xxx']来访问:

		    tutu['middle-school'];   //'No.1 Middle School'
		    tutu['name'];   //‘图图’
		    tutu.name; // ‘图图’

注意: 实际上JavaScript对象的所有属性都是字符串,不过属性对应的值可以是任意数据类型。 如果访问一个不存在的属性会返回什么呢?JavaScript规定,访问不存在的属性不报错,而是返回undefined:

		    var tutu = {
    			        name: 'tutu'
		    };
		    tutu.age; //undefined

由于JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性:

		    var tutu = {
			      name:'tutu'
		    };
		    tutu.age;  //undefind
		    tutu.age = 18;  //新增一个age属性。
		    tutu.age;  // 18
		    delete tutu.age  //删除age 属性
		    tutu.age;   //undefinde
		    delete.tutu['name'] //删除name 属性
		    tutu.name; // undefinded
		    delete tutu.school; // 删除一个根本不存在的school 属性也不会报错。

如果我们要坚持tutu 是否拥有某一个属性,可以用in操作符。

		    var tutu = {
			        name:'图图',
			        birth:1988,
			        school:'No.1 Middle School',
			        height:1.70,
			        weight:65,
			        score:null
		    };
		    'name' in xiaoming; // true
		    'grade' in xiaoming; // false

注意:不过要小心,如果in判断一个属性存在,这个属性不一定是xiaoming的,它可能是xiaoming继承得到的: 'toString' in tutu; // true 因为toString定义在object对象中,而所有对象最终都会在原型链上指向object,所以tutu也拥有toString属性。 要判断一个属性是否是tutu自身拥有的,而不是继承得到的,可以用hasOwnProperty()方法:

		    var tutu = {
    			        name: 'tutu'
		    };
		    tutu.hasOwnProperty('name'); // true
		    tutu.hasOwnProperty('toString'); // false

条件判断, JavaScript 使用if(){...}else{...}来进行条件判断。

		    var age = 20;
		    if(age >= 18){  // 如果age >=18 为true, 则执行if 语句。
			        alert('adult');
 
		     }else{  // 否则执行else 语句块
			        alert('teenager')
			    }

其中else 语句是可选的,如果语句只包含一条语句,那么可以省略{}

		    var age = 20;
		    if(age >=18)
			       alert('adult');
		    else
			      alert('teenager');

多行条件判断,如果还要更细致地判断条件,可以使用多个if...else...的组合:

		    var age = 3;
		     if(age >=18){
			        alert('adult')
		     } else if (age >= 6){
			        alert('teenager');
		    }else{
			        alert('kid')
		    }

上述多个if...else...的组合实际上相当于两层if...else...:

		    var age = 3;
		    if(age >=18){
			        alert('adult');
		    } else{
			    if(age >=6){
				      alert('teenager');
			    }else{
				      alert('kid')
			      }
		    }

注意:if...else...语句的执行特点是二选一,在多个if...else...语句中,如果某个条件成立,则后续就不再继续判断了。 JavaScript把null、undefined、0、NaN和空字符串''视为false,其他值一概视为true。