日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Js整理备忘(02)——运算符

發(fā)布時(shí)間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Js整理备忘(02)——运算符 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、運(yùn)算符的表示以及優(yōu)先級

Javascript(以下簡寫為Js)的大部分運(yùn)算符與C或Java是類似的。

記得剛學(xué)C語言時(shí)老師講的優(yōu)先級口訣,非常好記:“括、單、算、移、關(guān)”“位、邏、條、賦、逗”,此處也可以套用一下,便于記憶。

(1)標(biāo)點(diǎn)符號表示,比較普遍,略。

(2)用關(guān)鍵字表示,和一般的運(yùn)算符一樣,都是正則運(yùn)算符,只是更具有可讀性,此處詳細(xì)列出幾個(gè)。

delete:用于刪除指定的對象的屬性、數(shù)組元素或變量;結(jié)合性:R;運(yùn)算數(shù)類型:lvalue

typeof:用于返回?cái)?shù)據(jù)類型;結(jié)合性:R;運(yùn)算數(shù)類型:任意

void:用于返回未定義的值;結(jié)合性:R;運(yùn)算數(shù)類型:任意

以上三個(gè)屬于一元運(yùn)算符,也叫單目運(yùn)算符(即口訣中的“單”),運(yùn)算數(shù)只有一個(gè)

instenceof:用于檢查對象類型;結(jié)合性:L;運(yùn)算數(shù)類型:對象,構(gòu)造函數(shù)

in:用于檢查對象的某個(gè)屬性是否存在;結(jié)合性:L;運(yùn)算數(shù)類型:字符串(屬性名),對象

以上兩個(gè)屬于關(guān)系運(yùn)算符(即口訣中的“關(guān)”)

注意:

lvalue:上面提到運(yùn)算符delete的運(yùn)算數(shù)類型是lvalue,lvalue指的是能夠合法出現(xiàn)在一個(gè)賦值表達(dá)式左邊的表達(dá)式。Js中變量、對象的屬性、數(shù)組的元素都是lvalue型的

結(jié)合性(associativity):一元運(yùn)算符、賦值運(yùn)算符、三元條件運(yùn)算符結(jié)合性是R,從右到左進(jìn)行運(yùn)算。

?

2、部分運(yùn)算符的使用說明

如果運(yùn)算數(shù)非數(shù)字,則運(yùn)算前都會先嘗試將其自動轉(zhuǎn)換為數(shù)字,這是算術(shù)運(yùn)算過程中的通用特性。

(1)除法運(yùn)算符(/)

Js中所有數(shù)字都是浮點(diǎn)型,這一點(diǎn)跟區(qū)分整數(shù)和浮點(diǎn)數(shù)的程序語言不同,如5/2結(jié)果是2.5,而不是2

除數(shù)為0的結(jié)果是正無窮大(Infinity)或者負(fù)無窮大(-Infinity),而0/0結(jié)果則是特殊值NaN

(2)模運(yùn)算符(%)

取模運(yùn)算通常都是整數(shù),但Js中也適用于浮點(diǎn)數(shù),如-4.3%2.1=-0.1

(3)=、==和===

為了區(qū)別,可將“=”讀作“得到或賦予”;“==”讀作“等于”;“===”讀作“完全等同”。

==與===用于比較兩個(gè)運(yùn)算數(shù)是否相等

相同點(diǎn):

Js中,數(shù)字、字符串、布爾值使用的都是值(value)比較,值相等則相等或等同。

比較對象、數(shù)組、函數(shù)時(shí)使用引用(reference),若兩個(gè)變量引用同一個(gè)對象,則兩變量才相等。也就是說兩個(gè)數(shù)組無論如何也不會相等,即使他們存放的元素完全相同。

NaN不與任何一個(gè)值(包括NaN本身)相等或等同,檢測一個(gè)值是否是NaN,可用全局函數(shù)isNaN()。

不同點(diǎn):

===

==

類型不同,則不等同(!==)類型不同,仍然可能相等
?? 如一個(gè)是null,一個(gè)是undefined,則兩者相等
?? 若兩者轉(zhuǎn)換后的值(value)相等,則返回true
?? 若一個(gè)是對象,另一個(gè)是數(shù)字或者字符串,則會先將對象轉(zhuǎn)換為原始類型的值。Js核心語言內(nèi)部通常先嘗試valueof()轉(zhuǎn)換,再嘗試toString()轉(zhuǎn)換;但是對于Date類,則先執(zhí)行toString()轉(zhuǎn)換。

