一、表达式:
表达式用于JavaScript脚本运行时进行计算的式子,可以包含常量、变量、运算符。
<script type="text/javascript"> var r=8; var pi=3.14; var s=pi*r*r; alert('圆的面积'+s); </script>二、运算符:
1、算术运算符:+、-、*、/、%、++、--
<script type="text/javascript"> var i=1,j=2; document.write(i+j); document.write(i-j); document.write(i*j); document.write(i/j); document.write(i%j); document.write(3%-8); document.write(-3%8);; document.write(-3%-8); </script>(1)++、--分为前缀和后缀的形式,前缀形式先加减1再执行,后缀形式先执行再加减1;
(2)注意:
1)+号用来连接两个字符串;
2)只要+连接的操作中有一个是字符串,JS就会自动把非字符串型数据作为字符串型数据来处理;
3)JS代码的执行顺序是从左到右,所以在+连接的表达式中,遇到字符串型数据之后,所有出现的数值都可以自动转换为数值型的数据(或者可以自动转换为数值型的数据)仍被用作数值来处理。为了避免这种情况,我们可以在表达式前拼一个空字符串;
<script type="text/javascript"> var i=1,j=2; document.write(i+'8'); document.write('2'+'8'); document.write(i+j+'3hello'); document.write(''+i); </script>4)整型、浮点型、null支持自增自减运算符,而字符串型不支持自增自减运算符。
2、字符连接符:通过+连接字符串;
<script type="text/javascript"> document.write('hello'+' maizi '+'<br/>'); document.write(1+'king'+'<br/>'); var i=1,j=2,z=3; document.write(''+i+j+z); </script>3、赋值运算符:=、+=、-=、*=、/=、%=、.=;
<script type="text/javascript"> var username='hello'; document.write('用户名为:'+username+'<br/>'); var a=1; a+=3;//a=a+3; a-=6; a*=8; a/=4; a%=9; document.write(a); var str1=' hello ',str2=' world '; str2+=str1;//str2=str2+str1; document.write(str2); </script>4、比较运算符:>、>=、<、<=、==、!=、===、!==;
注意: (1)比较运算符的结果为布尔类型;
(2)==只比较是否相等,===比较两者的值和类型是否相等;
<script type="text/javascript"> alert(3>1); alert(3>=1); alert(3<=12); alert(3<2); var res=1==true; res=1=='1'; res=3=='3hello'; res=0==null;//false res=0!=null; res=1===true; res=1!==true; alert(res); alert(NaN==NaN);//false alert(undefined==undefined);//true </script>5、逻辑运算符:&&、||、!;
注意: (1)逻辑运算符的结果为布尔类型;
(2)&&如果第一个表达式为false,造成短路;
<script type="text/javascript"> alert(true && true);//true alert(true && false);//false alert(false && true);//false alert(false && false);//false var i=0,j=1; if(i-- && j++){//world document.write('hello'); }else{ document.write('world'); } </script>(3)||如果第一个表达式为true,造成短路;
<script type="text/javascript"> alert(true || true);//true alert(true || false);//true alert(false || true);//true alert(false || false);//false var i=1,j=0; if(i-- || ++j){//hello document.write('hello'); }else{ document.write('world'); } </script>6、三元运算符:exp1?exp2:exp3(如果exp1为真则执行exp2的语句,否则执行exp3的语句)
<script type="text/javascript"> if(3>1){//hello document.write('hello'); }else{ document.write('world'); } var res=3>1?'hello':'world'; document.write(res);//hello </script>7、其他运算符:
(1)逗号运算符:逗号用来将多个表达式连接为一个表达式,新表达式的值为最后一个表达式的值,多用在变量声明处;
<script type="text/javascript"> var a,b,c,d; var i=1,j=2,k=3; var z=(n=1,m=2,p=3); </script>(2)void运算符:void运算符用来指明一个表达式无返回结果;
<script type="text/javascript"> var z=void(n=1,m=2,p=3); alert(z);//undefined </script>(3)typeof运算符:typeof运算符用来返回一个字符串,返回的是操作数的数据类型;
<script type="text/javascript"> var x;//undefined x=123;//number x='king';//string x=true;//boolean x=null;//object x=undefined;//undefined x=[1,2,3];//object alert(typeof x); </script>三、运算符的优先级(可以通过()来改变优先级)