JavaScript表達式和運算符 —— 基礎語法(4)

来源:https://www.cnblogs.com/beimingdaoren/archive/2020/04/24/12757778.html
-Advertisement-
Play Games

JavaScript基礎語法(4) 運算符 運算符用於將一 個或者多個值變成結果值。 使用運算符的值稱為操作數,運算符和操作數的組合稱為表達式 JS中的運算符可以分成下麵幾類: 算術運算符 邏輯運算符 比較運算符 字元串運算符 位操作運算符 賦值運算符 條件運算符 一、算數運算符 算數運算符是最簡單 ...


JavaScript基礎語法(4)

運算符

運算符用於將一 個或者多個值變成結果值。

使用運算符的值稱為操作數,運算符和操作數的組合稱為表達式

JS中的運算符可以分成下麵幾類:

  1. 算術運算符
  2. 邏輯運算符
  3. 比較運算符
  4. 字元串運算符
  5. 位操作運算符
  6. 賦值運算符
  7. 條件運算符

一、算數運算符

算數運算符是最簡單,也是最常見的運算符,就是加減乘除...

運算符 表達式 說明 示例
+ x + y 返回x加y的值 x=5 + 2,結果為7    
- x - y 返回x加y的值 x=5 - 2,結果為3
* x * y 返回x乘以y的值 x=5 * 2,結果為10
/ x / y 返回x除以y的值(取商) x=5 / 2,結果為2
% x % y 返回x除以y的模(取餘) x=5 % 2,結果為1
++ x++; ++x  返回數值遞增;遞增並返回數值 5++;++5,結果為5; 6
-- x--; --x 返回數值遞減;遞減並返回數值 5--;--5,結果為5;4

這裡註意:

 

  • x++ 是將自身的值賦給變數,之後自身再加1;也就是先執行當前的代碼,完了之後加1,x--同理。
  • ++x 是將自身+1 後的值賦給變數,同時自身加1;也就是先加1,然後執行後面的代碼,--x同理。

 

 

二、邏輯運算符

運算符 表達式 說明 示例
&& 表達式1 && 表達式2 與,若2個表達式值都為true,返回true,否則返回false

5>1 && 5<10 返回true

5>1 && 5>10 返回false

|| 表達式1 || 表達式2 或,若2個表達式值都為false,返回false,否則返回true

5>1 || 5>10 返回true

5<1 || 5>10 返回false

! !表達式 非,若表達式值為false,返回true,否則返回false

!(5>1) 返回false

!(5<1) 返回true

 

三、比較運算符

運算符 表達式 說明 示例
== 表達式1 == 表達式2 等於,判斷左右兩邊表達式是否相等

age == 18

//比較age是否等於18

!= 表達式1 != 表達式2 不等於,判斷左右兩邊表達式是否不相等

age != 18

//比較age是否不等於18

> 表達式1 > 表達式2 大於,判斷左邊表達式是否大於右邊表達式

age > height 

//比較age是否大於height

< 表達式1 < 表達式2 小於,判斷左邊表達式是否小於右邊表達式

age < height 

//比較age是否小於height

>= 表達式1 >= 表達式2 大於等於,判斷左邊表達式是否大於等於右邊表達式

age >= height

//比較age是否大於等於height

<= 表達式1 <= 表達式2 小於等於,判斷左邊表達式是否小於等於右邊表達式

age <= height

//比較age是否小於於等於height

註意:

  • 比較運算符的結果是布爾值
  • = 是賦值運算符,== 是比較運算符別弄混了,北冥曾弄混過,被老師扣分老慘(~.~)

 

四、字元串連接符

就一個“+”,對兩個或者多個字元串進行連接的操作。

var str1="beiming":
var str2="love";
var str4=str1+str2 ;//結果為" beiminglove"
var str5=str1+" "+str2 ;//結果為"beiming love"
var a="5", b="20", c=a+b;//c 的結果為"520"
var A=5,B=20,C=A+B;//C的結果為25

 

註意:當+號操作的是字元串型時,表示鏈接字元串,操作數值型時,做加法運算。

 

五、位運算符

位操作符,是對數值的二進位位進行操作,如做左移,右移等等。

運算符 表達式 說明
& 表達式1 & 表達式2 當兩個表達式的值都為true時返回1,否則返回0
| 表達式1 | 表達式2 當兩個表達式的值都為false時返回0,否則返回1
^ 表達式1 ^ 表達式2 兩個表達式中有且只有一個為false時返回1,否則返回0
<< 表達式1 << 表達式2 將表達式1向左移表達式2指定的位數
>> 表達式1 >> 表達式2 將表達式1向右移表達式2指定的位數
>>> 表達式1 >>> 表達式2 將表達式1向右移表達式2指定的位數,空位補0
~ ~表達式 將表達式的值按二進位逐位取反
console.log(true & true);//結果:1
console.log(false | false);//結果:0
console.log(true ^ false);//結果:1

 

