JS運算符的運用

一、運算符

???????? 定義:運算符也叫做操作符,對兩個值或多個值進(jìn)行運算岩遗,并獲取運算結(jié)果的符號或者函數(shù)。(例如:type of 就是一個運算符凤瘦,通過它可以獲取一個值的類型宿礁,并且已字符串的形式返回)

(一)算數(shù)運算符

注:當(dāng)非Number類型進(jìn)行算數(shù)運算時,先將其轉(zhuǎn)換為Number類型再進(jìn)行算數(shù)運算蔬芥,NaN與任何數(shù)進(jìn)行運算值都為NaN窘拯。

(1)+:對兩個或者多個值進(jìn)行相加,并返回結(jié)果

????????? 1. 如果兩個值都為字符串坝茎,相加的結(jié)果就是字符串拼接。

?????????? 2.任何數(shù)與字符串進(jìn)行相加暇番,都先將其轉(zhuǎn)化為字符串再進(jìn)行拼接嗤放。

?????????????????????? result = true+1;//2

? ? ? ? ? ? ? ? ? ? ? ? result = null+1;//1

??????????????????????? result= "123"+1;//1231

??????????????????????? result= true+"hello";//truehello

???????????????????????? result=1+2+"3";//33

? ? ? ? ? ? ? ? ? ? ? ? ? result="1"+2+3;//123

(2)-:對兩個或者多個值進(jìn)行相減,并返回結(jié)果

??????????????????????????? result=100-true;//99

? ? ? ? ? ? ? ? ? ? ? ? ? ?? result=100-"1";//99

(3)*:對兩個或者多個值進(jìn)行相乘壁酬,并返回結(jié)果

????????????????????????????? result=2*"6";//12

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? result=2*null;//0

? ? ? ? ? ? ? ? ? ? ? ? ? ?? result=2*undefined;//NaN

(4)/:對兩個或者多個值進(jìn)行相除次酌,并返回結(jié)果

(5)%:對數(shù)值進(jìn)行取模運算,并返回結(jié)果

????????????????????????? ?? result=9%3;//0

????????????????????????????? result=9%4;//1


(二)舆乔、算數(shù)運算衍生出來的強制類型轉(zhuǎn)換岳服。

衍生轉(zhuǎn)換為Number的類型

1、變量-0可以轉(zhuǎn)化為Number

2希俩、變量*1可以轉(zhuǎn)化為Number

3吊宋、變量/1可以轉(zhuǎn)化為Number

(三)、一元運算符

(1)颜武、+對于數(shù)值來說沒有啥變化

(2)璃搜、-可以對數(shù)值進(jìn)行取反

???????????? 對于非number的值進(jìn)行取反運算時,先將其轉(zhuǎn)化為Number類型鳞上,對其進(jìn)行取反这吻,也可以通過+來進(jìn)行轉(zhuǎn)換類型其原理與Number()一樣,該屬于隱式轉(zhuǎn)換

?????????????? var result =1 + +"2" + 3;//6

(四)篙议、自增自減運算

1唾糯、自增++

? ? --使用自增可以使變量在自身的基礎(chǔ)上增加1,對于一個變量自增以后,原變量的值會立即加1

??? --自增分為兩種:后++(a++)移怯,前++(++a)

? 相同:無論時a++ 還是++a香璃,都會使原變量的值加1

? 不同:a++和++a的值不同 a++的值等于原變量的值

? ++a得值等于新值

2、自減--

? ? --使用自減可以使變量在自身的基礎(chǔ)上減1芋酌,對于一個變量自減以后增显,原變量的值會立即減1

--自增分為兩種:后--(a--),前--(--a)

? 相同:無論時a-- 還是--a脐帝,都會使原變量的值減1

? 不同:a--和--a的值不同 a--的值等于原變量的值

? --a得值等于新值

(五)同云、邏輯運算符

JS中提供了三種邏輯運算符

!非

----!可以用來對一個值進(jìn)行非運算(對布爾值進(jìn)行取反操作)

----如果對非布爾值進(jìn)行非運算堵腹,則將其轉(zhuǎn)換成布爾值炸站,然后再取反

? ? ? ? ? 所以我們可以利用該特點,來將一個其他的數(shù)值類型轉(zhuǎn)化為boolean

????????? 可以為一個任意數(shù)據(jù)類型取兩次反疚顷,來將其轉(zhuǎn)化為布爾類型

原理Boolean()函數(shù)一樣

&& 與

----&&可以對符號兩側(cè)的值進(jìn)行與運算并返回結(jié)果

----運算規(guī)則:

? ? ? ? ? ? 兩側(cè)都為true運算結(jié)果為ture

?????????? 只要有一個false運算結(jié)果就為false

----JS中的”與“屬于短路與旱易,

