亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

詳解JavaScript的表達式與運算符

2024-05-06 16:25:29
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JavaScript的表達式與運算符,需要的朋友可以參考下
 

       JavaScript腳本語言描述了一組用于操作數據值的運算符,包括一元運算符,布爾運算符,算術運算符,關系運算符,三元運算符,位運算符和賦值運算符。
       表達式是JavaScript語言的一個“短語”,包含變量名(或字面量)和運算符。最簡單的表達式時字面量或變量名。當然也有合并簡單的表達式來創建復雜的表達式。
一、一元運算符
(1)遞增++和遞減--

var box1=100; ++box1;//相當于box=box+1 document.write("box1="+box1+"<br/>");//輸出box1=101 var box2=100; --box2;//相當于box=box2-1 document.write("box2="+box2);//輸出box2=99 

前置和后置的區別

var box=100; var age=++box;//box先累加1為101,再賦值給age為101 var height=box++;//box先賦值給height為101,box再累加為102 document.write("age="+age+"<br/>");//輸出age=101 document.write("height="+height+"<br/>");//輸出height=101 document.write("box="+box);//輸出box=102,原因是box經過了兩次累加,所以是102 

       在沒有賦值操作,前置和后置是一樣的。但在賦值操作時,如果遞增或遞減運算符前置,那么前置的運算符會先累加或累減再賦值,如果是后置運算符則先賦值再累加或累減。
(2)加和減運算符
用于取正或取負運算,也有把數字字符串轉換為數值形式的功能。

var box = "20"; document.write(typeof box+"<br/>"); //輸出string var age=-box; document.write(age+"<br/>");//輸出-20 document.write(typeof age); //輸出number 

二、算術運算符
       JavaScript語言中規定了五種算術運算符,即+,-,*,/和%(取余)。如果在算術運算符的值不是數值,那么它會先使用Number()轉型函數將其轉換為數值(隱式轉換)。

var box=100+"100"; document.write("box="+box+"<br/>");//輸出100100 document.write(typeof box);//輸出string 

       這是為什么呢?JavaScript語言中的做算術運算時,只要其中一個是字符串,那么結果就會轉換為字符串。相當于字符串連接符,不能再算作是加法算術運算符。

var box="100"-10; document.write("box="+box+"<br/>");//輸出90 var age=5/4; document.write("age="+age+"<br/>");//輸出1.25 var height=("你的年齡是:"+(10+10));//括號強制優先級 document.write(height);//輸出你的年齡是:20 

       取余

var box=10%3; document.write("box="+box);//輸出1 

三、關系運算符
       用于進行比較的運算符稱作為關系運算符:<(小于),>(大于),<=(小于等于),>=(大于等于),==(相對),!=(不等),===(恒等或全等),!==(不全等或不恒等)。關系運算符大多數返回的是一個布爾值。
       和其他運算符一樣,當關系運算符操作非數值時要遵循以下規則:
       1兩個操作符都是數值,則數值比較
       2兩個操作數都是字符串,則比較兩個字符串對應的字符編碼值
       3兩個操作數有一個是數值,則將另一個轉換為數值,在進行數值比較
       4兩個操作數有一個是對象,則先調用value()方法或toString()方法,再用結果比較。

var box1=3>2; document.write(box1+"<br/>");//輸出true var box2="3">22; document.write(box2+"<br/>");//輸出false var box3="3">"22"; document.write(box3+"<br/>");//輸出true var box4="a">"B";//a為97,B為66 document.write(box4+"<br/>");//輸出true var box5= "Blue"<"alpha";//Blue的第一個字母是B,alpha的第一個字母是a,a為97,B為66 document.write(box5) //輸出true 

       在相等和不等的比較上,如果操作數是非數值,則遵循以下規則:
       1一個操作數是布爾值,則比較之前將其轉換為數值,false轉成0,true轉成1。
       2一個操作數是字符串,則比較之前將其轉成為數值再比較。
       3一個操作數是對象,則先調用value()方法或toString()方法再比較。
       4不需要任何轉換的情況下,null和undefined是相等的
       5一個操作數是NaN,則==返回false,!=返回true,并且NaN和自身不等
       6兩個操作數都是對象,則比較它們是否是同一個對象,如果都指向同一個對象,則返回true,否則返回false
       7在全等和全不等的判斷上,比如值和類型都相等,才返回true,否則返回fasle。

