欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript中的各種操作符使用總結(jié)

 更新時(shí)間:2016年05月26日 18:46:34   作者:Murphywuwu  
這里我們說的操作符包括算數(shù)運(yùn)算符和邏輯操作符等,包括布爾與賦值等,為大家進(jìn)行了JavaScript中的各種操作符使用總結(jié),需要的朋友可以參考下

一元操作符
只能操作一個(gè)值的操作符叫一元操作符。
一元操作符是ECMAScript中最簡單的操作符。

1.遞增和遞減操作符
遞增遞減操作符直接借鑒C,而且各有兩個(gè)版本:前置型和后置型。顧明思義,前置型應(yīng)該讓位于要操作的變量之前,而后置型應(yīng)該位于要操作的變量之后。
前置型:

var num1 = 1;
var num2 = 2;
var num3 = ++num1 + num2;//4

后置型:

var num1 = 1;
var num2 = 2;
var num3 = num1++ + num2;//3

上述兩段代碼得出了不同的結(jié)果,原因就在與,后置遞增遞減與前置遞增遞減有一個(gè)非常重要的區(qū)別,即后置遞增遞減操作是在包含它們的語句被求值之后才執(zhí)行的。

適用范圍:
前置遞增遞減與后置遞增遞減所有這四個(gè)操作符對任何值都適用。應(yīng)用于不同值時(shí),該操作符會(huì)像Number()轉(zhuǎn)型函數(shù)一樣對值進(jìn)行轉(zhuǎn)換,轉(zhuǎn)化后進(jìn)行加減1的操作。

2.一元加和減操作符
一元加和減操作符主要用于基本的算術(shù)運(yùn)算,也可以用于轉(zhuǎn)換數(shù)據(jù)類型(該操作符會(huì)像Number()轉(zhuǎn)型函數(shù)一樣對這個(gè)值進(jìn)行轉(zhuǎn)換)。

布爾操作符
布爾操作符一共有三個(gè):非(NOT)、與(AND)、或(OR)。

1.邏輯非
邏輯非操作符由一個(gè)嘆號表示(!),可以應(yīng)用于ECMAScript中的任何值。無論這個(gè)值是什么數(shù)據(jù)類型,這個(gè)操作符都會(huì)返回一個(gè)布爾值。

同時(shí)使用兩個(gè)邏輯非操作符,實(shí)際上就會(huì)模擬Boolean()轉(zhuǎn)型函數(shù)的行為

2.邏輯與
邏輯與操作符由兩個(gè)和號(&&)表示,有兩個(gè)操作數(shù)且可運(yùn)用于任何類型的操作數(shù)。邏輯與屬于短路操作,即如果第一個(gè)操作數(shù)求值結(jié)果是false,那么就不會(huì)對第二個(gè)操作數(shù)求值。
當(dāng)兩個(gè)值都為真值時(shí),結(jié)果為true。當(dāng)兩個(gè)值為一真一假時(shí),結(jié)果為false。當(dāng)兩個(gè)值都為假值時(shí),返回false。
其中一個(gè)值不是布爾值時(shí):遵循下列規(guī)則

第一個(gè)操作數(shù)為假,返回第一個(gè);

第一個(gè)操作數(shù)為真的時(shí)候,返回第二個(gè)。
如果第一個(gè)操作數(shù)是對象,則返回第二個(gè)操作數(shù)

var a = {b:1};
a && 'ss'//"ss"

如果第二個(gè)操作數(shù)是對象,則只有在第一個(gè)操作數(shù)的求值結(jié)果為true的情況下才會(huì)返回該對象

'ss' && a//Object {b: 1}

如果兩個(gè)操作數(shù)都是對象,則返回第二操作數(shù)

var c = {d:2};
c && a//Object {b: 1}

(1)如果有一個(gè)操作數(shù)是null,則返回null
(2)如果有一個(gè)操作數(shù)是NaN,則返回NaN
(3)如果有一個(gè)操作數(shù)是undefined,則返回undefinded

