JavaScript 運算,流程式控制制和迴圈

来源:https://www.cnblogs.com/py-web/archive/2020/01/07/12161431.html
-Advertisement-
Play Games

算數運算符算術運算符描敘運算符實例加+10 + 20 = 30減-10 – 20 = -10乘*10 * 20 = 600除/10 / 20 = 0.5取餘數%返回除法的餘數9%2=1浮點數精確度浮點數值的最高精度是 17 位小數console.log(0.07 * 100); // 7.00000... ...


算數運算符

  • 算術運算符

描敘

運算符

實例

+

10 + 20 = 30

-

10 – 20 = -10

*

10 * 20 = 600

/

10 / 20 = 0.5

取餘數

%

返回除法的餘數9%2=1

  • 浮點數精確度

浮點數值的最高精度是 17 位小數

console.log(0.07 * 100);  // 7.000000000000001
console.log(0.1 + 0.2);   // 0.30000000000000004

遞增和遞減運算符

  • 遞增運算符
  1. 前置遞增
++num 前置遞增,就是自加1,類似於 num =  num + 1,但是 ++num 寫起來更簡單

var num = 1;
console.log(++num); // 2

使用口訣:先自加,後返回值

     2.  後置遞增

num++ 後置遞增,就是自加1,類似於 num =  num + 1 ,但是 num++ 寫起來更簡單

var num = 1;
console.log(10 + num++);  // 10 + 10 + 1

使用口訣:先返回原值,後自加


比較運算符

  • 比較運算符號

兩個數據進行比較,返回一個布爾值

運算符名稱

說明

案例

結果

<

小於號

1 < 2

true

>

大於號

1 > 2

false

>=

大於等於號

1 >= 2

false

<=

小於等於號

1 <= 2

false

!=

不等於

1 != 2

true

==

判等於(會轉型)

1 == 1

true

=== !==

全等於,要求值數據類型一致

‘37’ === 37

false

  • 等號運算符

符號

作用

用法

=

賦值

把右邊給左邊

==

判斷

判斷兩邊是否相等(隱式轉換)

===

全等

判斷兩邊值和類型是否相等

console.log('19' == 19);  // true
console.log('19' === 19); // false


邏輯運算符

  • 邏輯運算符概念

邏輯運算符是用來進行布爾值運算的運算符,其返回值也是布爾值

邏輯運算符

說明

案例

&&

“邏輯與” and

ture && false

||

“邏輯或” or

ture || false

“邏輯非”  not

!true

  • 邏輯與 &&

兩邊都是 true才返回 true,否則返回 false

  • 邏輯或 ||

一邊是 true返回 true,否則返回 false

  • 邏輯非 !

邏輯非(!)也叫作取反符,用來取一個布爾值相反的值,如 true 的相反值是 false

var num = !true;
console.log(num); // false
  • 短路運算(邏輯中斷)

短路運算的原理:當有多個表達式(值)時,左邊的表達式值可以確定結果時,就不再繼續運算右邊的表達式的值;

  1. 邏輯與

語法: 表達式1 && 表達式2

如果第一個表達式的值為真,則返回表達式2
如果第一個表達式的值為假,則返回表達式1

console.log(11 && 22); // 11
console.log(0 && 2);  // 0

     2.  邏輯或

語法: 表達式1 || 表達式2

如果第一個表達式的值為真,則返回表達式1
如果第一個表達式的值為假,則返回表達式2
console.log( 123 || 456 );         //  123
console.log( 0 ||  456 );          //  456


賦值運算符

賦值運算符

說明

案例

=

直接賦值

var name=’1’

+=,-=

加,減一個值,再賦值

var age=1;age+=2 //3

*=,/=,%=

乘,除,取餘後在賦值

var age=1;age*=1 //10

var num = 2;
console.log(num += 1);  // 3
console.log(num -= 1);  // 2
console.log(num *= 1);  // 2


優先順序運算符

image


流程式控制制

  • if 語句
// 條件成立執行代碼,否則什麼也不做
if (條件表達式) {
    // 條件成立執行的代碼語句
}
  • if else 語句
// 條件成立  執行 if 裡面代碼,否則執行else 裡面的代碼
if (條件表達式) {
    // [如果] 條件成立執行的代碼
} else {
    // [否則] 執行的代碼
}
  • if else if 語句
// 適合於檢查多重條件。
if (條件表達式1) {
    語句1;
} else if (條件表達式2)  {
    語句2;
} else if (條件表達式3)  {
   語句3;
 ....
} else {
    // 上述條件都不成立執行此處代碼
}


三元表達式

  • 語法結構
表達式1 ? 表達式2 : 表達式3;
  • 執行思路

如果表達式1為 true ,則返回表達式2的值,如果表達式1為 false,則返回表達式3的值

簡單理解: 就類似於 if else (雙分支) 的簡寫

console.log((1 == true)? true: false);  // true

switch分支流程式控制制

  • 語法結構
