JavaScript(1) -- JS入門

来源:https://www.cnblogs.com/yif0118/archive/2020/04/06/12642831.html
-Advertisement-
Play Games

1. JavaScript介紹 JavaScript是屬於HTML與Web的解釋性編程語言,也是一種以函數優先的弱類型輕量級的腳本語言,無需進行預編譯即可與HTML前端頁面進行行為交互,支持跨平臺運行,可在多種平臺下(如Windows、Linux、Mac、Android、iOS等)。目前JavaSc ...


1.   JavaScript介紹

JavaScript是屬於HTML與Web的解釋性編程語言,也是一種以函數優先的弱類型輕量級的腳本語言,無需進行預編譯即可與HTML前端頁面進行行為交互,支持跨平臺運行,可在多種平臺下(如Windows、Linux、Mac、Android、iOS等)。目前JavaScript被廣泛地應用於Web前端Html實現頁面交互、實現瀏覽器頁面事件響應、前端數據驗證、檢驗訪客瀏覽器信息、控制cookies的創建與修改、基於Node.js技術進行伺服器端編程。

2.   JavaScript基本語法

2.1. JavaScript的三種定義方式

JS一般有三種定義的方式:

①    寫在<a>標簽的href屬性內;

②    寫在<script>標簽內;

③    單獨寫一個JS文件,使用外連的方式引入;

下麵直接給出代碼示例以區分這三種方式的不同:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta charset="UTF-8">
    <title>三種JS的寫法</title>
    <!--第二種寫法:寫在script代碼塊中-->
    <script type="text/javascript">
        alert("我在塊裡面!")
    </script>
    <!--第三種寫法:單獨寫一個js文件,在src中引入.js文件-->
    <script type="text/javascript" src="./js/01hello.js"></script>
</head>
<body>
    <!--
        JS的三種寫法:
        ①寫在標簽內;
        ②寫在script標簽內;
        ③單獨寫一個JS文件
    -->
<!--第一種寫法:表示的是偽協議,給瀏覽器看,偽協議之後的代碼當做JS代碼執行-->
<a href="javascript:console.debug('點你就點你')">點擊我</a>
</body>
</html>

2.2.  JavaScript的標識符

JavaScript中的標識符與Java中標識符的定義是一樣的,標識符是為了標識程式中諸如方法變數等元素而採用的命名。

所有的標識符必須遵從以下規則:

  •  標識符是由字母、數字、下劃線(_)和美元符號($)構成的字元序列。
  •  標識符必須以字母、下劃線(_)或美元符號($)開頭,不能以數字開頭。
  •  標識符不能是JavaScript中的保留字與關鍵字。
  •  標識符不能是true、false或null。
  •  標識符可以為任意長度。

合法的標識符舉例:indentifier、username、user_name、_userName、$username;

非法的標識符舉例:int、98.3、Hello World。

JavaScript是嚴格區分大小寫的,所以area、Area和AREA是不同的標識符,使用標識符時應該使用具有描述性的標識符以提高程式的可讀性。

2.3.  關鍵字與保留字

關鍵字包含:

break  continue  debugger  dowhile  for  function  ifelse  return  switch

trycatch var case break case continue default delete do finally in

instanceof new return this throw typeof void with

保留字包含:

abstract  Boolean  byte  char  class  const   double  enum  export  extends
final float goto implements import int interface long package private
protected public short static super synchronized throws transient volatile

2.4.  分割符與註釋

JavaScript每條執行語句以分號”;”分隔,以分號分隔在實際執行過程中不是必需的(去除”;”可以執行),但是在實際編寫代碼過程中強烈建議加上分號!

var a = 5;
var b = 6;
var c = a + b;

如果有分號分隔,允許在同一行寫多條執行語句:

var a = 5;b = 6;c = a + b;
console.debug(a);  //5
console.debug(b);  //6
console.debug(c);  //11

JavaScript註釋用於解釋JavaScript代碼,增強其可讀性。JavaScript註釋也可以用於在測試替代代碼時阻止執行。

JavaScirpt中主要有三種註釋類型:

單行註釋、多行註釋、文檔註釋

 

單行註釋以//開頭,任何位於//與行末之間的文本都會被JavaScript忽略(不會執行)。

多行註釋以/*開頭,以*/結尾,任何位於/*與*/之間的文本都會被JavaScript忽略。

文檔註釋以/**開頭,以*/結尾,任何位於/**與*/之間的文本都會被JavaScript忽略。

//單行註釋
var x = 5;      // 聲明 x,為其賦值 5
var y = x + 2;  // 聲明 y,為其賦值 x + 2

/*
 多行註釋
 下麵的代碼會改變
 網頁中
 id = "myH" 的標題
 以及 id = "myP" 的段落:
*/
document.getElementById("myH").innerHTML = "我的第一張頁面";
document.getElementById("myP").innerHTML = "我的第一個段落。";