這裡可以參考進位與轉換:https://www.cnblogs.com/beimingdaoren/p/12771047.html

console.log(1 >> 1);
//這裡我們以8bt為例,首位表符號(0表正數1表負數)
//1的二進位源碼為00000001,右移1位後:00000000,結果為0

console.log(1 << 1);
//1的二進位源碼為00000001,左移1位後:00000010,結果為2

console.log(2 >>> 1);
//2的二進位源碼為00000010,左移1位並且空位補0後:00000001,結果為1
//處理正數與>>差不多,但是處理負數時,使用補碼形式就有很大區別

console.log(~1);
//1的源碼:00000001,~逐位取反後:100000010,結果為~2
//位非運算實際上就是對數字進行取負運算,再減 1。

 

 

七、賦值運算符

運算符 表達式 說明
= 變數 = 表達式 將表達式值賦予變數
+= 變數 += 表達式 將表達式值與變數值執行+加法操作後賦予變數
-= 變數 -= 表達式 將表達式值與變數值執行-減法操作後賦予變數
*= 變數 *= 表達式 將表達式值與變數值執行*乘法操作後賦予變數
/= 變數 /= 表達式 將表達式值與變數值執行/除法操作後賦予變數
%= 變數 %= 表達式 將表達式值與變數值執行%取餘法操作後賦予變數  
<<= 變數 <<= 表達式 對變數按表達式的值向左移
>>= 變數 >>= 表達式 對變數按表達式的值向右移
>>>=  變數 >>>= 表達式 對變數按表達式的值向右移,空位補0
&= 變數 &= 表達式 將表達式的值與變數執行&操作後賦予變數
|= 變數 |= 表達式 將表達式的值與變數執行|操作後賦予變數
^= 變數 ^= 表達式 將表達式的值與變數執行^操作後賦予變數

 

八、條件運算符

條件運算符也叫三目運算符

語法:

條件表達式? 值1 : 值2;

例子:

console.log(2>1 ? "2>1為真" : "2<1位假");//結果:2>1為真
console.log(1>2 ? "1>2為真" : "1<2位假");//結果:1>2為假

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 目錄:andorid jar/庫源碼解析 Butterknife: 作用: 用於初始化界面控制項,控制項方法,通過註釋進行綁定控制項和控制項方法 慄子: public class MainActivity extends AppCompatActivity { @BindView(R.id.btnTest1 ...
  • Soul app是我司的競品,對它的語音音樂播放同步聯動的邏輯很感興趣,於是就開啟了一波逆向分析。 下麵看代碼,以及技術分析,直接步入正軌,哈哈。 我們根據https://github.com/xingstarx/ActivityTracker 這個工具,找到某一個頁面,比如cn.soulapp.a ...
  • 最近重讀了AFNetworking 3.x的源碼,算是溫故而知新吧。也梳理了一些優秀的代碼細節和麵試考點,羅列下來,發現這個庫小而精緻,簡直初學者的寶藏庫。 開源庫怎麼看? 先說個題外話,閱讀優質的開源代碼庫,絕對是程式員們快速提升自我的有效途徑,而怎樣高效率的去閱讀源碼同樣也是一個問題,不知道有沒 ...
  • 目錄:andorid jar/庫源碼解析 Dagger、Dagger2: 作用: 1、用於解耦Activity和業務邏輯 2、在使用業務的時候,不需要重覆編寫new代碼。 3、當業務變化的時候,不需要對所有的UI,進行修改。 4、便於測試,和正式,替換指定Module即可。 慄子: 需要: 1、定義 ...
  • 項目啟動優化是每個APP都可以接入的技術,只不過針對不同的業務邏輯我們需要有不一樣的解決方案,因為有大部分人的“優化”,是在處理自己放蕩不羈的代碼。 既然這裡我們要討論啟動優化,那麼我們從啟動檢測開始。啟動檢測一般我們會以main函數作為分割點,main之前和main之後。 main之前稱為per- ...
  • 目錄:andorid jar/庫源碼解析 EventBus: 作用: 用於不同Activity,Service等之間傳遞消息(數據)。 慄子: A頁面:onCreate定義 EventBus.getDefault().register(this); onDestroy定義 EventBus.getD ...
  • 所謂懶載入就是在圖片進入 *可視區域* 前,用 *同一張* 圖片作為圖片的 src 屬性值,這樣可減少請求及帶寬。懶載入的重點是:判斷元素是否進入可視區域?元素距離文檔頂部高度(這個值固定不變) - 整個文檔被滾動高度(瀏覽器滾動條向下滾動高度) <= 可視高度,表示元素進入可視區域Demo: <! ...
  • + 作用:通過指定函數對數組進行處理,並將處理後的結果以新數組的形式返回 + 註意點:不會改變原數組,只是將處理後的結果以新數組的形式返回 + 參數:該方法可以接收兩個參數 + 第一個參數是函數,數組中的每個元素都會執行該函數,並且是必須要傳的 + 傳入函數的三個參數 1. currentValue ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...