日期:2014-05-17  浏览次数:20647 次

韩顺平_轻松搞定网页设计(html+css+javascript)_第21讲_js运算符2_js移位运算_学习笔记_源代码图解_PPT文档整理
js基本语法——运算符
关系运算符

①== 等于 ②> 大于 ③< 小于 ④>= 大于等于 ⑤<= 小于等于 ⑥!= 不等于

请大家看个案例,请问输出什么;
var a=90;
var b=90;
if(a==b){
alert("ok1");
}
b--;
if(a>b){
alert("ok2");
}
if(a>=b){
alert("ok3");
}

特别说明:
一个数和一个字符串比较有什么结果,即两个类型不一样的比较
a==b 究竟是在比较什么
例如下面:
并没有转成ASCII,而是先转成整数来用,例如a的ASCII值为97,但是 var a=97; var b='97';依然是no,自己测试
在实际的开发中要避免如此,如果别人问你是转成ASCII还是实际的数,进行比较,你应该清楚了。
========
var a=90;
var b="90";
if(a==b){
window.alert('ok'); //ok
}else{
window.alert('no');
}

demo1.html

<html>
	<head>
		<script language="javascript">
			var a=90;
			var b=90;
			if(a==b){
				window.alert('ok'); //ok
			}
			//不同类型的判断
			var b="abc";
			if(a==b){
				window.alert('ok');
			}else{
				window.alert('no');// no
			}

			var b="90";
			if(a==b){
				window.alert('ok'); //ok
			}else{
				window.alert('no');
			}

			var a=97;
			var b="a";
			if(a==b){
				window.alert('ok');
			}else{
				window.alert('no'); //no
			}
		</script>
	</head>
	<body></body>
</html>

介绍两个函数:window.prompt和document.writeln()

demo2.html

<html>
	<head>
		<script language="javascript">
			var val1=window.prompt("请输入值");
			var val2=window.prompt("请再输入值");

			document.writeln("你的输入是"+(parseFloat (val1)+parseFloat (val2)));

		</script>
	</head>
	<body></body>
</html>

案例:编写一个程序,该程序可以接收两个数(可以是整数,也可是小数),并判读这两个数是大于,小于,还是等于?

demo3.html

<html>
	<head>
		<script language="javascript">
			/*请编写一个程序,该程序可以接收两个数(可以是整数,也可是小数),并判读两个数是大于?小于?还是等于?*/
			var num1=window.prompt("请输入第一个数");
			var num2=window.prompt("请输入第二个数");
			num1=parseFloat(num1);
			num2=parseFloat(num2);

			if(num1>num2){
				window.alert("num1>num2");
			}else if(num1<num2){
				window.alert("num1<num2");
			}else{
				window.alert("num1=num2");
			}
		</script>
	</head>
	<body></body>
</html>

逻辑运算符
用于判断逻辑关系的运算符
①&& 与 ②|| 或 ③ ! 非

请大家看个案列,请问输出什么?
var a=90;
var b=90;
if(a==b||a>8){
window.alert("ok1");
}
b--;
if(a>b && a>45){
window.alert("ok2");
}
if(!(a<=b)){
window.alert("ok3");
}

在逻辑运算中,0、""、false、null、undefined、NaN均表示false
关于&&短路的问题,看demo4.html的代码
和 ++的问题,是先判断再加加;还是先加加再判断

demo4.html

<html>
	<head>
		<script language="javascript">
			var a=90;
			var b=9;
			if(a>b && a>345){
				window.alert('ok');
			}else{
				window.alert('no');
			}

			//如果是下面的情况,最后a为91
			if(a>b && ++a>345){
				window.alert('ok');
			}else{
				window.alert('no');
			}
			window.alert("a="+a);
			//如果是下面的情况,最后a为90
			var a=90;
			var b=9;
			// a<b不成立,因为是&&,直接就短路了,不再执行&&后面的语句了,直接就window.alert("no");。上面的在a>b成立的情况下,才去执行&&后面的语句。
			if(a<b && ++a>345){
				window.alert('ok');
			}else{
				window.alert('no');
			}
			window.alert("a="+a);
			//另外的情况
			var a=90;
			var b