var box1='2'==2; document.write(box1+"<br/>");//輸出true,比較的只是數值 var box2={}=={}; document.write(box2+"<br/>");//輸出false,因為比較的是它們的地址,每個新創建對象的引用地址都不同。 var box3=null==undefined; document.write(box3+"<br/>");//輸出true,因為均為空數值 var box4='2'===2; document.write(box4+"<br/>");//輸出false,兩個操作數的數據類型不相等 var box5=null===undefined; document.write(box5);//輸出false,兩個操作數的數據類型不相等 

四邏輯運算符
       JavaScript語言中的邏輯運算符通常作用于布爾值的操作,一般和關系運算符配合使用,有三個邏輯運算符:&&(邏輯與),||(邏輯或)和!(邏輯非)。
       (1)&&表示兩邊都必須是true,才返回true。
       如果兩邊的操作數有一個操作數不是布爾值的情況下,與運算就不一定返回布爾值,此時遵循下面的規則:
       1第一個操作數是對象,則返回第二個操作數
       2第二操作數是對象,則第一個操作數返回true,才返回第二個操作數,否則返回false
       3一個操作數是null,則返回null
       4一個操作數是undefined,則返回undefined
       5如果一個運算數是對象,另一個是 Boolean 值,返回該對象
      邏輯與運算符屬于短路操作,如果有第一個操作數返回的是false,第二個不管是true還是false都返回false。

var box1={}&&(5>4); document.write(box1+"<br/>");//輸出true var box2=(5>4)&&{}; document.write(box2+"<br/>");//輸出[object Object] var box3=(3>4)&&{}; document.write(box3);//輸出false 

      (2)||表示兩邊有一個是true,就返回true。
      如果兩邊的操作數有一個操作數不是布爾值的情況下,與運算就不一定返回布爾值,此時遵循下面的規則:
      1第一個操作數是對象,則返回第一個個操作數
      2第一個操作數的求值結果為fasle,則返回第二個操作數
      3兩個操作數都是對象,則返回第一個操作數
      4兩個操作數都是null,則返回null
      5兩個操作數都是undefined,則返回undefined
      6兩個操作數都是NaN,則返回NaN
      邏輯或運算符也屬于短路操作,如果有第一個操作數返回的是true,第二個不管是true還是false都返回true。

var box1={}||(5>4); document.write(box1+"<br/>");//輸出[object Object] var box2=(5>4)||{}; document.write(box2+"<br/>");//輸出true var box3=(3>4)||{}; document.write(box3);//輸出[object Object] 

      (3)!邏輯非運算符可以作用與任何值,無論這個值是什么數據類型,這個運算符都會返回一個布爾值,它的流程是:先將這個值轉換成布爾值,然后取反,規則如下:
      1操作數是一個對象,返回false
      2操作數是一個空字符串,返回true
      3操作數是一個非空字符串,返回false
      4操作數是數值0,返回true
      5操作數是任意非0數值,返回false
      6操作數是null,返回true
      7操作數是NaN,返回true
      8操作數是undefined,返回true

var box=!{}; document.write(box);//輸出false 

五、位運算符
      JavaScript語言中包括了七種位運算符:~(位非),&(位與),|(位或),^(位異或),<<(左移),>>(有符右移號),>>>(無符號右移)
       (1)位非(~)運算把運算數轉換成32位數字,然后把二進制數轉換成它的二進制反碼,最后把二進制數轉換成浮點數。實質上是對數字求負,然后減去1即為所得值。

