JS基礎-表達式和運算符

来源:https://www.cnblogs.com/haloujava/archive/2023/09/07/17684873.html
-Advertisement-
Play Games

一、小程式代碼構成 1.創建文件 在app.json文件中,pages中,直接寫上要添加的文件的名及路徑,然後保存即可(此方法在Mac上親測沒成功), Mac創建頁面的方式: pages文件右鍵,新建文件,然後輸入文件名 ![](https://img2023.cnblogs.com/blog/29 ...


表達式:是由操作數和運算符(可選)構成的並產生運算結果的語法結構。例如:3+5

運算符:進行計算或者邏輯運算的符號,比如表達式中的 + 號

表達式分類:算術、關係、邏輯、賦值、組合

算術運算符

以下符號都是算數運算符,運算符的關鍵詞就是運算

意義 運算符
+
-
*
/
取餘 %

在算數表達式中, 乘法和除法的優先順序要高於加法和減法;

不過可以使用括弧來改變運算的順序


1 + 1 = 2

// 1 + 2 先於 乘4 運算 , 括弧改變了又相繼
(1+2) * 4 = 12

// 取餘操作,只關註餘數
11 % 3 = 2

// 能夠除盡的,餘數是0
9 % 3 = 0 ; 

隱式類型轉換

  • 如果參與數學運算的操作數不是數字類型,那麼JS會自動將操作數轉成數字型,。
  • 隱式轉換的本質是內部調用Number() 函數
    • 號比較特殊, 如果 是 數字 和 字元串 相加 表示連接,並不會發生隱式類型轉換
// 除了加號外都可以用隱式類型轉換, 因為 加號 會代表 連接符
3 * '4' = 12

// + 表示連接符,而非 運算符
3 + '4' = '34';

小數運算

在JS中,有些小數運算不是很精確,會有一些精度損失

在進行小數運算的時候,要調用 toFixed() 方法保留指定的小數位數

0.1 + 0.33 // 輸出  0.43000000000000005
// 使用 toFixed正確輸出
Number(0.1 + 0.33).toFixed(2)

其他相關運算

冪運算

  • 使用Math.pow() 函數進行冪運算
  • 使用Math.sqrt() 函數進行開根號
// 計算2的3次方
Math.pow(2,3);
// 9 開根號
Math.sqrt(9)

向上取整和向下取整

  • 使用函數 Math.ceil() 向上取整
  • 使用函數 Math.floor() 向下取整

Math.ceil(2.3) // 輸出3
Math.floor(2.3) // 輸出2

Math.ceil(-2.3) // 輸出 -2
Math.floor(-2.3)  // 輸出 -3

關係運算符

以下的符號都是關係運算符, 關係運算符的關鍵詞就是比較

意義 運算符
大於 >
小於 <
大於或等於 >=
小於或等於 <=
等於 =
不等於 !=
全等於 ===
不全等於 !==

== 和 === 的區別

== 雙等運算符不比較值的類型,它會進行隱式類型轉換後比較值是否相等

=== 三等運算符不僅比較值是否相同,也比較類型是否相同

特殊值比較

// 輸出true。
undefined == null ; 
// 輸出false。 因為類型不同,null 的類型為 object, undefined 類型為 undefined 。所以不相等
undefined === null ; 
// 輸出 false。 NaN不自等
NaN == NaN ; 

isNaN 函數

可以判斷是不是一個數字

// 輸出 true
isNaN(NaN); 
// 輸出false
isNaN(5);

isNaN 傳入 NaN 或者其他數字類型的值判斷比較準確,除了數字類型外的其他類型值判斷不准

isNaN(undefined); // true
isNaN('3天'); // true
isNaN(null); // false

邏輯運算符

以下的符號都是邏輯運算符, 邏輯運算符的關鍵詞就是真假。其運算的結果 要麼 是 真(true) 要麼是假(false)

意義 運算符 解釋 舉例
! 表示 非 也可以說是 置反運算, 其結果一定一個bool值 !true = false
&& 表示 並且 ,多個條件都為真才真,口訣: 一假則假 。 具有短路功能 true && true = true

邏輯運算符可以比較任意值,不過輸出結果只能為 布爾值

表示取反的意思

//false
!true ; 
// true
!false; 
// true
!0 
// true
!undefined 
!'' // true
!'halouworld' //非空字元串取反 為 false

與表示有多個併列條件,只有都滿足的時候才會向下執行,否則跳過。通常和 後面講到的 IF 配合使用

使用口訣:一假則假

<script>

        var a = 1, b = 2, c=3, d=4;

        // a 雖然和b 相等, 但是 c和d不相等,所以結果還是不想等
        if( a== b && c==d) {
            console.log('都成立')
        } else {
            console.log('都不成立')
        } 

</script>

或表示有多個併列條件,只要其中一個滿足就會向下執行,否則跳過。通常和 後面講到的 IF 配合使用

使用口訣:一真則真

<script>
        
      var a = 1, b = 1, c=3, d=4;
      // a == b 後者 c==d 只要有個一個相同就相等, 結果輸出相等
      if( a== b || c==d) {
          console.log('成立')
      } else {
          console.log('不成立')
      } 
</script>

短路

短路就是 在一組 或者 當中 ,如果提前運算出了結果, 就結束了, 後面的表達式則不會被執行

  • 與 1!=1 &&  1=2 , 當前面的表達式 1 != 1假, 所以整個表達式結果為, 後面的 1=2 則不會被執行到, 參考口訣 一假則假
  • 11 || 12 , 當前面的表示式  1==1,所以整個表示式結果為, 後面的 1==2 則不會被執行到, 參考口訣 一真則真

賦值運算符

以下的符號都是賦值運算符, 賦值運算符的關鍵詞就是賦值。即符號右邊的值賦值給左邊

符號 意義 舉例
= 賦值 a = 10
+= 左右相加並賦值給左邊 a = 10 ; b = 10 ;a +=b
-= 左邊減右邊並賦值給左邊 a -= b
*= 左右相乘並賦值給左邊 a *= b
/= 左邊除以右邊並賦值給左邊 a /= b
%/ 左邊取餘右邊並賦值給左邊 a %= b
++ 自增運算(自身增1) a++ ; ++a
-- 自減運算 (自身減1) a--; --a;

賦值運算符就是將右邊的賦值給左邊

# 左邊的值賦值給右邊的變數
a = 1;
# 連續賦值
var a,b,c;
a = b = c = 1;
console.log(a);
console.log(b);
console.log(c);

+= 等舉例

// 等價於 a = a + 5;
a += 5; 

表達式組合

由運算符和操作數共同組成的複雜運算表達式

其中的運算順序(優先順序)

非運算 -> 數學運算 -> 關係運算 -> 邏輯運算

舉例

// 輸出true
5 < 3 + 3; 
 // 輸出 true ,這種複雜的表達式在不加括弧的時候看著比較亂
3 > 2 && 8 > 3+ 4
// !13 = false , 等價於 !Boolean(13)
// 輸出 true, 小於號左邊為false, 轉成整數值 Number(false) = 0 和 右邊的運算結果 3 相比較
!13 < 6 - 3

總結

特別註意 表示式組合當中,比較複雜的表達式,一定要加上括弧,方便以後閱讀理解

請關於一下啦^_^

微信公眾號


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

-Advertisement-
Play Games
更多相關文章
  • GaussDB的遷移場景越來越多,也越來越複雜,所以我們會不斷地進行探索和創新,讓我們的方案更完善,遷移過程更平滑。 ...
  • SqlServer 單用戶解決方案 USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) - FROM master..sysprocesses WHERE dbid= ...
  • 在上一篇文章中,我們介紹了彈性資料庫連接失效的背景,並探討了HikariCP連接池探活策略的相關內容。在本文中,我們將會繼續探討另一個線上常用的連接池——Druid,併為您介紹如何在使用Druid時實現最佳實踐的彈性資料庫連接池探活策略。 ...
  • 原文地址:https://www.mssqltips.com/sqlservertip/3598/troubleshooting-transactional-replication-latency-issues-in-sql-server/ 問題 我安裝了幾個SQL Server 2012實例的集群 ...
  • sidebar: auto # Android 調試橋 (adb) Android 調試橋 (adb) 是一種功能多樣的命令行工具,可讓您與設備進行通信。adb 命令可用於執行各種設備操作,例如安裝和調試應用。adb 提供對 Unix shell(可用來在設備上運行各種命令)的訪問許可權。它是一種客戶 ...
  • 在Service中使用系統dialog彈框,但是無法覆蓋全部,底部菜單依然可以被點擊,在某些場景下是不符合需求的 getDialog().getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ERROR); 顯然是 dialog 的層級 ...
  • # 什麼是Promise (含如何判斷一個值是Promise) > 本文旨在對 Promise 的規範進行解釋, 便於讀者在學習 Promise 的過程中梳理 Promise 之間的操作關係, 不對具體的代碼實現和Promise用法進行解釋. > > 比如, 為什麼 [[MDN-await]](ht ...
  • 寫在前面:初次嘗試小程式,在不使用框架的情況下,如果遇到問題,可以儘量去參考官方文檔 1.scroll-view組件 scroll-view是一個可滑動的組塊.需要設置其中具體的height高度,並且在標簽中設置scroll-y="true"; 1 <scroll-view class="sceol ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...