/**
 文檔註釋
 一般用於公司簽名抬頭標明產品文件類型
 */

2.5.  空白字元

JavaScript會忽略多個空格,我們可以在腳本語句中添加多個空格間隔語句代碼,以增強程式的可讀性。

下麵這兩行是相等的:

var person = "Bill";
var person="Bill"; 

在運算符旁邊(= + - * /)添加空格是個好習慣:

var x = y + z;

3.   JavaScript變數

JavaScript變數是用於存儲數據值的一個標識,指向具體的記憶體地址,保存對應的值或者對象地址值。

變數聲明首先要遵循標識符命名原則,並且JavaScript聲明變數要使用var關鍵字,比如:

var name;
console.debug(name);  //列印空字元
console.debug(typeof(name)); //string

聲明變數的同時可以為變數賦值,並且在之後改變該變數的值,註意:不能改變變數的類型了,比如:

var name = "張三";
console.debug(name); //張三
console.debug(typeof(name)); //string
name = true;
console.debug(name); //true
console.debug(typeof(name)); //string

此外,JavaScript中還允許不事先聲明變數而直接使用,比如:

num = 1234;
console.debug(num); //1234

註意:JavaScript定義變數無需指定變數的類型,任何類型都可以使用var關鍵字聲明。

4.   JavaScript數據類型

JavaScript中數據類型包含:字元串型、數值型、布爾型、數組型、對象類型等。

①    字元串型(string)

字元串(或文本字元串)是一串字元,比如:”Bill Gates”。

字元串被引號包圍,你可以使用單引號或者雙引號:

var carName = "Porsche 911";   // 使用雙引號
var carName = 'Porsche 911';   // 使用單引號

也可以在字元串內使用引號,只要這些引號與包圍的字元串的引號不匹配:

var answer = "It's alright";             // 雙引號內的單引號
var answer = "He is called 'Bill'";    // 雙引號內的單引號
var answer = 'He is called "Bill"';    // 單引號內的雙引號

②    數值型(number)

JavaScript只有一種數值類型。寫數值時用不用小數點均可。

var x1 = 34.00;     // 帶小數點
var x2 = 34;        // 不帶小數點

超大或超小的數值可以用科學計數法來表示。

var num1 = 123e5;      // 12300000
var num2 = 123e-5;     // 0.00123

③    布爾型(boolean)

JavaScript布爾值只有兩個值:true或者false。

var res = true;
console.debug(res); //true
console.debug(typeof(res)); //boolean

④   數組型

JavaScript數組用方括弧表示,數組項目元素用逗號分隔,如下代碼聲明瞭一個名為cars的數組,包含三個元素(汽車品牌):

var arr = ["Porsche", "Volvo", "BMW"];
console.debug(arr.length); //3
console.debug(arr[0]); //數組索引從0開始,到數組長度-1結束,取值使用arr[索引位置];Porsche
console.debug(arr[arr.length-1]); //BMW

⑤    對象類型

JavaScript對象是使用花括弧來表示。

對象屬性是name:value鍵值對,用逗號分隔開。聲明一個對象類型並使用:

//對象類型
var person = {
   firstName : "Bill",
   lastName  : "Gates",
   age       : 62,
   eyeColor  : "blue"
};
//對象取值:使用對象.屬性取值
console.debug(person.firstName + " is " + person.age + " years old"); //Bill is 62 years old

4.1. typeof運算符

使用typeof可以確定JavaScript變數的類型:

typeof運算符會返回變數或表達式的類型:

typeof運算符可以返回 以下原始類型之一:

  • string
  • number
  • boolean
  • object
  • undefined
var name = "張三";
typeof name; //string
typeof 3.14  // 返回 "number"
typeof true // 返回 "boolean"
typeof x    // 返回 "undefined" (假如 x 沒有值)
var arr = ["Porsche", "Volvo", "BMW"];
typeof arr; //object

同時在處理複雜數據時,typeof運算符可用返回以下兩種類型之一:

  • function
  • object

typeof運算符會把對象、數組或null返回object;

typeof運算符會把函數返回function

typeof null     // 返回 "object"
typeof function myFunc(){}  // 返回 "function"

4.2. Undefined/Null/空值

①    undefined

在JavaScript中,沒有值的變數,即變數初始化沒有賦值,那麼其值就是undefined。typeof也返回undefined。

var person;
console.debug(person); //返回undefined

②    Null

在JavaScript中,null的數據類型是對象。

var person = null;
console.debug(person); //null
console.debug(typeof person); //object

undefined與null的區別:

undefined與null的值相等,但是類型不相等;

typeof undefined       // undefined
typeof null             // object
null === undefined    // false
null == undefined     // true

③    空值

空值表示字元串變數的值為空字元串,空的字元串既有值也有類型。

var str = "";
console.debug(str); //""
console.debug(typeof str); //string

5.   JavaScript函數

