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