JavaScript 表示式与运算符
一 表达式
表达式是用于JavaScript脚本运行时进行计算的式子,可以包含常量,变量,运算符。
二 运算符
1.算术运算符【+,-,*,/,%,++,–】
1) ++,–分为前缀和后缀形式【前缀形式先加减1再执行,后缀形式先执行再加减1】
注意:
a:数值型支持自增自减型;
b:布尔类型支持自增自减型;
c:字符串型不支持自增自减型;
d:null支持自增自减型;
e:undefined不支持自增自减型;
2)注意;
a,+号用来连接两个字符串;
b,只要+连接的操作数中有一个是字符串型,JS就会自动把非字符串型数据作为字符串型数据来处理
c. JS代码的执行顺序是从左到右,所以在+连接的表达式中,遇到字符串型数据之前,所有出现的数值型数据(或者可以自动转换为数值型的数据)仍被作为数值来处理。为了避免这种情况,我们可以在表达式前拼一个空字符串。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
//算术运算符的例子
var i= 3,j=8;
document.write(i+j);
document.write('<br/>');
document.write(i-j);
document.write('<br/>');
document.write(i*j);
document.write('<br/>');
document.write(i/j);
document.write('<br/>');
document.write(i%j);
document.write('<br/>');
document.write(3%-8);
document.write('<br/>');
document.write(-3%8);
document.write('<br/>');
document.write(-3%-8);
document.write('<br/>');
//+比较特殊
document.write(i+'8')
document.write('<br/>');
document.write('2'+'8');
document.write('<br/>');
document.write(i+j+'3king');
document.write('<br/>');
document.write(''+i);
var z=''+i;
//alert(typeof z);
document.write('<br/>');
document.write(''+i+j+'3king');
document.write('<br/>');
//自增自减运算符 ++ - -
//整型支持自增自减运算符
var num1=1;
// alert(num1++);
// alert(num1);
//alert(++num1);
// alert(--num1)
//浮点型支持自增自减运算符;
num1=12.3;
// alert(--num1);
num1=true;
num1=false;
//alert(++num1);
//alert(--num1);
//字符串型不支持自增自减
num1='b';
//alert(++num1);
//alert(++num1);
num1=null;
//alert(++num1);
//alert(--num1);
num1=undefined;
//alert(++num1);
alert(--num1);
</script>
</body>
</html>
- 字符连接符
通过+连接字符串
!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<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>
</body>
</html>
3.赋值运算符【=,+=,-=,*=,/=,%=,.=】
4.比较运算符【>, >=, <, <=, ==, !=, ===】【!=】
注意:
1)比较运算符的结果为布尔类型
2)==只能比较是否相等,
3)===比较值和类型
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<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);
document.write('<br/>');
//赋值运算符的例子
var username='king';
document.write('用户名为: '+username+'<br/>');
//+= -= *= /= %= .=
var a=1;
a+=3;//a=a+3
//alert(a);
a-=6;
a*=8;
a/=4;
a%=9;
document.write(a);
docuent.write('<br/>');
var str1='hello',str2=[']world';
str2+=str1;//str2=str2+str1;
document.write(str2);
//比较运算符的例子
//alert(3>1);
var res=1==true;
res=1=='1';
res=3=='3king'
res=0==null;//false
res=0!==null;//false
res=1===true;
res=1!==true;
//alert(res);
alert(NaN==NaN)//false
alert(undefined==undefined)
</script>
</body>
</html>
5.逻辑运算符【&&,||,!】
注意:
1)逻辑运算符的结果为布尔类型;
2)&&如果第一个表达式为false,造成短路;
3)||如果第一个表达式为true,造成短路;
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
//逻辑运算符的例子
//要求两个表达式为true,结果才是true
//alert(true && true);
//alert(true && false);
//alert(false && true);
//alert(false && false);
// 如果第一个表达式为false,整个结果为false,就把第二个表达式短路了
var i= 0,j=1;
if(i-- && j++){//0->false &&
document.write('hello');
}else{
document.write('world');
}
//alert(i);
// alert(j);
//逻辑或||
//两个表达式 中有一个为true,整个结果为true
// alert(true || true);
//alert(true || false);
//alert(false || true);
//alert(false || false);
//如果第一个表达式为false,整个结果为false,就把第二个表达式短路了
i=1;
j=0;
if(i-- || ++j){//1->true
document.write('aa');
}else{
document.write('bb');
}
//alert(i);
//alert(j);
//逻辑非 !,取反的作用
alert(!true);
alert(!false);
</script>
</body>
</html>