<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      《JavaScript高級程序設計》閱讀筆記(五):ECMAScript中的運算符(一)

      2.9 運算符

      2.9.1、一元運算符

        一元運算符只有一個參數,即要操作的對象或值。

        1、delete:刪除對以前定義的對象屬性或方法的引用,但此運算符不能刪除開發者未定義的屬性和方法。示例:

       1 var o=new Object;
      2 o.name="Nicholas";
      3 o.show=function(){
      4 return "test";
      5 };
      6 console.log(o.name); //outpus Nicholas
      7 console.log(o.show()); //outpus test
      8
      9 delete o.name;
      10 delete o.show;
      11
      12 console.log(o.name); //outpus undefined
      13 console.log(o.show()); //outpus TypeError: o.show is not a function
      14
      15 delete o.toString;
      16 console.log(o.toString()); //outpus [object Object]

        2、void:對任何值都返回undefined,該運算符通常用于避免輸出不應該輸出的值。

        如在鏈接中打開新窗口,代碼如下:

      <a href="javascript:window.open('about:blank')">Click Me</a>

        點擊鏈接后會在新窗口中出現[object]。這是因為window.open()方法返回了對新打開窗口的引用。然后該對象將被轉換成要顯示的字符串。要避免這種結果,可以用void運算符調用window.open()函數:

      <a href="javascript:void(window.open('about:blank'))">Click Me</a>

        3、前增量/前減量運算符:從C中借用的兩個運算符。示例:

      1 var iNum=10;
      2 console.log(++iNum); //outpus 11 same as iNum=iNum+1
      3 console.log(iNum); //outpus 11
      4 console.log(--iNum); //outpus 10 same as iNum=iNum-1
      5 console.log(iNum); //outpus 10

        4、后增量/后減量運算符:從C中借用的兩個運算符。與前增量/前減量一樣,也是給數值加1或減1,不同的是后綴式運算符是在計算過包含它們的表達式后才進行增量或減量運算的。示例:

      1 var iNum=10;
      2 iNum--
      3 console.log(iNum); //outpus 9
      4 console.log(iNum--); //outpus 9
      5 console.log(iNum); //outpus 8
      6 iNum++
      7 console.log(iNum); //outpus 9
      8 console.log(iNum++); //outpus 9
      9 console.log(iNum); //outpus 10

        5、一元加法和一元減法:用法與高中數學中學到的用法相同,一元加法對數字無任何影響,一元減法就是對數值求負。但一元回法和一元減法對字符串進行運算時與parseInt()相似,主要的不同是只有對以"ox"開頭的字符串,一元運算符才把它轉換為10進制的值。示例:

       1 var iNum=25;
      2 iNum=+iNum;
      3 console.log(iNum); //outpus 25
      4
      5 var sNum="50";
      6 console.log(typeof sNum); //outpus string
      7 console.log(+sNum); //outpus 50
      8 console.log(typeof +sNum); //outpus number
      9
      10 var sNum1="017";
      11 var sNum2="0xB";
      12 console.log(-sNum1); //outpus -17
      13 console.log(-sNum2); //outpus -11

      2.9.2 位運算符

        1、位運算NOT:由(~)表示,處理過程如下:

        (1) 把運算數轉換為32位數字

        (2) 把二進制形式轉換成它的二進制反碼;

        (3) 把二進制反碼轉換為浮點數

        示例:

      1 var iNum1=25;        //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
      2 var iNum2=~iNum1; //conver to 1111 1111 1111 1111 1111 1111 1110 0110
      3 console.log(iNum2); //outpus -26
      4
      5 //位運算符NOT實質上是對數字求負,然后減1,因此下面的代碼也可以得到同樣的效果
      6 var iNum3=25;
      7 var iNum4=-iNum3-1;
      8 console.log(iNum4);

        2、位運算AND:由(&)表示,直接對數字的二進制形式進行計算。規則為全為1才為1,否則為0。示例:

      1 var iNum1=25;        //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
      2 var iNum2=iNum1&3; // 3 is equal to 0000 0000 0000 0000 0000 0000 0000 0011
      3 console.log(iNum2); // and is 0000 0000 0000 0000 0000 0000 0000 0001 outpus 1

        3、位運算OR:由(|)表示,直接對數字的二進制形式進行計算。規則為全為0才為0,否則為1。示例:

      1 var iNum1=25;        //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
      2 var iNum2=iNum1|3; // 3 is equal to 0000 0000 0000 0000 0000 0000 0000 0011
      3 console.log(iNum2); // or is 0000 0000 0000 0000 0000 0000 0001 1011 outpus 27

        4、位運算XOR:由(^)表示,直接對數字的二進制形式進行計算。規則為只有一個數位存放的是1時才為1,否則為0。示例:

      1 var iNum1=25;        //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
      2 var iNum2=iNum1^3; // 3 is equal to 0000 0000 0000 0000 0000 0000 0000 0011
      3 console.log(iNum2); // xor is 0000 0000 0000 0000 0000 0000 0001 1010 outpus 26

        5、左移運算:由(<<)表示,把數字中的所有數位向左移動指定的數量,保留符號位,左移一位相當于乘以2。

        6、有符號右移運算:由(>>)表示,把數字中的所有數位向右移動指定的數量,保留符號位,右移一位相當于除以2。

        7、無符號右移運算:由(>>>)表示,把數字中的所有數位向右移動指定的數量。對于正數跟有符號的右移完全一樣,對于負數作為正數來處理。

        示例:

       1 var iOld=2;
      2 var iOld1=64;
      3 var iOld2=64;
      4 var iOld3=-2;
      5
      6 var iNew=iOld<<5;
      7 var iNew1=iOld1>>5;
      8 var iNew2=iOld2>>>5;
      9 var iNew3=iOld3>>>1;
      10
      11 console.log(iNew); //outpus 64
      12 console.log(iNew1); //outpus 2
      13 console.log(iNew2); //outpus 2
      14 console.log(iNew3); //outpus 2147483647

        負數iOld3無符號右移的計算方法如下:

        先把-2轉換成無符號的等價形式,即-2的二進制補碼:

        -2的非負版本二進制表示:0000 0000 0000 0000 0000 0000 0000 0010

        該二進制的反碼:1111 1111 1111 1111 1111 1111 1111 1101

        在二進制反碼上加1:1111 1111 1111 1111 1111 1111 1111 1110

        最后再右移一位:0111 1111 1111 1111 1111 1111 1111 1111 即為:2147483647

      2.9.3 Boolean運算符

        1、邏輯NOT:由(!)表示,返回值一定是Boolean值,行為如下:

        如果運算數是對象,返回false

        如果運算數是數字0,運回true

        如果運算數是0以外的任何數字,反回false

        如果運算數是null,返回true

        如果運算數是NaN,返回true

        如果運算數是undefined,發生錯誤

        2、邏輯AND:由(&&)表示,如果運算數均為Boolean型,只有當運算數均為true時才返回true,否則返回false。AND運算的運算數可以是任何類型,返回值不一定是Boolean值:

        如果一個運算數是對象,另一個是Boolean值,返回該對象

        如果兩個運算數都是對象,返回第二個對象

        如果某個運算數是null,返回null

        如果某個運算數是NaN,返回NaN

        如果某個運算數是undefined,發生錯誤

        ECMAScript中的邏輯AND也是簡便運算,即如果第一個運算數決定了結果,就不再計算第二個運算數,示例:

      1 var bFalse=false;
      2 var bResult=bFalse&&bUnknow;
      3 console.log(bResult); //outpus false
      4
      5 var bTrue=true;
      6 var bResult=bTrue&&bUnknow;
      7 console.log(bResult); //outpus ReferenceError: bUnknow is not defined

        3、邏輯OR運算符:由(||)表示,如果運算數均為Boolean型,只有當運算數均為false時才返回false,否則返回true。OR運算的運算數可以是任何類型,返回值不一定是Boolean值:

        如果一個運算數是對象,另一個是Boolean值,返回該對象

        如果兩個運算數都是對象,返回第一個對象

        如果某個運算數是null,返回null

        如果某個運算數是NaN,返回NaN

        如果某個運算數是undefined,發生錯誤

        ECMAScript中的邏輯OR也是簡便運算,即如果第一個運算數決定了結果,就不再計算第二個運算數,示例:

      1 var bTrue=true;
      2 var bResult=bTrue||bUnknow;
      3 console.log(bResult); //outpus true
      4
      5 var bFalse=false;
      6 var bResult=bFalse||bUnknow;
      7 console.log(bResult); //outpus ReferenceError: bUnknow is not defined

      2.9.4 乘性運算符

        1、乘法運算符:由(*)表示,正常情況下跟數學中的乘法相同,特殊情況下有些特殊值:

        如果運算的結果太大或太小,生成結果為Infinity或-Infinity

        如果某個運算數是NaN,結果為NaN

        Infinity乘以0,結果為NaN

        Infinity乘以0以外的任何數字,結果為Infinity或-Infinity,由第二個運算數的符號決定

        Infinity乘以Infinity,結果為Infinity

        2、除法運算符:由(/)表示,正常情況下跟數學中的乘法相同,特殊情況下有些特殊值:

        如果運算的結果太大或太小,生成結果為Infinity或-Infinity

        如果某個運算數是NaN,結果為NaN

        Infinity被Infinity除,結果為NaN

        Infinity被任何數字除,結果為Infinity

        0除以一個非無窮大的數字,結果為NaN

        Infinity被0以外的任何數字除,結果為Infinity或-Infinity,由第二個運算數的符號決定

        3、取模運算符:由(%)表示,正常情況下跟數學中的乘法相同,特殊情況下有些特殊值:

        如果被除數是Infinity,或者除數是0,結果為NaN

        Infinity被Infinity除,結果為NaN

        如果除數是無窮大的數,結果為被除數

        如果被除數為0,結果為0

      posted @ 2011-11-30 12:51  artwl  閱讀(632)  評論(0)    收藏  舉報

      個人簡介

      var ME = {
      	"name": "土豆/Artwl",
      	"job": "coding",
      	"languages": [
      		"JS", "HTML",
                      "CSS", "jQuery"
      		"MVC",".NET",
      		"設計模式"
      	],
      	"hobby": [
      		"閱讀", "旅游",
      		"音樂", "電影"
      	]
      }
      
      TOP
      主站蜘蛛池模板: 伊川县| 久青草国产综合视频在线| 国产日韩一区二区四季| www国产无套内射com| 亚洲精品日本久久久中文字幕| 一本无码人妻在中文字幕免费 | 欧美videos粗暴| 久久免费网站91色网站| 国产区精品福利在线熟女| 亚洲精品揄拍自拍首页一| 乱人伦人妻中文字幕在线| 久久综合久久美利坚合众国| 四虎永久播放地址免费| 男人av无码天堂| 国产一区二区三区色视频| 亚洲国产精品第一二三区| 色欲综合久久中文字幕网| 日本不卡一区| 亚洲暴爽av人人爽日日碰| 亚洲精品日韩在线观看| 株洲市| 亚洲青青草视频在线播放| 免费无码又爽又刺激网站| 成人年无码av片在线观看| 国产一区国产精品自拍| 国产午夜福利片在线观看| 另类 专区 欧美 制服| 国产精品二区中文字幕| 五河县| 又爽又黄又无遮挡的激情视频| 乱人伦人妻系列| 亚洲精品国产精品乱码不| 亚洲国产超清无码专区| 久久99精品国产自在现线小黄鸭| 日本真人做爰免费的视频| 午夜福利国产精品视频| 马尔康县| 亚洲日韩成人无码不卡网站| 久久青青草原亚洲AV无码麻豆| 亚洲无线码中文字幕在线| 少妇人妻偷人偷人精品|