- JavaScript表达式:
- 算术表达式;
- 字符串表达式;
- 关系(比较)表达式;
- 逻辑表达式。
- 根据处理对象的数目 :
- 单元运算符;
- 二元运算符;
- 三元运算符。
- 根据功能 :
- 赋值运算符 ;
= += -= *= /= %=(取余)
- 算术运算符 ;
+ - * / %(取余) ++(递增) --(递减) -
例1:
<Script>
var x = 11;
var y = 5;
with (document) {
write("x = 11, y = 5");
write("<LI>x + y 是 ", x + y);
write("<LI>x - y 是 ", x - y);
write("<LI>x * y 是 ", x * y);
write("<LI>x / y 是 ", x / y);
write("<LI>x % y 是 ", x % y);
write("<LI>++ x 是 ", ++ x);
write("<LI>-- y 是 ", -- y);
}
</Script>
例2:
<Script>
var x = y = 3;
with (document) {
write("x = 3, y = 3 <br>");
write("若x = y++ 运算之后:");
x = y++;//y→x,y+1→y
write("x 是 ", x, "; y 是 ", y, "<br>");
write("再作x = ++y 运算:");
x = ++y;//y+1→x,y+1→y
write("x 是 ", x, "; y 是 ", y);
}
</Script>
- 字符串运算符 ;
+ +=
- 比较运算符 ;
== != ===(值及类型) !==(值及类型)
< <= > >=
例:
<Script>
var x = 5; //x 是数值5
var y = '5'; //y 是字符串5
var z = 6; //x 是数值6
with (document) {
write("x = 5, y = '5', z = 6");
write("<LI>x == y 吗?", x == y);
write("<LI>x === y 吗?", x === y);
write("<LI>x != y 吗?", x != y);
write("<LI>x !== y 吗?", x !== y);
write("<LI>x <= z 吗?", x <= z);
write("<LI>y <= z 吗?", y <= z);
//类型自动转换
}
</Script>
- 逻辑运算符 ;
&& || !
例1:
<Script>
var t = true;
var f = false;
with(document) {
write("<OL><LI>true && true 的结果是 ", t && t);
write("<LI>true && false 的结果是 ", t && f);
write("<LI>false && true 的结果是 ", f && t);
write("<LI>false && false 的结果是 ", f && f);
write("<LI>true && (1==1) 的结果是 ", t && (1==1));
write("<LI>false && 'A' 的结果是 ", f && 'A');
write("<LI>'A' && false 的结果是 ", 'A' && f);
write("<LI>true && 'A' 的结果是 ", t && 'A');
write("<LI>'A' && true 的结果是 ", 'A' && t);
write("<LI>'A' && 'B' 的结果是 ", 'A' && 'B');
//&&:有一个不是逻辑值,只要第一个操作数的值为flase,则返回第一个操作数的值flase,否则,返回第二个操作数的值
}
</Script>
例2:
<Script>
var t = true;
var f = false;
with(document) {
write("<OL><LI>true || true 的结果是 ", t || t);
write("<LI>true || false 的结果是 ", t || f);
write("<LI>false || true 的结果是 ", f || t);
write("<LI>false || false 的结果是 ", f || f);
write("<LI>true || (1==1) 的结果是 ", t || (1==1));
write("<LI>false || 'A' 的结果是 ", f || 'A');
write("<LI>'A' || false 的结果是 ", 'A' || f);
write("<LI>true || 'A' 的结果是 ", t || 'A');
write("<LI>'A' || true 的结果是 ", 'A' || t);
write("<LI>'A' || 'B' 的结果是 ", 'A' || 'B');
//||:有一个不是逻辑值,只要第一个操作数为的值true、字符或非零的数字,则返回第一个操作数的值,否则,返回第二个操作数的值
}
</Script>
例3:
<Script>
with(document) {
write("<LI>!true 的结果是 ", !true);
write("<LI>!false 的结果是 ", !false);
write("<LI>!'A' 的结果是 ", !'A');
write("<LI>!0 的结果是 ", !0);}
</Script>
- 逐位运算符 ;
- 特殊运算符 。
1、new运算符:创建对象(实例)
格式:对象名称=new 对象类型(参数)
2、this运算符:表示当前对象
格式:this[.属性]
例:
<Script>
function validate(obj) {
alert("你输入的值是:"+ obj.value);
} </Script>
请输入任意字符:<BR>
<INPUT TYPE="text" onKeyup="validate(this)">
3、条件运算符:三元运算符
格式:<条件表达式> ? 第一个值:第二个值
例:
NS = (document.layers) ? 1 : 0;
IE = (document.all) ? 1: 0;
window.screen.width>800 ? imgheight=100:imgheight=100
window.screen.width>800 ? imgleft=15:imgleft=122
<Script>
function showSex() {
onOroff = document.forms[0].sex[0].checked
status = (onOroff)? "帅哥" : "美女"
alert("Hello! " + status)
}
</Script>请输入你的性别:
<FORM onClick=showSex()>
<INPUT TYPE=radio NAME=sex>男生
<INPUT TYPE=radio NAME=sex>女生
</FORM>
- 赋值运算符 ;
- 运算符执行的优先顺序 :
类型 运算符 括号 () 一元 ! ~ - ++ -- typeof void delete 算术 * / + - 位位移 << >> >>> 比较 < <= > >= == != 位逻辑 & ^(xor) | 逻辑 && || 三元条件 ? 赋值 = += -= *= /= %= <<= >>= >>>= &= ^= |=