JavaScript函數是被設計為執行特定任務的代碼塊。JavaScript函數會在某代碼調用它時被執行。

5.1. JavaScript函數語法

JavaScript函數通過function關鍵詞進行定義,其後是函數名和括弧()。

函數名可包含字母、數字、下劃線和美元符號(規則與變數名相同)。

具體的示例如下:

function 函數名(…參數args){
    方法體—執行代碼
}

函數的作用:避免代碼在頁面載入的時候就執行了,並且一次定義,多次使用(調用)。

5.2. 函數返回值

JavaScript函數方法體中使用return來返回此函數被調用後的執行結果。在函數中通常會計算出執行結果,返回值會由return返回調用者。而在function函數上無需聲明函數返回類型(JS的弱類型的靈活性)。

示例:

function getMsg() {
    var msg = "隨便返回一個字元串吧";
    return msg;
}
console.debug(getMsg()); //隨便返回一個字元串吧
console.debug(getMsg); //ƒ getMsg() { var msg = "隨便返回一個字元串吧"; return msg;}

函數返回調用需要使用:函數名()來調用,而單獨使用函數名則會返回整個函數體。

5.3. 局部變數與全局變數

在JavaScript函數中聲明的變數,會成為函數的局部變數,局部變數只能在函數內部訪問。

由於局部變數只能被其函數識別,因此可以在不同函數中使用相同名稱的變數。

局部變數在函數開始時創建,在函數完成時被刪除。

全局變數是定義在函數體外部的變數,與局部變數無關,可以全局使用,但是如果在函數體內部的局部變數與全局變數名相同,那麼在該函數被調用後可能會改變該全局變數的值。

示例如下:

/**
* 1.JS中的全局與局部變數的定義
*/
var str = "全局變數";

function showStr() {
   str = "局部變數";
   console.debug(str);
}

showStr();  //局部變數
console.debug(str); //局部變數,str整體的值進入到showStr()方法中被改變

console.debug("================分割線==================")

var str2 = "全局變數2";

function showStr2() {
   var str2 = "局部變數2";
   console.debug(str2);
}

showStr2();  //局部變數2
console.debug(str2); //全局變數2,定義在showStr2()函數中的str2變數已經執行完畢被銷毀

6.   更多

本節JavaScript(1) – JS入門主要針對JS初學知識體系中常用知識進行彙總,省略了JS輸出列印、JS運算符、JS流程式控制制部分的說明(這部分比較簡單,和Java語言也大體類型),簡單知識就不再一一累述,學習更多完整的JavaScript入門知識體系請詳見W3shool網址,本部分知識參考W3school網址:

https://www.w3school.com.cn/js/index.asp

學習章節:JS教程 —— JS函數部分,後續將陸續彙總更新更多JavaScript章節自我學習彙總內容。


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

-Advertisement-
Play Games
更多相關文章
  • 1.全局作用域 JavaScript中,在{}外面的作用域,我們就稱之為全局作用域 2.局部作用域 JavaScript中,在函數後面{}中的作用域,我們就稱之為局部作用域 3.塊級作用域 JavaScript中,只要是沒有和函數結合在一起的{}中的作用域, 我們就稱之為塊級作用域 4.註意點 在塊 ...
  • 當頁面滾動超過一屏時,顯示回到頂部按鈕,點擊回到頂部 效果圖 src/components/scroll/index.vue <template> <!-- 通過ref可以獲取到dom對象 --> <swiper class="swiper" :options="swiperOption" ref= ...
  • JavaScript拖拽效果的原理及實現 JavaScript中實現拖拽效果需要用到 事件偵聽 和 滑鼠事件 。事件偵聽是對被拖拽的元素添加事件偵聽,包括mousedown,mousemove,mouseup。 常見的拖拽操作基本就是下麵的方式: 1、用滑鼠點擊選中被拖拽的元素 2、按住滑鼠不放,拖 ...
  • 效果圖 src/components/scroll/index.vue <template> <!-- 通過ref可以獲取到dom對象 --> <swiper class="swiper" :options="swiperOption" ref="swiper"> <div class="mine- ...
  • <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>html5語義化</title> <style type="text/css"> header, section, footer, aside, nav, ar ...
  • 要知道非同步執行原理,就先要瞭解同步執行。因為電腦程式執行分為同步執行和非同步執行。 所謂的同步執行,就是正常的電腦執行的順序流程: 1.順序控制語句 從上至下 從左至右 2.分支控制語句 if switch 3.迴圈控制語句 for while do...while for...in forEac ...
  • js列印正三角 點擊查看 "原文地址" ...
  • 本文 UI 參考:https://www.cnblogs.com/2979100039-qq-con/archive/2020/04/06/12641603.html 我代碼有一個問題沒有解決,等到js 代碼的時候我會指出,國際慣例,先上效果圖,我所實現的效果就是,鍵值 對應的 字母高亮。 css+ ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...