3.邏輯或
與邏輯與操作符相似,邏輯或操作符也是短路操作符。也就是說,如果第一個(gè)操作數(shù)的求值結(jié)果為true,就不會(huì)對第二個(gè)操作數(shù)求值了。

(1)第一個(gè)操作數(shù)為真,返回第一個(gè)
(2)第一個(gè)操作數(shù)為假,返回第二個(gè)
乘性操作符
ECMAScript定義了3個(gè)乘性操作符:乘法、除法和模

Infinity*0//NaN
0/0//NaN
Infinity/Infinity//NaN

加性操作符
1.加法(轉(zhuǎn)字符串)
兩個(gè)操作符都是數(shù)值
執(zhí)行常規(guī)的加法計(jì)算。

Infinity + -Infinity//NaN

如果有一個(gè)操作數(shù)是字符串

如果兩個(gè)操作符都是字符串,則將第二個(gè)操作符與第一個(gè)操作符拼接起來
如果只有一個(gè)操作符是字符串,則將另一個(gè)操作數(shù)轉(zhuǎn)換為字符串,然后再將兩個(gè)字符串拼接起來。
如果這個(gè)操作數(shù)是對象、數(shù)值或布爾值,則調(diào)用它們的toString()方法取得相應(yīng)的字符串值,然后再應(yīng)用前面關(guān)于字符串的規(guī)則。對于null和undefined,則分別調(diào)用String()函數(shù)并取得字符串"undefined"和"null"。

2 + '' //"2"

2.減法(轉(zhuǎn)數(shù)值)
如果兩個(gè)操作數(shù)都是數(shù)值
執(zhí)行常規(guī)的算術(shù)減發(fā)操作并返回結(jié)果,如果有一個(gè)操作數(shù)是NaN,則結(jié)果是NaN

Infinity - Infinity//NaN

如果有一個(gè)操作數(shù)不是數(shù)值

如果有一個(gè)操作數(shù)是字符串、布爾值、null或undefined,則先在后臺(tái)調(diào)用Number()函數(shù)將其轉(zhuǎn)換為數(shù)值,然后再根據(jù)前面的規(guī)則執(zhí)行減法計(jì)算。如果轉(zhuǎn)化的結(jié)果是NaN,則減法的結(jié)果就是NaN。
如果有一個(gè)操作數(shù)是對象,則調(diào)用對象的valueOf()方法以取得表示該對象的數(shù)值。如果得到的值是NaN,則減法的結(jié)果是NaN。如果對象沒有valueOf()方法則調(diào)用其toString()方法并將得到的字符串轉(zhuǎn)換為數(shù)值。

5 - true//4

關(guān)系操作符
如果兩個(gè)操作數(shù)都是數(shù)值,則執(zhí)行數(shù)值比較
如果兩個(gè)操作數(shù)都是字符串,則比較兩個(gè)字符串對應(yīng)的字符編碼值
如果一個(gè)操作數(shù)是數(shù)值,則將另一個(gè)操作數(shù)轉(zhuǎn)換為數(shù)值,然后執(zhí)行數(shù)值比較

var result = '23' < '3'//true
var result = '23' < 3//false

相等操作符
1.相等和不相等
先轉(zhuǎn)換再比較

(1)如果有一個(gè)操作數(shù)是布爾值,則在比較相等性之前,先將其轉(zhuǎn)換為數(shù)值
(2)如果有一個(gè)操作數(shù)是字符串,另一個(gè)操作數(shù)是數(shù)值,先將其轉(zhuǎn)換為數(shù)值
(3)如果有一個(gè)操作數(shù)是對象,另一個(gè)不是,則調(diào)用對象的valueOf()方法,用得到的基本類型值按前面的基本規(guī)則進(jìn)行比較
null和undefined是相等的
要比較相等性之前不能將null和undefined轉(zhuǎn)換為任何其他值
如果兩個(gè)操作數(shù)都是NaN,相等操作符也返回false,按規(guī)則,NaN不等于NaN

2.全等和不全等
僅比較而不轉(zhuǎn)換

"55" !== 55 //true

