JavaScript之基本語句

来源:https://www.cnblogs.com/ruhaoren/archive/2019/08/08/11322748.html
-Advertisement-
Play Games

寫在前面:前面的內容記錄了JavaScript的一些基本概念,本次主要講解一下JS中常用的語句。 和大多數其他編程語言一樣,JS也主要包括:選擇、迴圈、錯誤檢測、函數等。JS的語句基本是由值、運算符、表達式、關鍵字和註釋構成,但並不是語句一定包含所有以上要素。 電腦程式一般是指能夠被電腦執行的一 ...


寫在前面:前面的內容記錄了JavaScript的一些基本概念,本次主要講解一下JS中常用的語句。

  和大多數其他編程語言一樣,JS也主要包括:選擇、迴圈、錯誤檢測、函數等。JS的語句基本是由值、運算符、表達式、關鍵字和註釋構成,但並不是語句一定包含所有以上要素。

  電腦程式一般是指能夠被電腦執行的一些列指令的集合。在編程語言中,這些指令被稱為語句,JavsScript程式就是一系列的JavaScript語句集合。

一  選擇語句

  這裡我打算用一個例子來說明,可能會更好理解:

1 var age = parseInt(prompt("please enter your age:"));
2 if(age < 0){
3     alert("are you sure?");
4 }else if(age > 120){
5     alert("you must be dead!");
6 }else{
7     alert("you are still alice!");
8 }

  代碼說明:if-else語句和其他區大多數編程語句一樣。通過判斷if後面的括弧內的表達式的真假,決定是否執行緊跟其後的大括弧內的代碼。

  上面的代碼含義如下:第一行表示接受一個數字並保存在變數age中(現在不必在一parseInt()是什麼東東)。

            第二行代碼在判斷括弧內的表達式是否成立,如果成立將執行第三行代碼(我覺得他應該不會被執行,嘿嘿),然後

          準備執行第四行。如果不成立,那麼程式將跳過第三行,準備執行第四行。

            第三行代碼會彈出一個提示框。

            第四行代碼和第一行功能類似,判斷age是否大與120,如果大於將執行第五行代碼,否者將跳過,並準備執行第六行代碼。

            第五行代碼也是彈出一個提示框。

            第六行表示age即不滿足if後面的條件,也不滿足else if後面的條件,最終會被執行else後面的代碼。

            第七行也是彈出一個提示框。

  如果有很多種情況,那我們豈不是要用很多if-else-if……?那樣即難以閱讀又難以維護。你當然不用那麼做,JavaScript提供了另外一種選擇的方式,請看下麵的代碼:

 1 var myBirthdayMonth = parseInt(Math.random()*12+1);
 2 switch(myBirthdayMonth){
 3     case 1 : alert("你屬鼠的。");
 4     break;
 5     case 2 : alert("你屬牛的。");
 6     break;
 7     case 3 : alert("你屬虎的。");
 8     break;
 9     //中間還有其他的屬相
10     case 11 : alert("你屬狗的。");
11     break;
12     default:alert("你屬豬的。");
13 }

  當有多種情況需要判斷時,我們可以用switch-case語句。它的執行過程是把switch後括弧捏的表達式的值分別依次和下麵每一個case後面的值做比較,如果相等則執行該case後面的語句,執行完後若遇到break,則停止執行後面所有的語句(switch後大括弧內的),並退出,如果前面所有的case 都無法匹配mybirthdayMonth,那麼程式最終將執行default後面的語句。

  上面的例子中我們假定了每個月就有一種屬相,第一行代碼是隨機生成一個1--12的數字充當生日的月份(這裡不必在意它是怎麼實現的)。

 

二  迴圈語句

  Javascript提供了多種迴圈語句,for迴圈,while,do-while。迴圈即指反覆執行某一段代碼。

  1、for迴圈

1 for(var i = 1;i <= 10; i++){
2     console.log(i);
3 }

  說明:var = 1;聲明迴圈控制變數,i <= 10;判斷迴圈條件,i ++更新控制變數(這裡是以1為單元遞增)。最終輸出1-10.

  簡單的說以上迴圈實現的功能是:先初始化一個變數 i,初始值為1,然後判斷i的值是否小於或等於10,若是,則執行大括弧的代碼(這裡是在控制帶列印出i的值),然後i的值加1,再判斷i是否小於或等於10,一直迴圈到i的值大於10時,程式停止執行。

  2、while迴圈

1 var i = 10;
2 while(i > 0){
3     console.log(i);
4     i--;
5 }

