• 算數運算子

算數運算子有+、-、*、/、%、++、--、=、類似+=的運算子,其使用方式與程式語言(Java、C++、C#等)基本一樣。給定 y=5,下面的表格解釋了這些算術運算子:

運算子 描述 例子 結果
+ x=y+2 x=7
- x=y-2 x=3
* x=y*2 x=10
/ x=y/2 x=2.5
% 求餘數 (保留整數) x=y%2 x=1
++ 累加 x=++y x=6
-- 遞減 x=--y x=4

下面主要演示+運算子(字串連線符):

 <script type="text/javascript">

      i=5+5;

      document.write("i的值是:"+i+"<br>");//

      i="5"+"5";

      document.write("i的值是:"+i+"<br>");//

      i=5+"5";

      document.write("i的值是:"+i+"<br>");//

 </script>
  • 位運算子

位運算子主要包括(~(非運算)、&(與運算)、|(或運算)、^(異或運算))。

 <script type="text/javascript">

    var iNum1 = 25;      //25 等於00000000000000000000000000011001

    var iNum2 = ~iNum1;// 轉換為11111111111111111111111111100110

    document.write(iNum2+"<br>");//輸出 "-26"

     var iResult = 25 & 3;

      /*
25 = 0000 0000 0000 0000 0000 0000 0001 1001
3 = 0000 0000 0000 0000 0000 0000 0000 0011
---------------------------------------------
AND = 0000 0000 0000 0000 0000 0000 0000 0001
*/ document.write(iResult+"<br>");//輸出 "1" var iResult = 25 | 3; /*
25 = 0000 0000 0000 0000 0000 0000 0001 1001
3 = 0000 0000 0000 0000 0000 0000 0000 0011
--------------------------------------------
OR = 0000 0000 0000 0000 0000 0000 0001 1011
*/ document.write(iResult+"<br>");//輸出 "27" var iResult = 25 ^ 3; /*
25 = 0000 0000 0000 0000 0000 0000 0001 1001
3 = 0000 0000 0000 0000 0000 0000 0000 0011
---------------------------------------------
XOR = 0000 0000 0000 0000 0000 0000 0001 1010
*/ document.write(iResult+"<br>");//輸出 "26" </script>
  • Boolean運算(!(求反運算)、&&(與運算)、||(或運算))

對boolean值進行的運算,與程式語言的運算方式基本一致。

  • 關係運算(<、>、<=、>=、==、!=)
 <script type="text/javascript">

     var bool = 2<1;

      document.write(bool+"<br>");//輸出false

     var bool = "a"<"b";//字母 a的字元程式碼是 97,字母b的字元程式碼是 98

      document.write(bool+"<br>");//輸出ture

     var bool = "98"<97;//字串 "98"將被轉換成數字 98

      document.write(bool+"<br>");//輸出false

     var bool = "a"<9999;//這樣比較總是返回false,不管是<、>、<=、>=

      document.write(bool+"<br>");//輸出false

 </script>
  • 等性運算子(==、===、!=、!==)

下表是一些特殊情況的值:

表示式

表示式

表示式

null==undefined

true

“NaN”==NaN

false

5==NaN

false

NaN==NaN

false

NaN!=NaN

true

false==0

true

true==1

true

true==2

false

undefined==0

false

null==0

fale

“5”==5

true

 

全等號由三個等號表示(===),只有在無需型別轉換運算數就相等的情況下,才返回 true。

 <script type="text/javascript">

     var i = "66";

      var j = 66;

      document.write((i == j)+"<br>");//輸出 "true"

      document.write((i === j)+"<br>");//輸出 "false"

      document.write((i != j)+"<br>");//輸出 "fale"

      document.write((i !== j)+"<br>");//輸出 "true"

 </script>
  • 條件運算子

variable = boolean_expression ? true_value : false_value;條件運算子與程式語言的使用方式基本一致。

 <script type="text/javascript">

      var num1=25,num2=565;

      var max = (num1>num2) ? num1 : num2;//取最大值

      document.write(max+"<br>");//輸出 "true"

 </script>
  • 其他運算子

a. 賦值運算子

每種主要的算術運算以及其他幾個運算都有複合賦值運算子:

    • 乘法/賦值(*=)
    • 除法/賦值(/=)
    • 取模/賦值(%=)
    • 加法/賦值(+=)
    • 減法/賦值(-=)
    • 左移/賦值(<<=)
    • 有符號右移/賦值(>>=)
    • 無符號右移/賦值(>>>=)

給定 x=10y=5,下面的表格解釋了賦值運算子:

運算子 例子 等價於 結果
= x=y   x=5
+= x+=y x=x+y x=15
-= x-=y x=x-y x=5
*= x*=y x=x*y x=50
/= x/=y x=x/y x=2
%= x%=y x=x%y x=0

b.逗號運算子

用逗號運算子可以在一條語句中執行多個運算。

例如:var iNum1 = 1, iNum = 2, iNum3 = 3;

c.typeof運算子

typeof 運算子有一個引數,即要檢查的變數或值,對變數或值呼叫 typeof 運算子將返回下列值之一:Undefined:如果變數是 Undefined 型別的;Boolean:如果變數是 Boolean 型別的;Number:如果變數是 Number 型別的;String:如果變數是 String 型別的;Object:如果變數是一種引用型別或 Null 型別的。

 <script type="text/javascript">

     var temp1="Jackie";

      var temp2;//Undefined型別只有一個值,即 undefined。當宣告的變數未初始化時,該變數的預設值是 undefined。

      document.write((typeof temp1)+"<br>");//string

      document.write((typeof temp2)+"<br>");//undefined

      document.write((typeof 86)+"<br>");//number

      document.write((typeof null)+"<br>");//object

 </script>

 /*Undefined:Undefined型別只有一個值,即 undefined。當宣告的變數未初始化時,該變數的預設值是 undefined。
null:另一種只有一個值的型別是 Null,它只有一個專用值 null,即它的字面量。值 undefined 實際上是從值 null 派生來的,因此 ECMAScript 把它們定義為相等的。alert(null == undefined); //輸出 "true"。
*/

d.delete運算子

delete 運算子刪除對以前定義的物件屬性或方法的引用。例如:

 <script type="text/javascript">

     var o = new Object;

      o.name = "Jackie";

      document.write(o.name+"<br>");   //輸出 "Jackie"

     delete o.name;

      document.write(o.name+"<br>");   //輸出 "undefined"

 </script>

e. instanceof運算子

能用 instanceof 運算子檢查給定變數指向的物件的型別。例如:

 <script type="text/javascript">

     function Car()//使用原型方式(或混合的建構函式/原型方式)宣告instanceof才有用
{} var car=new Car(); document.write((car instanceof Car)+"<br>");//輸出 true </script>

使用instanceof 運算子會出現很多意想不到的結果,建議不用。使用原型方式(或混合的建構函式/原型方式)宣告instanceof才有用

注:資料型別轉換

String() 轉換為字串型別

Number()
轉換為數字型別

Boolean()
轉換為布林型別

parseInt:將字串轉換為整數。從字串的開頭開始解析,在第一個非整數的位置停止解析,並返回前面讀到所有的整數。如果字串不是以整數開頭的,將返回NaN。如:parseInt(“150
hi”)返回的值是:150,parseInt("hi")返回的值是:NaN。

parseFloat
:將字串轉換為浮點數。 從字串的開頭開始解析,在第一個非整數的位置停止解析,並返回前面讀到所有的整數。如果字串不是以整數開頭的,將返回NaN。如:parseFloat("15.5 hi") 返回的值是:15.5,parseFloat("hi
15.5")返回的值是:NaN。

eval:將字串作為javascript表示式進行計算,並返回執行結果,如果沒有結果則返回undefined。

附上截圖:

  • 運算子思維導圖