大于和小于知识点;
⼩于(
<
)、⼤于(
>
)、⼩于等于(
<=
)和⼤于等于(
>=
)、相等(
==
)、不等(
!=
)全等(恒等) (===
)、全不等(不恒等)(
!==
)
八个关系操作符⽤于对两个值进⾏比较,比较的规则与我们在数学 课上所学的⼀样。这⼏个操作符都返回⼀个布尔值(true
、
false
)。与
ECMAScript
中的其他操作符⼀ 样,当关系操作符的操作数使⽤了非数值时,也要进⾏数据转换或完成某些奇怪的操作。以下就是相应 的规则。
1.
如果⼀个操作数是数值,则将另⼀个操作数转换为⼀个数值,然后执⾏数值比较。
2.
如果⼀个操作数是对象,则调⽤这个对象的
valueOf()
⽅法,⽤得到的结果按照前⾯的规则执⾏比较。
如果对象没有
valueOf()
⽅法,则调⽤
toString()
⽅法,并⽤得到的结果根据前⾯的规则执⾏比较。
3.
如果⼀个操作数是布尔值,则先将其转换为数值,然后再执⾏比较。
var result = 5>3;
//true var result = 3>5;
//false var result = 5<3;
//false var result = 3<5;
//true var result = '3' < 5;
//true; var result = 'a' > 'b';
//false 'a' = 97 'b' = 98 var result = 1 > { toString:function(){ return 'a'; } }//如果有toString()或valueOf()则返回 1 > 返回大于的值 document.write(result)
2.如果两个操作数都是对象,则比较它们是不是同⼀个对象。如果两个操作数都指向同⼀个对象, 则相等操作符返回true;否则,返回false。
var result = 2 == 2 ;var result = '2' == 2 ;var result = true == '1' //true = 1; false = 0var result = false == 0 //true = 1; false = 0var result = 2 == {toString : function (){return '2' ;}} // 调⽤对象的 valueOf() ⽅法或 toString()var result = null == undefined;var result = 1 == NaN ; //falsevar result = NaN == NaN ; //falsevar result = {} == {}var a = {toString : function (){return '2' ;}}var b = {toString : function (){return '2' ;}}var result = a == b; //false 地址不⼀样 这⾥的地址是什么?var age = {};var height = age;var result = age == height // //true 地址相同了 这⾥的地址是什么?document. write (result)
由于相等和不相等操作符存在类型转换问题,⽽为了保持代码中数据类型的完整性,我们强烈推荐使用
全等和不全等操作符。
3.三元条件运算符
三元条件操作符其实就是我们后⾯要学到的
if
语句的简写形式
var result = 5 > 4 ? " 对 " : " 错 " ;console. log (result)// 相当于 if 语句var result = '' ; // 声明并且初始化变量if ( 5 > 4 ){result = ' 对 '} else {result = ' 错 '}console. log (result)
通过为每个case 后⾯都添加⼀个break 语句,就可以避免同时执⾏多个case 代码的情况。假如确 实需要混合⼏种情形,不要忘了在代码中添加注释,说明你是有意省略了break 关键字
var result = 2 ;switch (result){/* 合并两种情形 */case 1 :case 2 :document. write ( ' 学习英语 ' )break ;case 3 :case 6 :document. write ( ' 学习数学 ' )break ;case 4 :case 5 :document. write ( ' 物理 ' )break ;case 7 :document. write ( ' 休息 ' )break ;default :document. write ( ' 不是周⼀到周⽇,没有这个⽇⼦ ' )}
3.with
语句
with
语句的作⽤是将代码的作⽤域设置到⼀个特定的对象中
由于⼤量使⽤
with
语句会导致性能下降,同时也会给调试代码造成困难,因此在开发⼤型应⽤程序时
var obj = new Object ();obj.name = ' 朱鹏富 ' ;obj.age = 18 ;obj.height = 170 ;// 常规操作var n = obj.name;var a = obj.age;var h = obj.height;// 可以把上⾯的代码改成这样with (obj){var n = name;var a = age;var h = height;}alert (n)