(4)比較運(yùn)算符

比較運(yùn)算符只能在數(shù)字或字符串上執(zhí)行,所以不是數(shù)字或字符串的運(yùn)算數(shù)將會先轉(zhuǎn)換成數(shù)字或字符串。

當(dāng)字符串與數(shù)字比較時(shí),先轉(zhuǎn)換成數(shù)字,再執(zhí)行數(shù)字比較。

(5)in 運(yùn)算符

二元運(yùn)算符,要求左邊運(yùn)算數(shù)是一個(gè)字符串,或可以轉(zhuǎn)化為字符串,右邊運(yùn)算數(shù)是一個(gè)對象或數(shù)組。

如果左邊字符串是右邊對象的一個(gè)屬性名,則返回true

(6)instenceof 運(yùn)算符

二元運(yùn)算符,要求左邊運(yùn)算數(shù)是一個(gè)對象,右邊運(yùn)算數(shù)是對象類的對象名。

如果左邊的對象是右邊對象名的一個(gè)實(shí)例,則返回true

(7)邏輯&&、||、!

常用于執(zhí)行布爾代數(shù),另外

“||” 也可以這么使用:var max=width||height||500;這一用法通常是選取一組備選值中第一個(gè)定義并且非空的值。

“!”對任何值x應(yīng)用兩次都可以將該值轉(zhuǎn)換為一個(gè)布爾值。

(8)typeof 運(yùn)算符

一元運(yùn)算符,返回運(yùn)算數(shù)的類型

若運(yùn)算數(shù)是數(shù)字、字符串或布爾值,返回“number”、“string”或“boolean”

若運(yùn)算數(shù)是對象、數(shù)組或null,返回“object”(運(yùn)算數(shù)是Number、String或Boolean這樣的包裝對象時(shí),也返回“object”)

若運(yùn)算數(shù)是函數(shù),返回“function”

若運(yùn)算數(shù)是未定義的,返回“undefined”。

由此可見,typeof不能區(qū)別兩種不同的對象類型,若要區(qū)別,須使用其他方法,如使用 instenceof 運(yùn)算符或 constructor 屬性(Object.constructor后面介紹)。

(9)delete 運(yùn)算符

一元運(yùn)算符,刪除指定的對象的屬性、數(shù)組元素或變量;刪除成功則返回true,刪除失敗返回false。

一些例子:

<script type="text/javascript">n = 123;var p = { x: 1, y: 2 };document.write(delete n); //truedocument.write(delete p.x); //true,刪除對象p的屬性xdocument.write(typeof p.x); //undefined,屬性x已經(jīng)被刪除,不再存在document.write(delete p); //false,var語句聲明的變量不能被刪除document.write(delete o); //true, o不存在document.write(delete "a"); //true, ECMAScript標(biāo)準(zhǔn)規(guī)定,若delete的運(yùn)算數(shù)不是屬性、數(shù)組、或變量時(shí),返回true </script>

注意:delete影響的只是屬性值,并不影響被這些屬性引用的對象。

var o = new Object(); o.e1 = new Date(); //屬性e1是對對象Date()的引用 o.e2 = o.e1; //屬性e2也是對Date()的引用 delete o.e1; //只刪除o的屬性e1,對Date()對象沒有任何影響。 document.write(o.e2); //e2屬性此時(shí)仍然引用Date()對象

?

(10)數(shù)組和對象的存取運(yùn)算符——“[]”和“.”

“.”要求左邊運(yùn)算數(shù)是一個(gè)對象,右邊運(yùn)算數(shù)是一個(gè)標(biāo)識符(即對象的屬性名或方法的直接量名)。若該對象中沒有指定的屬性,則返回undefined

“[]”用于存取數(shù)組元素,也可用于存取對象的屬性。

注意:當(dāng)“[]”用于關(guān)聯(lián)數(shù)組時(shí),由于屬性名動態(tài)生成,所以不能使用運(yùn)算符“.”,只能使用“[]”。

例如在使用for/in遍歷對象屬性時(shí),for(f in o){ document.write(o[f]);} ,不能使用o.f,此處f只是變量而不是o的標(biāo)識符。

轉(zhuǎn)載于:https://www.cnblogs.com/gppblog/archive/2010/01/11/1644123.html

總結(jié)

以上是生活随笔為你收集整理的Js整理备忘(02)——运算符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。