switch( 表達式 ){ 
    case value1:
        // 表達式 等於 value1 時要執行的代碼
        break;
    case value2:
        // 表達式 等於 value2 時要執行的代碼
        break;
    default:
        // 表達式 不等於任何一個 value 時要執行的代碼
}
  1. switch :開關 轉換 , case :小例子 選項
  2. 關鍵字 switch 後面括弧內可以是表達式或值, 通常是一個變數
  3. 關鍵字 case , 後跟一個選項的表達式或值,後面跟一個冒號
  4. switch 表達式的值會與結構中的 case 的值做比較
  5. 如果存在匹配全等(===) ,則與該 case 關聯的代碼塊會被執行,併在遇到 break 時停止,整個 switch 語句代碼執行結束
  6. 如果所有的 case 的值都和表達式的值不匹配,則執行 default 里的代碼

執行case 裡面的語句時,如果沒有break,則繼續執行下一個case裡面的語句。

switch (name = 'peach3') {
        case 'peach':
            console.log('peach');
            break;
        case 'peach2':
            console.log('peach2');
            break;
        default:
            console.log('default');
    }  // default


迴圈

for 迴圈
  • 語法結構
for(初始化變數; 條件表達式; 操作表達式 ){
    //迴圈體
}
num = 0;
 for (var i=1; i < 100; i++){
      num += i
}
console.log(num);  // 4950


雙重 for 迴圈
  • 語法
for (外迴圈的初始; 外迴圈的條件; 外迴圈的操作表達式) {
    for (內迴圈的初始; 內迴圈的條件; 內迴圈的操作表達式) {  
       需執行的代碼;
   }
}
var start = '';
 for (var j=1; j <=3; j++) {
      for (var i=1; i <=3; i++) {
            start += '☆'
        }
        start += '\n'
    }

console.log(start);
    ☆☆☆
    ☆☆☆
    ☆☆☆


while 迴圈
  • 語法
while (條件表達式) {
    // 迴圈體代碼 
}
var i = 0;
while (i < 5) {
    if (i === 3) {
        console.log(i);
        break
    }
    i ++
}  // 3
do – while 迴圈


do {
    // 迴圈體代碼 - 條件表達式為 true 時重覆執行迴圈體代碼
} while(條件表達式);
  1. 先執行一次迴圈體(do)代碼
  2. 再執行條件表達式,如果結果為 true,則繼續執行迴圈體代碼,如果為 false,則退出迴圈,繼續執行後面代碼
  3. 先再執行迴圈體,再判斷,do…while迴圈語句至少會執行一次迴圈體代碼
var i =0;
do {
    console.log("do 數字為" + i);
    i ++;
} while ( i < 2){
    console.log(i);
}

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

-Advertisement-
Play Games
更多相關文章
  • 01 Material Palette 網站地址:http://www.materialpalette.com/ Material Palette是一款提供Material Design配色的線上工具,它的用法很簡單,你只要找出想要搭配的兩種顏色,它就會顯示出兩種顏色搭配在一起的效果預覽,並提供你較 ...
  • 前言 對源碼的解讀有利於搞清楚Hooks到底做了什麼,如果您覺得useEffect很“魔法”,這篇文章也許對您有些幫助。 本篇博客篇幅有限,只看useEffect,力求簡單明瞭,帶您到React Hooks的深處看看 按圖索驥找到Hook相關源碼(可以直接跳) 首先我們從Github上得到react ...
  • button 使用 flex 佈局的相容性問題 在低版本的手機系統中,我們發現 不能夠作為 flex 容器,即使在 CSS 中指定了 且 autoprefixer 也已經轉換成相容屬性,也還是不起作用。具體表現在其內容並不能使用 flex 佈局對齊,比如說居中。 這裡的背景是,我們經常需要展示一些按 ...
  • 比較推薦的學習過程應該是以興趣為驅動的,用搜索做輔助: 1. 我想做一個個人網站,或者給我們團隊或者小組做一些介紹頁面。怎麼做?搜索發現要學習:HTML、CSS。 2. 發現一個網站設計的好漂亮,交互真贊,動畫效果真好。我想在我自己網站上也放上,可是我看不懂它的代碼?搜索發現要學習:交互視覺、CSS ...
  • 用產品的屬性數據說明 頁面里顯示效果為:要把產品的屬性顯示到頁面上,產品屬性為後臺自主上傳產品的屬性,產品的屬性不同,所以需要把屬性和屬性值顯示到頁面上 產品屬性數據為: properties: "[ {"錶面處理":["發黑","發白"]}, {"顏色":["紅色","黃色"]}, {"大小":[ ...
  • 4)Function用法例 3.4.1<head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/></head><script> /*When the Global object is created, it ...
  • 定義和用法 try/catch/finally 語句用於處理代碼中可能出現的錯誤信息。 錯誤可能是語法錯誤,通常是程式員造成的編碼錯誤或錯別字。也 可能是拼寫錯誤或語言中缺少的功能(可能由於瀏覽器差異)。 try語句允許我們定義在執行時進行錯誤測試的代碼塊。 catch 語句允許我們定義當 try  ...
  • CSRF繞過後端Referer校驗分正常情況和不正常的情況,我們這裡主要討論開發在寫校驗referer程式時,不正常的情況下怎麼進行繞過。 正常情況 正常的情況指伺服器端校驗Referer的代碼沒毛病,那麼意味著前端是無法繞過的。 我之前考慮過的方案: JS修改Referer,失敗; 請求惡意網頁後 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...