1. <u id="4dkwc"><bdo id="4dkwc"></bdo></u>

          <video id="4dkwc"><ins id="4dkwc"></ins></video>
          299

          JavaScript運算符詳解

          時間: 2015-12-11 11:56:13   點擊數(shù): 31411   來源: 耐思智慧

          1、javascript具有下列種類的運算符:算術(shù)運算符;等同運算符與全同運算符;比較運算符;

          2、目的分類:字符串運算符;邏輯運算符;逐位運算符;賦值運算符;

          3、特殊運算符:條件運算符;typeof運算符;創(chuàng)建對象運算符new;delete運算符;void運算符號;逗號運算符;

          算術(shù)運算符:+ 、 - 、* 、 / 、 % 、 -(一元取反) 、 ++ 、 --

          等同運算符與全同運算符:== 、 ===、 !== 、 !===

          比較運算符:< 、 > 、 <= 、 >=

          字符串運算符::< 、 > 、 <= 、 >= 、 = 、 +

          邏輯運算符:&& 、 ||、 !、

          賦值運算符:=、 +=、 *=、 -=、 /=

          規(guī)則:

          一、一定要注意傳遞給運算符的數(shù)據(jù)類型和返回的數(shù)據(jù)類型!不同的運算符都期望它的運算數(shù)表達式計算出的結(jié)果符合某種數(shù)據(jù)類型。

          例如:對字符串是不能進行乘法運算的,"a" * "b" 是不合法的,但是,在可能的情況下,javascript會把表達式轉(zhuǎn)換成正確的類型,因此,表達式 "3" * "5" 是合法的,javascript將字符串轉(zhuǎn)換成數(shù)字執(zhí)行運算,結(jié)果返回的是數(shù)字15,而不是字符串"15"。

          二、+ 根據(jù)運算數(shù)的不同,具有不同的表現(xiàn):

          字符串 + 字符串 = 字符串(被連接);"a" + "b" = "ab" "5" + "6" = "11"

          字符串 + 數(shù)字 = (字符串轉(zhuǎn)換成數(shù)字)字符串(被連接);"a" + 5 = "a5" 5被轉(zhuǎn)換成字符串 "1" + 0 = "10"

          數(shù)字 + 數(shù)字 = 數(shù)字(相加)5 + 5 = 10。

          三、注意運算符的結(jié)合性,有些運算符從左到右的結(jié)合性;有些從右到左結(jié)合性。

          例如:w = a + b + c 等同于 w = (a + b) + c;

          w = ---b 等同于 w = - ( - ( -b ) ); w = a = b = c 等同于 w= ( a = ( b = c ))

          一元運算符、賦值運算符、三元運算符的結(jié)合性是從右到左的;

          四、算術(shù)運算符規(guī)則:

          “+”:可以進行“加法”與“連接”運算;如果2個運算符中的一個是字符串,javascript就將另一個轉(zhuǎn)換成字符串,然后將2個運算數(shù)連接起來。

          “+”:如果一個運算數(shù)是對象,javascript就會將對象轉(zhuǎn)換成數(shù)字做加法運算或者字符串做連接運算;

          “-”“*”“/” 如果2個運算數(shù)中的一個是是非數(shù)字,則將它轉(zhuǎn)化成數(shù)字執(zhí)行數(shù)學運算。

          “/” 在javascript中,由于所有的數(shù)都是浮點數(shù),除法的結(jié)果都是浮點數(shù),5 / 2 = 2.5 ;除數(shù)為0的結(jié)果為正負無窮;0/0為NaN;

          “%”模運算符:計算第一個運算數(shù)對第二個運算數(shù)的模,就是第一個運算數(shù)被第二個運算數(shù)除時,返回余數(shù)。如果運算數(shù)是非數(shù)字的,則轉(zhuǎn)換成數(shù)字。

          “-”一元取反:將運算數(shù)取反,如果運算數(shù)不是數(shù)字,則轉(zhuǎn)化成數(shù)字。

          “++”“--”增量運算符/減量運算符號:運算數(shù)必須是一個變量、樹組的一個元素或?qū)ο蟮囊粋屬性。如果運算數(shù)不是數(shù)字,則轉(zhuǎn)換成數(shù)字。

          注意:如果“++”位于運算數(shù)之前,先對運算數(shù)進行增量,然后計算運算數(shù)增長后的值。

          如果“--”位于運算數(shù)之后,先計算運算數(shù)未增長之前的值,然后對運算數(shù)增量。

          例如:i = 1; //賦值給i值1

          j = ++i; //先將i增量為2,然后將2賦值給j,i的值是2,j的值也是2。

          i = 1; //賦值給i值1

          j = i++; //先將i賦值給j,然后對將i值增量到2,i的值是2,j的值是1。

          減量運算符“--”與“++”相同。

          五、等同運算符與全同運算符:

          (一)“==”“!==”等同運算符與非等同運算符:

          比較2個運算數(shù),返回一個不布爾值。

          比較數(shù)值、字符串、布爾值使用的都是量值。當且僅當兩個變量存放的值相等的時候,他們才相等。

          比較對象、數(shù)組、函數(shù)的時候,使用的是引用,只有2個變量引用的是同一個對象時,他們才是相等的

          。兩個不同的數(shù)組是完全不同的,即使他們具有完全相同的元素。對于存放對象、數(shù)組、函數(shù)的引用的變量來

          說,只有當他們引用的是同一個對象、數(shù)組、函數(shù)的時候,他們才相等。

          注意!應(yīng)遵循的原則:

          當兩個運算數(shù)的類型不同時:將他們轉(zhuǎn)換成相同的類型,

          1)一個數(shù)字與一個字符串,字符串轉(zhuǎn)換成數(shù)字之后,進行比較。

          2)true轉(zhuǎn)換為1、false轉(zhuǎn)換為0,進行比較。

          3)一個對象、數(shù)組、函數(shù) 與 一個數(shù)字或字符串,對象、數(shù)組、函數(shù)轉(zhuǎn)換為原始類型的值,然后進行比較。(先使用valueOf,如果不行就使用toString)

          4)其他類型的組合不星等。

          想兩個運算數(shù)類型相同,或轉(zhuǎn)換成相同類型后:

          1)2個字符串:同一位置上的字符相等,2個字符串就相同。

          2)2個數(shù)字:2個數(shù)字相同,就相同。如果一個是NaN,或兩個都是NaN,則不相同。

          3)2個都是true,或者2個都是false,則想同。

          4)2個引用的是同一個對象、函數(shù)、數(shù)組,則他們相等,如果引用的不是同一個對象、函數(shù)、數(shù)組,則不相同,即使這2個對象、函數(shù)、數(shù)組可以轉(zhuǎn)換成完全相等的原始值。

          5)2個null,或者2個都是未定義的,那么他們相等。

          “!=”非等同運算符:與等同運算符檢測的結(jié)果相反。

          (二)“===”“!===”全同運算符與非全同運算符號:

          全同運算符遵循等同運算符的比較規(guī)則,但是它不對運算數(shù)進行類型轉(zhuǎn)換,當兩個運算數(shù)的類型不同時,返回false;只有當兩個運算數(shù)的類型相同的時候,才遵循等同運算符的比較規(guī)則進行比較。

          “!==”非全同運算符與全同運算符比較的結(jié)果相反。如果兩個運算數(shù)的類型或者值不同的時候,返回true。

          六、比較運算符:

          這些比較運算符用于比較不同類型的值,結(jié)果返回一個布爾值。

          “<”“>”“<=”“>=”

          注意規(guī)則:比較的運算數(shù)可以是任意類型的,但是只能在數(shù)字和運算數(shù)上執(zhí)行。不是數(shù)字和字符串的運算數(shù)將被轉(zhuǎn)換成數(shù)字或字符串。

          1)如果兩個運算數(shù)都是數(shù)字,或者都可以轉(zhuǎn)換成數(shù)字,則按照數(shù)字的大小進行比較;

          2)如果兩個運算數(shù)都是字符串,或者都可以轉(zhuǎn)換成字符串,則將按照字母順序進行比較;

          3)如果字符串遇到數(shù)字,則將字符串轉(zhuǎn)換成數(shù)字進行比較。

          4)如果運算數(shù)既不能轉(zhuǎn)換成數(shù)字,也不能轉(zhuǎn)換成字符串,則返回結(jié)果false。

          七、字符串運算符:

          并沒有專用的字符串運算符,只是有些運算符在遇到字符串運算數(shù)的時候,表現(xiàn)不同。

          (一)“+”連接2個字符串;

          1)當2個運算數(shù)都是字符串的時候,連接起來;

          2)當其中有一個是數(shù)字的時候,將數(shù)字轉(zhuǎn)換成字符串,連接起來;

          (二)“>”這樣的比較運算符通過比較確認兩個字符串的順序,比較采用字符的順序,較小的位于教大的前面,大寫字母位于小寫字母之前。

          (三)“+”的作用方法取決于計算順序,

          如:s = 1 + 2 +"var" 則:返回結(jié)果3var; 因為先計算1+2,然后將結(jié)果3轉(zhuǎn)換成字符串與"var"連接;

          如:s = "var" + 1 + 2 則:返回結(jié)果var12; 因為先計算var與1的連接,在將結(jié)果var1與轉(zhuǎn)換成字符串的2連接起來。

          八、邏輯運算符:

          用于執(zhí)行布爾運算,常常和比較運算符一起使用,來表示復(fù)雜的比較運算。

          “&&” 邏輯與運算、“||”邏輯或運算符、“!”邏輯非運算符

          (一)“&&”當兩個運算數(shù)都是布爾值的時候,邏輯與對他們進行and操作,即:當且僅當兩個布爾值都是true的時候,返回結(jié)果true,否則返回false。

          注意:實際表現(xiàn)

          “&&”將檢測第一個表達式運算數(shù)布爾值,如果第一個運算數(shù)表達式返回false,則返回左邊第一個運算數(shù)表達式的值:false;否則將繼續(xù)檢測第二個即右邊的運算數(shù)表達式,然后返回第二個運算數(shù)表達式的值;

          例如:if (a = b) stop(); 與 (a = b) && stop(); 等價

          不贊成使用這個方法,因為運算符右邊的代碼不能保證會被執(zhí)行,

          例如:if ((a < b) && (b++ <10) ) stop();如果運算符右邊的增量必須的話,卻有可能由于前面的返回值而不被執(zhí)行,一般反對在&&的右邊使用具有其他作用的表達式(賦值、函數(shù)調(diào)用、增減量);

          將“&&”看作是一個布爾代數(shù)的運算符,會更簡單與安全。

          (二)“||”當兩個運算數(shù)都是布爾值的時候,邏輯或?qū)λ麄冞M行or操作,即:當兩個布爾值有一個是true的時候,返回結(jié)果true,否則返回false。

          注意:實際表現(xiàn)

          “||”將檢測第一個表達式運算數(shù)布爾值,如果第一個運算數(shù)表達式返回true,則返回左邊第一個運算數(shù)表達式的值:true;否則將繼續(xù)檢測第二個即右邊的運算數(shù)表達式,然后返回第二個運算數(shù)表達式的值;

          同樣不贊成使用這個方法,因為運算符右邊的代碼不能保證會被執(zhí)行,

          一般反對在||的右邊使用具有其他作用的表達式(賦值、函數(shù)調(diào)用、增減量);

          將“||”看作是一個布爾代數(shù)的運算符,會更簡單與安全。

          (三)“!”邏輯非是一個一元運算符,放在運算數(shù)之前,它的目的是對運算數(shù)取反。

          九、賦值運算符:

          (一)“=”是賦值運算符;他總是期望左邊的運算數(shù)是一個變量、數(shù)組的一個元素或?qū)ο蟮囊粋屬性;

          期望右邊是一個任意類型的任意的值;

          從右到左的結(jié)合性,如果一個表達式中有多個賦值運算符,則從最右邊開始計算。

          注意:每一個賦值表達式都有一個值,就是運算符右邊的值;

          (二)可以使用帶操作的賦值運算

          “+=” 左邊的值加上右邊的值后,賦值于左邊的值。“-=”“/=”“*=”方法一樣;

          十、其他運算符:

          “?:”條件運算符是唯一的一個三元運算符;

          一個表達式的布爾結(jié)果?表達式1(任意類型的任意值):表達式2(任意類型的任意值);

          根據(jù)第一個運算數(shù)的布爾值結(jié)果,如果為true,則執(zhí)行第二個運算數(shù)表達式,返回第二個運算數(shù)表達式的值;如果第一個運算數(shù)的布爾值結(jié)果是false,則執(zhí)行第三個運算數(shù)表達式,返回第三個運算數(shù)表達式的值。

          上一篇:JavaScript語句分類大全 下一篇:JavaScript的基本語法

          旗下網(wǎng)站:耐思智慧 - 淘域網(wǎng) - 我的400電話 - 中文域名:耐思尼克.cn 耐思尼克.top

          耐思智慧 © 版權(quán)所有 Copyright © 2000-2024 IISP.COM,Inc. All rights reserved

          備案號碼: 粵ICP備09063828號  公安備案號: 公安備案 粵公網(wǎng)安備 44049002000123號  域名注冊服務(wù)機構(gòu)許可:粵D3.1-20240003 CN域名代理自深圳萬維網(wǎng)

          聲明:本網(wǎng)站中所使用到的其他各種版權(quán)內(nèi)容,包括但不限于文章、圖片、視頻、音頻、字體等內(nèi)容版權(quán)歸原作者所有,如權(quán)利所有人發(fā)現(xiàn),請及時告知,以便我們刪除版權(quán)內(nèi)容

          本站程序界面、源代碼受相關(guān)法律保護, 未經(jīng)授權(quán), 嚴禁使用; 耐思智慧 © 為我公司注冊商標, 未經(jīng)授權(quán), 嚴禁使用

          法律顧問:珠海知名律師 廣東篤行律師事務(wù)所 夏天風 律師

          日韩精品一区二区三区毛片_亚洲中文字幕在线19页_久久超碰熟女中文字幕_四季AV在线二区中文字幕
            1. <u id="4dkwc"><bdo id="4dkwc"></bdo></u>

                <video id="4dkwc"><ins id="4dkwc"></ins></video>