??????????????? 如果第一個為false則不會看第二個值

??? //var result=true && alert("我能出來嗎");后邊執(zhí)行

??? //var result=false && alert("我能出來嗎");后邊不執(zhí)行

|| 或

-----||可以對符號兩側(cè)的值進(jìn)行與運算并返回結(jié)果

----運算規(guī)則:

? ? ? ? ? ?? 兩側(cè)都為false運算結(jié)果為false

???????????? 只要有一個true運算結(jié)果就為true

----JS中的”與“屬于短路或,

???????????? 如果第一個為true則不會看第二個值

非布爾類型的情況

&&? ||---對于非布爾值進(jìn)行與或運算時

? ? ? ? 會將其轉(zhuǎn)化為布爾值腿堤,然后再運算阀坏,并且返回原值

? ? ? ---與運算

? -如果第一個值為true,則必然返回第二個值

? -如果第一個為false笆檀,則必然返回第一個值

? ? ? ---或運算

-如果第一個值為true忌堂,則必然返回第一個值

-如果第一個為false,則必然返回第二個值

? //與運算:如果兩個都為true酗洒,返回后邊的值

var result=1 && 2;

//false&&true:如果有false則返回false

result=0 && 2;

result=2 && 0;

//false&&false 兩個都為false士修,返回前邊的值

result=NaN&&0;

result=0&&NaN;

(六)賦值運算

賦值運算符

=

可以將右側(cè)值賦值給左側(cè)變量

+=

a+=5相當(dāng)于a=a+5

-=

a-=5相當(dāng)于a=a-5

*=

a*=5相當(dāng)于a=a*5

/=

a/=5相當(dāng)于a=a/5

%=

a%=5相當(dāng)于a=a%5

(七)關(guān)系運算符

?通過關(guān)系運算符可以比較兩個值之間的大小關(guān)系

如果關(guān)系成立他會返回true,如果關(guān)系不成立就返回false

?>大于號

? ---判斷符號左側(cè)的值是否大于右側(cè)的值

?? 如果關(guān)系成立他會返回true樱衷,如果關(guān)系不成立就返回false

? >=大于等于

? ---判斷符號左側(cè)的值是否大于或等于右側(cè)的值

?? 如果關(guān)系成立他會返回true棋嘲,如果關(guān)系不成立就返回false

? <小于號

? ---判斷符號左側(cè)的值是否小于右側(cè)的值

? ? 如果關(guān)系成立他會返回true,如果關(guān)系不成立就返回false

<=小于等于

? ---判斷符號左側(cè)的值是否小于或等于右側(cè)的值

?? 如果關(guān)系成立他會返回true矩桂,如果關(guān)系不成立就返回false


? 非數(shù)值的類型

? --對于非數(shù)值進(jìn)行比較時沸移,先將其轉(zhuǎn)化為數(shù)字,再進(jìn)行比較

? --如果兩側(cè)都為字符串時耍鬓,不會將其轉(zhuǎn)換城數(shù)字進(jìn)行比較

? 而會分別比較字符串中自符的unicode編碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阔籽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子牲蜀,更是在濱河造成了極大的恐慌笆制,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涣达,死亡現(xiàn)場離奇詭異在辆,居然都是意外死亡证薇,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門匆篓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浑度,“玉大人,你說我怎么就攤上這事鸦概÷嵴牛” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵窗市,是天一觀的道長先慷。 經(jīng)常有香客問我,道長咨察,這世上最難降的妖魔是什么论熙? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮摄狱,結(jié)果婚禮上脓诡,老公的妹妹穿的比我還像新娘。我一直安慰自己媒役,他們只是感情好祝谚,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著酣衷,像睡著了一般踊跟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸥诽,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音箕憾,去河邊找鬼牡借。 笑死,一個胖子當(dāng)著我的面吹牛袭异,可吹牛的內(nèi)容都是我干的钠龙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼御铃,長吁一口氣:“原來是場噩夢啊……” “哼碴里!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起上真,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤咬腋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后睡互,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體根竿,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡陵像,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了寇壳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片醒颖。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖壳炎,靈堂內(nèi)的尸體忽然破棺而出泞歉,到底是詐尸還是另有隱情,我是刑警寧澤匿辩,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布腰耙,位于F島的核電站,受9級特大地震影響撒汉,放射性物質(zhì)發(fā)生泄漏沟优。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一睬辐、第九天 我趴在偏房一處隱蔽的房頂上張望挠阁。 院中可真熱鬧,春花似錦溯饵、人聲如沸侵俗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽隘谣。三九已至,卻和暖如春啄巧,著一層夾襖步出監(jiān)牢的瞬間寻歧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工秩仆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留码泛,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓澄耍,卻偏偏與公主長得像噪珊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子齐莲,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355