欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript基本语法:JS运算符

程序员文章站 2022-11-30 23:34:14
javascript基本语法:js运算符 ** var a=10; var b1=a++; var b2=++a; var b3=a+++++a+a++; var b4...

javascript基本语法:js运算符

**
var a=10;
var b1=a++;
var b2=++a;
var b3=a+++++a+a++;
var b4=1+2+“3”;
var b5=100-“5”;
var b6=12&&21;
var b7=12||21;
b1到b7的值大家知道吗?
**
2.算数运算符(+,-,*,/, %)
(1)算术运算符之加号(+)
通过具体实例来得出我们的结论:
<script type="text/javascript">
var a;
a=1+2;
document.write("a="+a+"
"); a=1+null; document.write("a="+a+"
"); a=1+nan; document.write("a="+a+"
"); a=true+false; document.write("a="+a+"
"); a=true+4; document.write("a="+a+"
"); a="3"+2+1; document.write("a="+a+"
"); a=1+2+"3"; document.write("a="+a+"
"); </script>

输出答案如下所示
JavaScript基本语法:JS运算符
总结如下:对非number(字符串除外)的值进行加运算时会先将其转换成number型在运算,注意任何值和nan运算都是nan;对于含有字符串类型的相加运算则看成连字符且优先级从左向右

(2)算术运算符之加号(-)
通过具体实例来得出我们的结论:

<script type="text/javascript">
var a;
a=100-"5"
document.write("a="+a+"
"); a=100-5; document.write("a="+a+"
"); a=100-true; document.write("a="+a+"
"); a=100-null; document.write("a="+a+"
"); a=100-nan; document.write("a="+a+"
"); </script>

JavaScript基本语法:JS运算符
总结如下:对非number的值进行减运算时会先将其转换成number型在运算,注意任何值和nan运算都是nan;看到这里请读者们类比这试一下其他的几个(*,/,%)
3.自增自减运算符
通过具体实例来得出我们的结论:

<script type="text/javascript">
var a=10,b;
b=a++;
document.write("a="+a+","+"b="+b+"
"); var a=10,b; b=++a; document.write("a="+a+","+"b="+b+"
"); var a=10; a=a++; document.write("a="+a+"
"); var a=10,b; b=a+++a+++a++; document.write("b="+b+"
"); </script>

JavaScript基本语法:JS运算符
总结:若是前置++例如var a=2,b;b=++a;则输出a=3,b=3;可以看出前置++是先加1在使用;若是后置++例如var a=2,b;b=a++;则输出a=3,b=2;可以看出后置++是先使用再加1;自减运算符我就不举例了可以自己类比着学
4.逻辑运算符(!,&&,||)
逻辑运算符&&的短路现象:

<script type="text/javascript">  
   1&&alert("看我出不出来");
    0&&alert("看我出不出来");
</script>

逻辑运算符||的短路现象:

<script type="text/javascript">  
   0||alert("看我出不出来");
   1||alert("看我出不出来");
</script>

请自己试试看上面两种情形会出现什么结果

通过具体实例来得出我们的结论:

<script type="text/javascript">
  var a=true;
  a=!a;
  document.write("a="+a+"
"); var a=true; a=!!a; document.write("a="+a+"
"); var a=5; a=!!a; document.write("a="+a+"
"); var a; a=1&&2; document.write("a="+a+"
"); a=0&&2; document.write("a="+a+"
"); a=nan&&0; document.write("a="+a+"
"); a=1||2; document.write("a="+a+"
"); a=1||0; document.write("a="+a+"
"); a=0||2; document.write("a="+a+"
"); </script>

JavaScript基本语法:JS运算符
总结:从上面的结果我们可以得出三个结论:(1)任何类型的数值进行两次非运算都能转换成布尔型;(2)逻辑&&运算如果第一个是true则输出结果是第二个,如果第一个是false则输出结果是第一个;(因为有短路现象);(3)逻辑||运算如果第一个是true则输出结果是第一个,如果第一个是false则输出是第二个。(因为有短路现象);
5.赋值运算符
var a=10;
a+=5;等价于a=a+5;
a*=5;等价于a=a*5;
a-=5;等价于a=a-5;
a%=5;等价于a=a%5;
6.关系运算符
通过关系运算符可以判断两个值之间的大小关系,如果关系成立则返回true如果关系不成立则返回false。对于非数值比较时会先转换成数字(数值型)在比较。任何值和nan比较都返回false。**特别注意如果两边都是字符串,则是按照字符编码进行比较。**举例如下:

<script type="text/javascript">  
   var a1=5>4;
  document.write("a1="+a1+"
"); var a2=5
"); var a3=5>true; document.write("a3="+a3+"
"); var a4=5>null; document.write("a4="+a4+"
"); var a5=5>nan; document.write("a5="+a5+"
"); var a6=5>=5; document.write("a6="+a6+"
"); var a7=5
"); var a8=5>=false; document.write("a8="+a8+"
"); var a8=5>=nan; document.write("a8="+a8+"
"); var a9=5>"hello"; document.write("a9="+a9+"
"); var a10="11"
"); </script>

结果如下
JavaScript基本语法:JS运算符
注意下面两个输出的结果

下面这个它的比较结果和我们预想的不一样
 **var a="11"<"5";document.write("a="+a+"
");**//输出true
 所以特别注意如果比较的是两个字符串型的数字时一定要转型。  
  **var a="11"<+"5";document.write("a="+a+"
");**//输出false

7.相等,不相等,全等,不全等运算符
1.相等运算符,如果两个值相等则返回true否则返回false;如果两个值的类型不同则会先转换成同类型的然后在比较。
2.不相等运算符,如果两个值不相等则返回true否则返回false;如果两个值的类型不同则会先转换成同类型的然后在比较。
3.全等运算符,如果两个值相等则返回true否则返回false;如果两个值的类型不同不会进行类型转换直接返回false。
4.不全等运算符,如果两个值不相等则返回true否则返回false;如果两个值的类型不同不会进行类型转换直接返回true。
5.特例nan不和任何值相等包括它自己。
举点小例子:

<script type="text/javascript">  
   var a1=4==4;
  document.write("a1="+a1+"
");//输出true var a2=10==4; document.write("a2="+a2+"
");//输出false var a3=true=="1"; document.write("a3="+a3+"
");//输出true var a4=true=="hello"; document.write("a4="+a4+"
");//输出false var a5=null==0; document.write("a5="+a5+"
");//输出false var a6=null==undefined; document.write("a6="+a6+"
");//输出true var a7=nan==nan; document.write("a7="+a7+"
")//输出false; var a8=1!="1"; document.write("a8="+a8+"
");//输出false var a9=nan!=nan; document.write("a9="+a9+"
");//输出true var a10=null===0; document.write("a10="+a10+"
");//输出false var a11=123==="123"; document.write("a11="+a11+"
");//输出false var a12=123!=="123"; document.write("a12="+a12+"
");//输出true </script>

8.条件运算符
格式:
条件表达式?语句1:语句2;
执行流程:
先算条件表达式,若条件表达式为真则执行语句1,并返回执行结果。如果条件表达式为假false,则执行语句2,并返回执行结果。如果条件表达式的值是非布尔值则会转换成布尔值。
格式如下:

var a=10,b=20;
 var max=a>ba:b;
 document.write(max);

9.运算符的优先级
1.先算优先级高的再算优先级低的
2.优先级一样则从左到右计算
3.优先级可以参考c语言

几个问题,请你们小试牛刀一下
**
var a=10;
var b1=a++;
var b2=++a;
var b3=a+++++a+a++;
var b4=1+2+“3”;
var b5=100-“5”;
var b6=12&&21;
var b7=12||21;
b1到b7的值大家知道吗?
**
2.算数运算符(+,-,*,/, %)
(1)算术运算符之加号(+)
通过具体实例来得出我们的结论:
<script type="text/javascript">
var a;
a=1+2;
document.write("a="+a+"
"); a=1+null; document.write("a="+a+"
"); a=1+nan; document.write("a="+a+"
"); a=true+false; document.write("a="+a+"
"); a=true+4; document.write("a="+a+"
"); a="3"+2+1; document.write("a="+a+"
"); a=1+2+"3"; document.write("a="+a+"
"); </script>

输出答案如下所示
JavaScript基本语法:JS运算符
总结如下:对非number(字符串除外)的值进行加运算时会先将其转换成number型在运算,注意任何值和nan运算都是nan;对于含有字符串类型的相加运算则看成连字符且优先级从左向右

(2)算术运算符之加号(-)
通过具体实例来得出我们的结论:

<script type="text/javascript">
var a;
a=100-"5"
document.write("a="+a+"
"); a=100-5; document.write("a="+a+"
"); a=100-true; document.write("a="+a+"
"); a=100-null; document.write("a="+a+"
"); a=100-nan; document.write("a="+a+"
"); </script>

JavaScript基本语法:JS运算符
总结如下:对非number的值进行减运算时会先将其转换成number型在运算,注意任何值和nan运算都是nan;看到这里请读者们类比这试一下其他的几个(*,/,%)
3.自增自减运算符
通过具体实例来得出我们的结论:

<script type="text/javascript">
var a=10,b;
b=a++;
document.write("a="+a+","+"b="+b+"
"); var a=10,b; b=++a; document.write("a="+a+","+"b="+b+"
"); var a=10; a=a++; document.write("a="+a+"
"); var a=10,b; b=a+++a+++a++; document.write("b="+b+"
"); </script>

JavaScript基本语法:JS运算符
总结:若是前置++例如var a=2,b;b=++a;则输出a=3,b=3;可以看出前置++是先加1在使用;若是后置++例如var a=2,b;b=a++;则输出a=3,b=2;可以看出后置++是先使用再加1;自减运算符我就不举例了可以自己类比着学
4.逻辑运算符(!,&&,||)
逻辑运算符&&的短路现象:

<script type="text/javascript">  
   1&&alert("看我出不出来");
    0&&alert("看我出不出来");
</script>

逻辑运算符||的短路现象:

<script type="text/javascript">  
   0||alert("看我出不出来");
   1||alert("看我出不出来");
</script>

请自己试试看上面两种情形会出现什么结果

通过具体实例来得出我们的结论:

<script type="text/javascript">
  var a=true;
  a=!a;
  document.write("a="+a+"
"); var a=true; a=!!a; document.write("a="+a+"
"); var a=5; a=!!a; document.write("a="+a+"
"); var a; a=1&&2; document.write("a="+a+"
"); a=0&&2; document.write("a="+a+"
"); a=nan&&0; document.write("a="+a+"
"); a=1||2; document.write("a="+a+"
"); a=1||0; document.write("a="+a+"
"); a=0||2; document.write("a="+a+"
"); </script>

JavaScript基本语法:JS运算符
总结:从上面的结果我们可以得出三个结论:(1)任何类型的数值进行两次非运算都能转换成布尔型;(2)逻辑&&运算如果第一个是true则输出结果是第二个,如果第一个是false则输出结果是第一个;(因为有短路现象);(3)逻辑||运算如果第一个是true则输出结果是第一个,如果第一个是false则输出是第二个。(因为有短路现象);
5.赋值运算符
var a=10;
a+=5;等价于a=a+5;
a*=5;等价于a=a*5;
a-=5;等价于a=a-5;
a%=5;等价于a=a%5;
6.关系运算符
通过关系运算符可以判断两个值之间的大小关系,如果关系成立则返回true如果关系不成立则返回false。对于非数值比较时会先转换成数字(数值型)在比较。任何值和nan比较都返回false。**特别注意如果两边都是字符串,则是按照字符编码进行比较。**举例如下:

<script type="text/javascript">  
   var a1=5>4;
  document.write("a1="+a1+"
"); var a2=5
"); var a3=5>true; document.write("a3="+a3+"
"); var a4=5>null; document.write("a4="+a4+"
"); var a5=5>nan; document.write("a5="+a5+"
"); var a6=5>=5; document.write("a6="+a6+"
"); var a7=5
"); var a8=5>=false; document.write("a8="+a8+"
"); var a8=5>=nan; document.write("a8="+a8+"
"); var a9=5>"hello"; document.write("a9="+a9+"
"); var a10="11"
"); </script>

结果如下
JavaScript基本语法:JS运算符
注意下面两个输出的结果

下面这个它的比较结果和我们预想的不一样
 **var a="11"<"5";document.write("a="+a+"
");**//输出true
 所以特别注意如果比较的是两个字符串型的数字时一定要转型。  
  **var a="11"<+"5";document.write("a="+a+"
");**//输出false

7.相等,不相等,全等,不全等运算符
1.相等运算符,如果两个值相等则返回true否则返回false;如果两个值的类型不同则会先转换成同类型的然后在比较。
2.不相等运算符,如果两个值不相等则返回true否则返回false;如果两个值的类型不同则会先转换成同类型的然后在比较。
3.全等运算符,如果两个值相等则返回true否则返回false;如果两个值的类型不同不会进行类型转换直接返回false。
4.不全等运算符,如果两个值不相等则返回true否则返回false;如果两个值的类型不同不会进行类型转换直接返回true。
5.特例nan不和任何值相等包括它自己。
举点小例子:

<script type="text/javascript">  
   var a1=4==4;
  document.write("a1="+a1+"
");//输出true var a2=10==4; document.write("a2="+a2+"
");//输出false var a3=true=="1"; document.write("a3="+a3+"
");//输出true var a4=true=="hello"; document.write("a4="+a4+"
");//输出false var a5=null==0; document.write("a5="+a5+"
");//输出false var a6=null==undefined; document.write("a6="+a6+"
");//输出true var a7=nan==nan; document.write("a7="+a7+"
")//输出false; var a8=1!="1"; document.write("a8="+a8+"
");//输出false var a9=nan!=nan; document.write("a9="+a9+"
");//输出true var a10=null===0; document.write("a10="+a10+"
");//输出false var a11=123==="123"; document.write("a11="+a11+"
");//输出false var a12=123!=="123"; document.write("a12="+a12+"
");//输出true </script>

8.条件运算符
格式:
条件表达式?语句1:语句2;
执行流程:
先算条件表达式,若条件表达式为真则执行语句1,并返回执行结果。如果条件表达式为假false,则执行语句2,并返回执行结果。如果条件表达式的值是非布尔值则会转换成布尔值。
格式如下:

var a=10,b=20;
 var max=a>ba:b;
 document.write(max);

9.运算符的优先级
1.先算优先级高的再算优先级低的
2.优先级一样则从左到右计算
3.优先级可以参考c语言