摘要:復(fù)合賦值運(yùn)算符通過的形式表示,表示算術(shù)運(yùn)算符。含有的運(yùn)算都為和都不等于,邏輯運(yùn)算符邏輯運(yùn)算符通常用于布爾值的操作,一般和關(guān)系運(yùn)算符配合使用,有三個(gè)邏輯運(yùn)算符邏輯與邏輯或邏輯非。無論這個(gè)值是什么數(shù)據(jù)類型,這個(gè)運(yùn)算符都會返回一個(gè)布爾值。
運(yùn)算符 一元運(yùn)算符
只能操作一個(gè)值的運(yùn)算符叫做一元運(yùn)算符
//后取值 先執(zhí)行運(yùn)算, 再取值 //前取值 先取值, 再執(zhí)行運(yùn)算 前自加: var x=5; var num1=++x; // 相當(dāng)于x=x+1; var num1=x; console.log("num1="+num1+" x="+x); //num1=6 x=6 后自加: var x=5; var num2=x++; // 相當(dāng)于 var num2=x; x=x+1; console.log("num2:"+num2+" x:"+x); //num2=5 x=6 前自減: var x=5; var num3=--x; //相當(dāng)于 x=x-1; var num3=x; console.log("num3="+num3+" x="+x); //num3=4 x=4 后自減 var x=5; var num4=x--; //相當(dāng)于 var num4=x; x=x-1; console.log("num4="+num4+" x="+x); //num4=5 x=4
其他類型應(yīng)用一元運(yùn)算符的規(guī)則
var b = "89"; b++; //90,數(shù)值字符自動轉(zhuǎn)換成數(shù)值 var b= "ab"; b++; //NaN,字符串包含非數(shù)值轉(zhuǎn)成NaN var b = false; b++; //1,false轉(zhuǎn)成數(shù)值0,累加就是1 var b = 2.3; b++; //3.3,直接加1賦值運(yùn)算符
賦值運(yùn)算符用等于號(=)表示,就是把右邊的值賦給左邊的變量。
復(fù)合賦值運(yùn)算符通過 x=的形式表示,x 表示算術(shù)運(yùn)算符。
如: +=, -=, *=, /=, %=等
= 等于 x=2; += 加等于 x+=3; 等同于x=x+3; -= 減等于 x-=3; 等同于x=x-3; *= 乘等于 x*=3; 等同于x=x*3; -= 除等于 x/=3; 等同于x=x/3; %= 余等于 x%=3; 等同于x=x%3;關(guān)系運(yùn)算符
用于進(jìn)行比較的運(yùn)算符稱作為關(guān)系運(yùn)算符
關(guān)系運(yùn)算符的比較規(guī)則:
數(shù)字和數(shù)字比較, 直接比較大小
數(shù)字和字符串比較, 字符串轉(zhuǎn)換為數(shù)字后再比較
字符串和字符串比較, 進(jìn)行字符的ASCII碼值比較
比較注意事項(xiàng):
布爾值 ture=1, false=0
含有NaN的運(yùn)算都為false,undefined 和null 都不等于0或者flase
如果要恒等, 則必須值和類型都要相等;
> 大于 若左邊數(shù)據(jù)大于右邊數(shù)據(jù),返回 true,否則返回 false。 3>2 //true < 小于 若左邊數(shù)據(jù)小于右邊數(shù)據(jù),則返回布爾值true,否則返回false。 2<3 //true >= 大于等于 若左邊數(shù)據(jù)大于或等于右邊數(shù)據(jù),返回 true,否則返回 false。 2>=2 //true 3>=2 //true <= 小于等于。若左邊數(shù)據(jù)小于或等于右邊數(shù)據(jù),返回 true,否則返回 false。 2<=2 //true 2<=3 //true == 相等 若兩數(shù)據(jù)大小相等,返回 true,否則返回 false 2==2 //true 2=="2" //true != 不等 若兩數(shù)據(jù)大小不相等,返回 true,否則返回 false。 2!=5 //true === 全等(恒等) 若兩數(shù)據(jù)大小和數(shù)據(jù)類型都相等,返回 true,否則返回 false。 55==="55" //false 55===55 //true !== 不全等(不恒等) 若兩數(shù)據(jù)大小或數(shù)據(jù)類型不相等,返回 true,否則返回 false。 55!=="55" //true 55!==55 //false=0 布爾值 ture=1, false=0 false == 0 //true true == 1 //true true == 2 //false undefined 是派生自 null 的,兩個(gè)數(shù)據(jù)大小相等,數(shù)據(jù)類型不等。 null == undefined //true null === undefined //false 含有NaN的運(yùn)算都為false "NaN" == NaN //false 5 == NaN //false NaN == NaN //false undefined 和null 都不等于0,flase null == 0 //false null == false //false undefined == 0 //false undefined == false //false邏輯運(yùn)算符
邏輯運(yùn)算符通常用于布爾值的操作,一般和關(guān)系運(yùn)算符配合使用,有三個(gè)邏
輯運(yùn)算符: 邏輯與&&(AND)、邏輯或||(OR)、邏輯非!(NOT)。
&& 邏輯與:
如果第一個(gè)操作數(shù)返回是 false,第二個(gè)數(shù)不管是true還是false都會返回false。
即符號兩邊的操作數(shù)為真,返回true,否則返回false。
var flag=(true) && (true) //true var flag=(false) && (true) //false var flag=(false) && (false) //false
|| 邏輯或:
如果第一操作數(shù)的求值結(jié)果為 true,第二個(gè)數(shù)不管是true還是false都會返回true。
即符號兩邊的操作數(shù)同時(shí)為假,返回false,否則返回true。
var flag=(false) || (false) //false var flag=(true) || (true) //true var flag=(true) || (false) //true
! 邏輯非:
邏輯非運(yùn)算符可以用于任何值。無論這個(gè)值是什么數(shù)據(jù)類型,這個(gè)運(yùn)算符都會返
回一個(gè)布爾值。它的流程是:先將這個(gè)值轉(zhuǎn)換成布爾值,然后取反,規(guī)則如下:
操作數(shù)為真,返回false,否則返回true var flag=!(true); //false var flag=!(false); //true 操作數(shù)是一個(gè)空字符串, 返回true; 非空字符串, 返回false var flag=!("") //true var flag=!("test") //false 操作數(shù)是數(shù)值0, 返回true; 任意非0數(shù)值(包括 Infinity),返回false var flag=!(0) //true var flag=!(1) //false 操作數(shù)是NaN, 返回true var flag=!(NaN) //true 操作數(shù)是undefined, 返回true var flag=!(undefined) //true字符串運(yùn)算符
字符串運(yùn)算符: 字符串運(yùn)算符只有一個(gè),即:“+”。
它的作用是將兩個(gè)字符串相加。 規(guī)則:至少一個(gè)操作數(shù)是字符串
var result1="hello"+"world"; // 兩個(gè)都是字符串, 直接連接兩個(gè)字符串 console.log(result1); //helloworld console.log(typeof result1); //如果其中有一個(gè)是字符串, 另一個(gè)是其他類型, 則會先將其他的類型強(qiáng)制轉(zhuǎn)換成字符,然后再連接 var result2="hello"+2; console.log(result2); //hello2 console.log(typeof result2);三目運(yùn)算符(三元條件運(yùn)算符)
三目運(yùn)算符(三元條件運(yùn)算符): 表達(dá)式 ? 值1 : 值2
如果表達(dá)式的值為true,則結(jié)果取值1。否則為值2
語法為:(如果條件表達(dá)式的值為true,則結(jié)果取值1。否則為值2。) 條件表達(dá)式 ? 值1 : 值2 var age=11; var status = (age >= 18) ? "major" : "minor"; 當(dāng)age大于等于18的時(shí)候,語句將第一個(gè)值“major”賦值給status;否則將第二個(gè)值“minor”賦值給status。運(yùn)算符的優(yōu)先級
| 運(yùn)算符 |描述 |
| ------------- |:-------------: |
| . [] () |對象成員存取、數(shù)組下標(biāo)、函數(shù)調(diào)用等 |
| ++ -- ~ ! delete new typeof void |一元運(yùn)算符 |
|* / % |乘法、除法、求余|
|+ - +|加法、減法、字符串連接|
|<< >> >>>|移位|
|< <= > >= instanceof |關(guān)系比較、檢測類實(shí)例|
|== != === !==| 恒等(全等)|
|& |位與|
|^ | 位異或|
| | |位或 |
|&& |邏輯與|
| |||邏輯或|
|?:|三元條件|
|= x= |賦值、運(yùn)算賦值|
|= x= |賦值、運(yùn)算賦值|
|, |多重賦值、數(shù)組元素|
表達(dá)式是javascript中的一個(gè)短語,表達(dá)式指的是可用于計(jì)算的式子,即可能產(chǎn)生一個(gè)值的式子。
變量名也是一種簡單的表達(dá)式,它的值就是賦值給變量的值。
復(fù)雜的表達(dá)式由運(yùn)算符和操作數(shù) (變量或常量) 組成的式子
算術(shù)運(yùn)算符組成的式子叫算術(shù)表達(dá)式
關(guān)系運(yùn)算符組成的式子叫關(guān)系表達(dá)式或者條件表達(dá)式
邏輯運(yùn)算符組成的式子叫做邏輯表達(dá)式
如:2+3;a+5;c>3; a&&b等
JavaScript有三種基本的流程控制結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),流程控制是用來控制代碼的執(zhí)行順序。
JavaScrip在順序結(jié)構(gòu)中可以包含選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)
順序結(jié)構(gòu):
指按照語句出現(xiàn)的先后順序依次執(zhí)行
選擇結(jié)構(gòu):
指按照給定的邏輯條件來決定執(zhí)行順序。
選擇結(jié)構(gòu)可以分為單向選擇、雙向選擇和多向選擇。但無論是單向還是多向選擇,程序在執(zhí)行過程中都只能執(zhí)行其中一條分支。
循環(huán)結(jié)構(gòu)
指根據(jù)代碼的邏輯條件來判斷是否重復(fù)執(zhí)行某一段程序。若邏輯條件為true,則重復(fù)執(zhí)行,即進(jìn)入循環(huán),否則結(jié)束循環(huán)。
循環(huán)結(jié)構(gòu)可以先判斷邏輯條件,也可以先執(zhí)行循環(huán)體
if單支語句if條件判斷語句的寫法: if(表達(dá)式){ 執(zhí)行語句 }
當(dāng)括號內(nèi)的表達(dá)式結(jié)果成立( 為true 時(shí)) ,則執(zhí)行大括號內(nèi)的語句,否則不執(zhí)行。
注意:
if后面的()不能省略。
一條執(zhí)行語句可以省略{}, 多條時(shí)不能省略{}, 建議不管是一條還是多條都寫上{}
if雙分支語句的寫法:if(表達(dá)式){ 執(zhí)行語句1 } else{ 執(zhí)行語句2 }
當(dāng)if 括號內(nèi)的表達(dá)式結(jié)果成立,執(zhí)行執(zhí)行語句1 ,否則執(zhí)行執(zhí)行語句2;
注意:else語句必須和if語句搭配出現(xiàn)使用if多分支語句
if多分支語句的寫法:
if(表達(dá)式){ 執(zhí)行語句1 } else if(表達(dá)式2){ 執(zhí)行語句2 } else if(表達(dá)式3){ 執(zhí)行語句3 } else{ 執(zhí)行語句n }
從上往下,滿足哪個(gè)條件就執(zhí)行其相對應(yīng)的語句,都不滿足時(shí),執(zhí)行最后的else
的語句,只能進(jìn)入其中之一。
將整個(gè)if語句塊插入另一個(gè)if語句塊中
if (表達(dá)式1) { if (表達(dá)式2) { if (表達(dá)式3){ 語句; } else{ 語句; } } else{ 語句; } }
注意: 嵌套if時(shí),最好不要超過三層; 內(nèi)層的每一對if...else代碼要縮進(jìn)且對
齊;編寫代碼時(shí),else要與最近的if配對。
需求:
輸出不同年齡段的稱呼:
少年:18周歲以下,青年:18周歲至40周歲,中年:40周歲至60周歲,老年:60周歲以上
嬰兒[0歲-1歲)、幼童[1歲-4歲)、小童[4歲-7歲),中童[7歲-13歲)、
大童[13歲-18歲),成年人等于18歲
用于基于不同的條件來執(zhí)行不同的動作,如果有多個(gè)條件,可以使用嵌套的if語句來解決,但這種方法會增加程序的復(fù)雜度,降低程序的可讀性。
//n可以是變量/表達(dá)式,將n的值與常量a1、a2、……比較,若n與其中某個(gè)值相等時(shí),執(zhí)行相應(yīng)數(shù)據(jù)后面的語句,且當(dāng)遇到關(guān)鍵字break時(shí),程序跳出switch結(jié)構(gòu);若找不到與n相等的值,則執(zhí)行關(guān)鍵字default下面的語句。 switch(n) { case a1: 執(zhí)行代碼塊 1 break; case a2: 執(zhí)行代碼塊 2 break; default: 與 case a1 和 case a2 不同時(shí)執(zhí)行的代碼 }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/100690.html
摘要:本文章記錄本人在深入學(xué)習(xí)條件表達(dá)式中看書理解到的一些東西,并且整理記錄下來,加深記憶和方便之后的復(fù)習(xí)。表達(dá)式的值具有線性特征,如對連續(xù)的區(qū)間值進(jìn)行判斷。 本文章記錄本人在深入學(xué)習(xí)js條件表達(dá)式中看書理解到的一些東西,并且整理記錄下來,加深記憶和方便之后的復(fù)習(xí)。主要是深入學(xué)習(xí)if else和switch語句的一些性能優(yōu)化和邏輯思維。 提高條件性能的策略 js的條件表達(dá)式和其他語言一樣...
摘要:如果條件為,則邏輯非運(yùn)算符將得到進(jìn)行邏輯判斷的順序?yàn)閺淖蟮接摇T俅螜z測布爾表達(dá)式。其作用域限定在循環(huán)語句塊,其值與此時(shí)數(shù)組元素的值相等。 運(yùn)算符和邏輯控制 運(yùn)算符 java中的運(yùn)算符可以分為以下幾種: 算符運(yùn)算符 關(guān)系運(yùn)算符 位運(yùn)算符 邏輯運(yùn)算符 賦值運(yùn)算符 三目運(yùn)算符 算符運(yùn)算符 操作符 描述 + 加法 - 減法 * 乘法 / 除法 % 取余(模) ...
摘要:插入迭代器如前面兩條語句可以寫成使用直接量替換為替換為替換為如果要?jiǎng)?chuàng)建具有一些特性的一般對象,也可以使用字面量,如下前面的代碼可用對象字面量來改寫成這樣使用優(yōu)化多次一旦需要更新請考慮使用文檔碎片來構(gòu)建結(jié)構(gòu),然后再將其添加到現(xiàn)存的文檔中。 好贊,收藏自 總結(jié)的js性能優(yōu)化方面的小知識(不喜勿噴) 前言 一直在學(xué)習(xí)javascript,也有看過《犀利開發(fā)Jquery內(nèi)核詳解與實(shí)踐》,對...
摘要:當(dāng)用戶滾動頁面時(shí),合成線程會通知主線程更新頁面中最新可見部分的位圖。但是,如果主線程響應(yīng)地不夠快,合成線程不會保持等待,而是馬上繪制已經(jīng)生成的位圖,還沒準(zhǔn)備好的部分用白色進(jìn)行填充。 動畫做多了,自然就要考慮性能,我打算出一個(gè)系列的日志,詳細(xì)的講解一下網(wǎng)頁動畫性能相關(guān)的知識,如果你已經(jīng)可以運(yùn)用css3 canvas來做動畫,可以來參考一下。 目前我做的最復(fù)雜的動畫就是360搜索中PC端的...
摘要:系列文章工匠善用變量改善代碼質(zhì)量序言編寫條件分支代碼是編碼過程中不可或缺的一部分。而進(jìn)行條件分支判斷時(shí)用到的也是這個(gè)值重點(diǎn)來了,雖然所有用戶類實(shí)例的布爾值都是真。 歡迎大家前往騰訊云+社區(qū),獲取更多騰訊海量技術(shù)實(shí)踐干貨哦~ 本文由鵝廠優(yōu)文發(fā)表于云+社區(qū)專欄 作者:朱雷 | 騰訊IEG高級工程師 『Python 工匠』是什么? 我一直覺得編程某種意義是一門『手藝』,因?yàn)閮?yōu)雅而高效的代碼...
閱讀 2801·2021-09-23 11:44
閱讀 1689·2021-09-13 10:24
閱讀 2641·2021-09-08 09:36
閱讀 1242·2019-08-30 15:54
閱讀 2267·2019-08-30 13:54
閱讀 3325·2019-08-30 10:57
閱讀 1863·2019-08-29 18:43
閱讀 3629·2019-08-29 15:10