var box=~25; document.write(box);//輸出-26 

       (2)位與(&)運算直接對數字的二進制形式進行運算,然后對上下同一位置的兩個數位進行與運算,只有兩個數位都為1時才得出1,其余的均為0.

var box=25&3; document.write(box);//輸出1 

       (3)位或(|)運算也是直接對數字的二進制形式進行計算,然后對上下同一位置的兩個數位進行或運算,只右兩個數位都為0時才得出0,其余的均為1.

var box=25|3; document.write(box);//輸出27 

       (4)位異或(^)也是直接對二進制形式進行運算。當只有一個數位存放的是1時,它才返回1。其余的返回0。也就是兩個數位相同時返回0,不同時返回1.

var box=25^3; document.write(box);//輸出26 

       (5)左移運算也是對二進制數進行操作,相等于第一個操作數乘以(2的左移位數次冪)的積。

var box=25<<3; document.write(box);//25左移3位相當于25乘以(2的3次冪),因此輸出200 

        (6)有符號右移運算也是對二進制數進行操作,相等于第一個操作數除以(2的右移位數次冪)的商。

var box=24>>2; document.write(box);//輸出6 

       (7)無符號右移運算也是對二進制數進行操作,對于正數,與有符號右移是相同的結果,但是對于負數,就會所不同。
     

六、賦值運算符
      賦值運算符包括:=(),+=(),-=(),*=(),/=(),%=(),<<=(),>>=(),>>>=()。

var box=100; box+=100;//相當于box=box+100 document.write("box="+box);//輸出box=200 

七、其他運算符
1)、字符串運算符:“+”,它的作用是將兩個字符串想加。規則:只要有一個字符串即可。

var box=100+"10"'; document.write("box="+box);//輸出100100 

2)、逗號運算符,可以在一條語句中執行多個操作

var box=100,age=200,height=300; document.write("box="+box);//輸出box=100 

3)、三元操作符:

var box=(3>4)?"對":"錯"; document.write(box);//輸出錯 

      如果想更詳細的了解ECMAScript運算符的知識,可以訪問JavaScript高級教程中的ECMASscript一元運算符這個系列中有詳細的運算符教程。對于JS的運算符來說,我們可以對比著C++,C#和Java來學,這個還是相當的容易的。

