4.JavaScript表达式

JavaScript

  • JavaScript表达式:
      1. 算术表达式;
      2. 字符串表达式;
      3. 关系(比较)表达式;
      4. 逻辑表达式。
  • JavaScript运算符:
      1. 根据处理对象的数目:

        • 单元运算符;
        • 二元运算符;
        • 三元运算符。

      2. 根据功能:

        • 赋值运算符;


          =  +=  -=  *=  /=  %=(取余)

        • 算术运算符;


          +  -  *  /  %(取余)  ++(递增)  --(递减) -

          例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>



      3. 运算符执行的优先顺序:

        类型 运算符
        括号 ()
        一元 ! ~ - ++ -- typeof void delete
        算术 * / + -
        位位移 << >> >>>
        比较 < <= > >= == !=
        位逻辑 & ^(xor) |
        逻辑 && ||
        三元条件 ?
        赋值 = += -= *= /= %= <<= >>= >>>= &= ^= |=