條件操作符

variable = boolean_expression ? true_value : false_value 

本質(zhì)上,這段代碼的含義就是基于對boolean_expression求值的結(jié)果,決定給變量variable賦什么值。如果求值結(jié)果為true,則給變量賦true_value;如果求值結(jié)果為false,則給變量variable賦false_value值。

賦值操作符
簡單的賦值操作符由等號表示,其作用就是把右側(cè)的值賦給左側(cè)的變量。

逗號操作符
逗號操作符多用于聲明多個(gè)變量;但除此之外,逗號操作符還用來賦值。在用于賦值時(shí),逗號操作符總會(huì)返回表達(dá)式中的最后一項(xiàng)。

相關(guān)文章

  • JavaScript學(xué)習(xí)筆記之JS事件對象

    JavaScript學(xué)習(xí)筆記之JS事件對象

    本文介紹了javascript的事件對象的相關(guān)資料,需要的朋友可以參考下
    2015-01-01
  • ES6新增關(guān)鍵字let和const介紹

    ES6新增關(guān)鍵字let和const介紹

    這篇文章介紹了ES6新增的關(guān)鍵字let和const,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • THREE.JS入門教程(1)THREE.JS使用前了解

    THREE.JS入門教程(1)THREE.JS使用前了解

    Three.js是一個(gè)偉大的開源WebGL庫,WebGL允許JavaScript操作GPU,在瀏覽器端實(shí)現(xiàn)真正意義的3D,本文介紹下THREE.JS基礎(chǔ)/瀏覽器支持/設(shè)置場景/構(gòu)建網(wǎng)格表面/材質(zhì)/光/渲染循環(huán)/通用的對象屬性等等,感興趣的朋友可以了解下哦
    2013-01-01
  • 深入學(xué)習(xí)JavaScript中的bom

    深入學(xué)習(xí)JavaScript中的bom

    Bom:瀏覽器對象模型提供了獨(dú)立于內(nèi)容而與瀏覽器窗口進(jìn)行交互的對象。描述了與瀏覽器進(jìn)行交互的方法和接口,可以對瀏覽器窗口進(jìn)行訪問和操作,下面我們來一起學(xué)習(xí)一下吧
    2019-05-05
  • JS判斷瀏覽器之Navigator對象

    JS判斷瀏覽器之Navigator對象

    JS判斷瀏覽器之Navigator對象...
    2007-01-01
  • javascript中substr,substring,slice.splice的區(qū)別說明

    javascript中substr,substring,slice.splice的區(qū)別說明

    某些情況下,負(fù)數(shù)的參數(shù)不識別.所以盡量不要用負(fù)數(shù)作參數(shù).免得瀏覽器不兼容,造成程序的出錯(cuò).
    2010-11-11
  • 對xmlHttp對象方法和屬性的理解

    對xmlHttp對象方法和屬性的理解

    客戶端可以通過xmlHttp對象(MSXML2.XMLHTTP.3.0)向http服務(wù)器發(fā)送請求并使用文檔對象模型(DOM)處理回應(yīng)。
    2011-01-01
  • form表單序列化詳解(推薦)

    form表單序列化詳解(推薦)

    這篇文章主要介紹了form表單序列化操作,通過將表單中的鍵值序列化為可提交的字符串,并附上代碼實(shí)例詳細(xì)講解了運(yùn)行之后的結(jié)果,需要的朋友可以參考下
    2017-08-08
  • javascript中的原型鏈深入理解

    javascript中的原型鏈深入理解

    要弄清楚原型鏈就要先弄清楚 function 類型,在javascript中沒有類的概念,都是函數(shù),所以它是一門函數(shù)式的編程語言
    2014-02-02
  • 詳解JavaScript閉包問題

    詳解JavaScript閉包問題

    這篇文章主要介紹了詳解JavaScript閉包問題,通過案例一步步進(jìn)行講解了該項(xiàng)技術(shù)問題,講述了變量的作用域,閉包的概念和作用,需要的朋友可以參考下
    2021-06-06

最新評論