以上就是關于JavaScript的表達式與運算符的全部內容,希望對大家的學習有所幫助。



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产福利成人在线| 91丨九色丨国产在线| 久久99精品久久久久久青青91| 久久综合国产精品台湾中文娱乐网| 超碰精品一区二区三区乱码| 亚洲欧美成人网| 欧美精品999| 国产精品久久综合av爱欲tv| 国产精品久久久久久久久久小说| 91在线视频精品| 国产精品久久二区| 久久精品一区中文字幕| 欧美大片免费观看在线观看网站推荐| 亚洲精品欧美一区二区三区| 深夜福利日韩在线看| 国产精品揄拍500视频| 亚洲高清福利视频| 日韩精品视频中文在线观看| 日韩中文字幕精品视频| 亚洲综合在线小说| 日韩精品在线免费观看视频| 日韩电影中文字幕av| 亚洲福利视频免费观看| 久久久这里只有精品视频| 久久精品国产久精国产一老狼| 日产精品99久久久久久| 亚洲新中文字幕| 欧美乱妇40p| 亚洲毛片在线看| 亚洲韩国欧洲国产日产av| 亚洲精品国产精品自产a区红杏吧| 欧美放荡办公室videos4k| 国产一区二区三区在线播放免费观看| 精品中文字幕久久久久久| 国产精品久久久久久久久免费看| 欧美日韩亚洲精品一区二区三区| 亚洲男人第一网站| 91社影院在线观看| 久久精品一偷一偷国产| 国产精品亚发布| 日韩免费av片在线观看| 欧美激情免费在线| 国产婷婷成人久久av免费高清| 18性欧美xxxⅹ性满足| 热久久99这里有精品| 国产在线观看不卡| 亚洲国产精品久久久| 日韩电影大全免费观看2023年上| 亚洲乱码国产乱码精品精| 亚洲天堂av女优| 欧美丝袜一区二区| 国产精品9999| 97超碰蝌蚪网人人做人人爽| 亚洲欧美精品伊人久久| 久久99国产综合精品女同| 国产视频亚洲精品| 精品少妇一区二区30p| 色妞一区二区三区| 欧美精品videos| 中文字幕无线精品亚洲乱码一区| 性欧美办公室18xxxxhd| 久久久久久久一区二区| 亚州欧美日韩中文视频| 久久国产天堂福利天堂| 日韩亚洲欧美中文高清在线| 国产亚洲a∨片在线观看| 国产午夜精品理论片a级探花| 亚洲福利视频网站| 久久久国产一区二区| 国产精品免费久久久| 欧美激情啊啊啊| 久久精品国产96久久久香蕉| 久久躁狠狠躁夜夜爽| 亚洲人成电影在线| 91av在线免费观看视频| 欧美黑人极品猛少妇色xxxxx| 欧美激情欧美激情在线五月| 国产成人在线一区| 欧美情侣性视频| 精品福利一区二区| 亚洲爱爱爱爱爱| 欧美乱大交xxxxx另类电影| 亚洲精品国产综合区久久久久久久| 精品视频在线观看日韩| 98精品国产自产在线观看| 亚洲高清在线观看| 国内免费精品永久在线视频| 久久成人这里只有精品| 8x拔播拔播x8国产精品| 国产亚洲在线播放| 欧美一乱一性一交一视频| 日韩精品免费在线视频| 欧美日韩亚洲视频| 精品久久久一区| 亚洲国产天堂久久国产91| 亚洲在线视频福利| 日韩中文字在线| 色阁综合伊人av| 日韩精品高清在线| 韩国三级日本三级少妇99| 亚洲v日韩v综合v精品v| 亚洲最大成人免费视频| 成人黄色午夜影院| 国产视频在线一区二区| 欧美国产日产韩国视频| 亚洲白虎美女被爆操| 激情久久av一区av二区av三区| 亚洲人高潮女人毛茸茸| 97久久精品人搡人人玩| 国产精品一香蕉国产线看观看| 97av在线影院| 精品国产户外野外| 色婷婷久久一区二区| 91极品视频在线| 亚洲自拍偷拍一区| 国产精品亚洲综合天堂夜夜| 国产精品欧美风情| 中文字幕一精品亚洲无线一区| 亚洲欧美日韩中文在线| 欧美成人午夜激情在线| 国产69精品久久久| 亚洲韩国青草视频| 久久免费视频网| 欧美日韩精品二区| 日韩精品中文字幕在线播放| 国产这里只有精品| 成人国产精品一区二区| 亚洲免费成人av电影| 国产精品网站大全| 国产人妖伪娘一区91| 国模叶桐国产精品一区| 91国产美女视频| 2019中文字幕在线免费观看| 亚洲欧洲中文天堂| 亚洲国产一区二区三区在线观看| 国产精品女人网站| 中文字幕在线观看亚洲| 日韩成人在线播放| 亚洲欧洲自拍偷拍| 中文字幕免费精品一区高清| 日韩在线欧美在线| 国产日韩欧美日韩大片| 国模精品一区二区三区色天香| 国产丝袜精品第一页| 国产精品jizz在线观看麻豆| 美女福利精品视频| 国产视频在线观看一区二区| 国产精品久久久久免费a∨大胸| 伊人男人综合视频网| 91午夜理伦私人影院| 91久久精品国产91久久| 国产精品99久久久久久久久久久久| 欧美日韩加勒比精品一区| 亚洲国产成人精品女人久久久| 国产精品免费一区豆花| 狠狠久久五月精品中文字幕| 国产精品黄页免费高清在线观看| 伦理中文字幕亚洲| 精品中文字幕在线| 98精品国产高清在线xxxx天堂| 国产精品一区二区性色av| 国产一区二区免费| 91精品国产综合久久香蕉| 91视频国产精品|