【JavaScript运算符与表达式】

一、表达式

1.原始表达式:2.14,“test”,true/false,null……复合表达式:10*20……

2.数组、对象的初始化表达式:new Array(1,2),[1,undefined,4],{x:1,y:2}=>var o = new Object();o.x=1;o.y=2;……

3.函数表达式:var fe = function(){}; (function(){console.log('hello');})()……

4.属性访问表达式:var o = {x:1}; o.x; o['x'];……

5.调用表达式:func()……

6.对象创建表达式:new Func(1,2); new Object()……

二、运算符

1、算术运算符

  运算符 = 用于给 JavaScript 变量赋值。

  算术运算符 + 用于把值加起来。

运算符 + - * / % ++ --
描述 加法 减法 乘法 除法 取模(余数) 自增 自减

例子:

 <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title> <script type="text/javascript">
//算术运算符
var a=2,b=5;
document.write(a+b+"=7"+"<br />");
document.write(a-b+"=-3"+"<br />");
document.write(a*b+"=10"+"<br />");
document.write(a/b+"=0.4"+"<br />");
document.write(a%b+"=2"+"<br />");
document.write(a%-b+"=2"+"<br />");
document.write(-a%-b+"=-2"+"<br />");
document.write(-b%-a+"=-1"+"<br />");
//+还有连接的意思
document.write(a+'2b'+"=22b"+"<br />");
document.write(a+b+'2b'+"=72b"+"<br />");
document.write('3'+'8'+"=38"+"<br />");
document.write(a+b*'2sb'+"=NaN"+"<br />");//只有加号可以连接
//自增自减运算符(整型,浮点型,null支持、字符串不支持)
var z=2;
//alert(h++); //2
//alert(h); //3
//alert(++h); //4
//alert(--h); //3
x=3.123;
//alert(--x); //2.123
//alert(++x); //3.123
n=null;
//alert(++n); //1
//alert(--n); //0
s=undefined;
//alert(++s); //NaN
m='3b';
//alert(++m); //NaN
alert(--m); //NaN
</script>
</head>
<body>
</body>
</html>

2、逻辑运算符

运算符 && || !
描述 逻辑与(and) 逻辑或(or) 逻辑非,取逻辑的反面

注意:这里会出现短路问题

表达式a && 表达式b :  计算表达式a(也可以是函数)的运算结果,

如果为 True, 执行表达式b(或函数),并返回b的结果;

如果为 False,返回a的结果;

简单的说就是 逻辑与运算符属于短路操作,如果有第一个操作数返回的是false,第二个不管是true还是false都返回false。

表达式a || 表达式b :   计算表达式a(也可以是函数)的运算结果,

如果为 Fasle, 执行表达式b(或函数),并返回b的结果;

如果为 True,返回a的结果;

简单的说就是 逻辑或运算符也属于短路操作,如果有第一个操作数返回的是true,第二个不管是true还是false都返回true。

 <!DOCTYPE html>
<html>
<head>
<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); //-1
//alert(j); //1
//逻辑或||
//两个表达中有一个为true,整个结果为true
// alert(true || true);
// alert(true || false);
// alert(false || true);
// alert(false || false);
//如果第一个表达式为true,整个结果为true,把第二个表达式短路了
i=1;
j=0;
if(i-- || ++j){
document.write('aa');
}else{
document.write('bb');
}
// alert(i); //0 // alert(j); //0
//逻辑非 !,取反的作用
// alert(!true);
// alert(!false);
</script>
</body>
</html>

3、三元运算符

(expr1) ? (expr2) : (expr3)

语法解释:在 expr1 求值为 TRUE 时整个表达式的值为 expr2,否则为 expr3。

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
/*
三元运算符的例子
if(exp){
exp为true的代码段;
}else{
exp为false的代码段;
}
exp1?exp2:exp3;
*/
if(3>1){
document.write('aa');
}else{
document.write('bb');
}
document.write('<br/>');
var res=3>1?'aa':'bb';
document.write(res);
document.write('<br/>');
var x=0/0;
var x=123;
res=isNaN(x)?0:x;
alert(res);
</script> </body>
</html>

4、比较运算符

运算符 描述 例子 运算结果
== 等于 2 == 3 FALSE
=== 恒等于(值和类型都要做比较) 2 === 2
2 === "2"
TRUE
FALSE
!= 不等于,也可写作<> 2 == 3 TRUE
> 大于 2 > 3 FALSE
< 小于 2 < 3 TRUE
>= 大于等于 2 >=3 FALSE
<= 小于等于 2 <= 3 TRUE
//            比较运算符的例子
// alert(3>1);
// alert(3>=1);
// alert(3<=12);
// alert(3<2);
var res=1==true;
res=1=='1';
res=3=='3king';
res=0==null;//false
res=0!=null;
res=1===true;
res=1===true; //true //false
// alert(res);
// alert(NaN==NaN);//false
alert(undefined==undefined);

4、连接符

连接运算符 + 主要用于连接两个字符串或字符串变量。因此,在对字符串或字符串变量使用该运算符时,并不是对它们做加法计算。

             //字符串连接符+
document.write('hello'+' yimentu '+'<br/>');
document.write(1+'king'+'<br/>');
var i=1,j=2,z=3;
document.write(''+i+j+z);
document.write('<br/>');

5、赋值运算符

赋值运算符 = 用于赋值运算,赋值运算符的作用在于把右边的值赋值给左边变量。

             //赋值运算符的例子
var username='king';
document.write('用户名为:'+username+'<br/>');
//+= -= *= /= %= .=
var a=1;
a+=3;//a=a+3;
//alert(a);
a-=6;//-2
a*=8;//-16
(a/=4); //-4
a%=9;//a=a%9
//document.write(a);
document.write('<br/>');
var str1=' hello ',str2=' world ';
str2+=str1;//str2=str2+str1;
//document.write(str2);
上一篇:Servlet程序开发--Servlet简介


下一篇:Android APP使用系统签名