說明:首先聲明一個變數i,while迴圈執行時會首先判斷i > 0是否成立,若成立,則執行大括弧內的代碼(這裡是先在控制台列印i的值,單後把i的值減1),執行完後再判斷i > 10是否成立,往複迴圈,直到表達式不成立。如果一開始表達式就不成立,必須i初始化時是-1,那麼大括弧內部的代碼將永遠不會執行。

  3、do-while迴圈

1 var i = 10;
2 do{
3     console.log(i);
4     i--;
5 }while(i > 0)

  do-while迴圈和while迴圈執行過程幾乎一樣。不同點在於,它會先執行一次大括弧內的代碼,然後再開始判斷。即使是i初始化時的值是-1,也會列印一次i的值,並把i的值減1。

三  異常和錯誤

  1、throw

  throw 語句拋出一個程式異常。

1 var userNumber = prompt("please enter a number:");
2 if(isNaN(userNumber)){
3     throw "this is not a number";
4 }else{
5     alert("yes,it is a number");
6 }

  說明:userNumber接受一個來自用戶輸入的值,if判斷輸入值是否是數字,如果不是數字將拋出一個異常“this is not a number”。若是一個數字,將彈出“yes it is a number”。需要註意的是,當執行到throw是,該語句之後若還有其他語句,都將不會被執行。

  2、try-catch

1 try{
2     alertt("hello world");
3 }catch(err){
4     console.log(err.message);
5 }finally{
6     console.log("eventually I'll be executed");
7 }

  try定義了需要被檢測的代碼塊。

  catch定義了當檢測到錯誤是需要被執行的代碼,參數就是檢測到的錯誤對象。包含了錯的信息,代碼等。

  finally定義了無論是否檢測到錯誤都將執行的代碼。

  try的好處是即使檢測到錯誤,程式也不會被阻塞,它將繼續往下執行。

  3、自定義異常處理

  通過throw和try-catch我們可以輕鬆自定義錯誤捕獲和異常拋出。

 1 var x = parseInt(Math.random() * 20);
 2 try{ 
 3     if(x == "")  throw "為空";
 4     if(isNaN(x)) throw "不是一個數字";
 5     if(x > 10)   throw "太大了";
 6     if(x < 5)    throw "太小了";
 7 }
 8 catch(err) {
 9     console.log("輸入的值 " + err;)
10 }

  throw語句拋出的異常將被當做錯誤對線傳給catch,最後在catch語句中我們可以獲取到關於錯誤的具體情況了(這裡是x的範圍)。

 

最後:如果大家覺得這裡些的不夠清楚或有問題,建議大家上W3SchoolMDN查看詳細教程。

  


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

-Advertisement-
Play Games
更多相關文章
  • 版權聲明:本文為xing_star原創文章,轉載請註明出處! 本文同步自http://javaexception.com/archives/183 很久之前寫了一篇Java讀取文本文件內容,鏈接地址是http://javaexception.com/archives/128 本篇是它的續集,這篇的重 ...
  • 微信小程式支付功能的開發的時候坑比較多,不過對於錢的事謹慎也是好事。網上關於小程式支付的實例很多,但是大多多少有些問題,C#開發的更少。此篇文檔的目的是講開發過程中遇到的問題做一個備註,也方便其他開發的同學作為參考! 1、首先建議把官方文檔支付部分看上三遍,每個細節都不要放過,因為任何一個點和微信要 ...
  • This article documents the attempt to optimize the blog garden home page and the associated CSS source code. ...
  • JavaScript變數和作用域的學習筆記,包括變數的含義、作用,機制,以及作用域的機制、JS預解析等 ...
  • import axios from '@/libs/api.request' const MODULE_URL = '/log'; export const actionLogData = (params, cb) => { axios.request({ url: `${MODULE_URL}/a ...
  • jquerysessionjs插件使用介紹 by:授客 QQ:1033553122 JQuery-3.2.1.min.j 下載地址: https://gitee.com/ishouke/front_end_plugin/blob/master/jquery-3.2.1.min.js jqueryse ...
  • <form>元素: <input>元素: 常用屬性: type 文本框類型 name 指定了name的欄位才會被提交(不能用id代替name屬性) placeholder 占位符 value 輸入框中的文本 autofocus 自動聚焦 disabled 禁用 readonly 只讀 require ...
  • 一開始,我使用的是Jquery框架中的$.("#input").readOnly,發現取出的值為undefined,不知道是不是jQuery中不支持獲取標簽屬性的函數, 然後就使用了原生的document.getElementById("input1").readOnly並且可以更改它的值以及取值, ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...