前端開發:4、JavaScript簡介、變數與常量、數據類型及內置方法、運算符、流程式控制制、迴圈結構、內置方法

来源:https://www.cnblogs.com/kangssssh/archive/2022/12/05/16953329.html
-Advertisement-
Play Games

前端開發之JavaScript 一、JavaScript簡介 ​ Javascript(簡稱‘JS’),是一門解釋型編程語言,主要用於Web、和瀏覽器中網頁中的動態渲染 ​ 是一門前端工程師的編程語言,相比於python它的邏輯並不是那麼嚴謹 二、JS基礎 語法註釋 單行註釋 //註釋內容 多行註釋 ...


前端開發之JavaScript

目錄

一、JavaScript簡介

​ Javascript(簡稱‘JS’),是一門解釋型編程語言,主要用於Web、和瀏覽器中網頁中的動態渲染

​ 是一門前端工程師的編程語言,相比於python它的邏輯並不是那麼嚴謹

二、JS基礎

語法註釋

單行註釋
	//註釋內容

多行註釋(與css註釋相同)
	/*註釋內容*/

引入JS的多種方式

1、<head>標簽內<script>標簽內編寫

2、<haed>標簽內<script>標簽src屬性引入外部JS資源

3、<body>標簽內最底部通過<script>標簽src屬性引入外部JS資源(最常用)
	網頁的載入順序是由上至下,所以操作標簽的JS代碼一定要等待標簽載入結束後運行

結束符

分號  ;
	JavaScript中的語句要以分號(;)為結束符。

編寫JS代碼的方式

1、瀏覽器 (零時使用)
	打開瀏覽器,右鍵檢查,在console內部編寫
    
2、pycharm創建JS文件或者HTML文件
	適合編寫較為複雜的JS代碼(便於長久保存)

三、變數與常量

變數

  • 變數的聲明:

    • 在JS中聲明變數需要用到關鍵字varlet(let 是ECMA6新語法)
    • JavaScript的變數名可以使用_,數字,字母,$組成,不能以數字開頭。
  • 變數名的命名規範:

    • 推薦使用小駝峰
  • var 與 let 區別:

    • var:定義在全局,可在局部名稱空間種被修改
    • let: 定義在局部名稱空間種不會影響到全局名稱空間的變數名
var
	var 變數名 = '值';
	
let 
	let 變數名 = '值';

常量

​ JS中支持定義常量(定義後無法被修改)

關鍵字:const
	const 常量名 = '值';

四、基本數據類型

查看數據類型的方法:

  • 關鍵字:typeof
typeof(綁定數據的變數名);

1、數值類型

​ Number(數值類型)

​ 區別於Python,JS中整型和浮點型都叫做:Number

​ NaN也屬於數值類型:不是一個數字(Not A Number)

image-20221205160202339

2、字元類型

​ String(字元類型)

​ 定義字元類型可使用單、雙引號

​ 模板字元串使用:``

var 變數名 = '值';

var 變數名 = "值";

var 變數名 = `我是第一列
	我是第二列
	我是第三列`

內置方法

序號 關鍵字 說明
1 .length 返回長度
2 .trim() 移除空白
3 .trimLeft() 移除左邊的空白
4 .trimRight() 移除右邊的空白
5 .charAt(n) 返回第n個字元
6 .concat(value, ...) 拼接
7 .indexOf(substring, start) 子序列位置
8 .substring(from, to) 根據索引獲取子序列
9 .slice(start, end) 切片
10 .toLowerCase() 小寫
11 .toUpperCase() 大寫
12 .split(delimiter, limit) 分割
var name = '  kang kang  '
var gender = 'male'


1.name.length  // 13 返回字元長度

2.name.trim()	// 'kang kang' 去除字元串左右兩邊空格(區別於Python,JS只能去除空格)

3、name.trimLeft()  // 'kang kang  ' 去除字元串左邊空格

4、name.trimRight()  // '  kang kang' 去除字元串右邊空格

5、name.charAt(5)  // 'g' 類似於Python的索引取值

6、name.concat(gender)  // '  kang kang  male' 拼接,針對字元的拼接還可以用‘+’號

7、name.indexOf('ng')  // 4 根據輸入的字元獲取字元對應索引的位置

8、name.substring(1,5)  //' kan' 類似於Pyhon的切片操作

9、name.slice(1,5)   // ' kan' 類似於Pyhon的切片操作

10、name.toUpperCase()  // '  KANG KANG  ' 將字元串所有英文字母轉大寫

11、name.toUpperCase()  // '  kang kang  ' 將字元串所有英文字母轉小寫

13、name.split(' ')  //(6) ['', '', 'kang', 'kang', '', ''] 按指定字元·分割字元串, 第二個參數可控制獲取分割後的字元串的個數

/* 
string.slice(start, stop)和string.substring(start, stop):

兩者的相同點:
如果start等於end,返回空字元串
如果stop參數省略,則取到字元串末
如果某個參數超過string的長度,這個參數會被替換為string的長度

substirng()的特點:
如果 start > stop ,start和stop將被交換
如果參數是負數或者不是數字,將會被0替換

silce()的特點:
如果 start > stop 不會交換兩者
如果start小於0,則切割從字元串末尾往前數的第abs(start)個的字元開始(包括該位置的字元)
如果stop小於0,則切割在從字元串末尾往前數的第abs(stop)個字元結束(不包含該位置字元)
*/

3、布爾類型

​ boolean(布爾值)

​ 區別於Python,JS的布爾值首字母不用大寫

​ JS布爾值純小寫

var a = true;
var b = false;

(空字元串)、0、null、undefined、NaN都是False

五、特殊數據類型

null和undefined

1、null

  • 表示值是空,一般在需要指定或清空一個變數時才會使用

  • 表示曾經有過,但是現在沒有了

  • eg:name= null

2、undefined

  • 表示當聲明一個變數但未初始化時,該變數的預設值是undefined
  • 表示一直就沒有擁有過
  • 函數無明確的返回值時,返回的值也是undefined

​ null表示變數的值是空(null可以手動清空一個變數的值,使得該變數變為object類型,值為null),undefined則表示只聲明瞭變數,但還沒有賦值。

img

img

六、引用數據類型

1、對象(Object)

​ JaveScript中所有的事務都是對象:字元串、數值、數組、函數...此外JavaScript允許用戶自定義對象

​ JaveScript提供多個內建對象,比如String、Date、Array等

​ 對象是帶有屬性和方法的特殊數據類型

2、數組(Array)

​ 數組類似於Python中的列表

​ 使用單獨的變數名來存儲一系列的值

創建數組的方法

let a = [1,2,3,4,5];

常用方法

序號 方法 說明
1 .length 數組的大小
2 .push(ele) 尾部追加元素
3 .pop() 獲取尾部的元素
4 .unshift(ele) 頭部插入元素
5 .shift() 頭部移除元素
6 .slice(start, end) 切片
7 .reverse() 反轉
8 .join(seq) 將數組元素連接成字元串
9 .concat(val, ...) 連接數組
10 .sort() 排序
11 .forEach() 將數組的每個元素傳遞給回調函數
12 .splice() 刪除元素,並向數組添加新元素。
13 .map() 返回一個數組元素調用函數處理後的值的新數組
let a = [1,2,3]
let b = ['ABC','DEF']

1、a.length  // 3 返回數組內部數據的數量

2、a.push(4)   // 在數組尾部添加值

3、a.pop()  // 彈出數值尾部的值

4、a.unshift(1)  // 在數值頭部插入數值,可一次插入多個

5、a.shift  // 移出數組頭部數據,一次只能移除一個

6、a.slice(1,3)  // 數組切片取值,設置起始和結束位置的索引

7、a.reverse()  // 反轉元組內數據

8、a.join()  //  '3,2,1,1,5' 將數組內數據轉成字元類型

9、a.concat(b)  //(7) [3, 2, 1, 1, 5, 'ABC', 'DEF'] 拼接數組

10、a.sort()  // 將數組內數值由小到大排序

11、 var obj = {
            '1' : 'abc',
            '3' : 100,
            '5' : 'hello'
        }
        var arr = [1, 3, 5];
        arr.forEach(function(item){
            // console.log(item);  
        },obj);//返回值: 1 3 5

12、a.splice('a','b','c')  //刪除數組內現有數據,添加新的數據

13、et array = [1, 2, 3, 4, 5];

    let newArray = array.map((item) => {
        return item * item;
    })

    console.log(newArray)  // [1, 4, 9, 16, 25]

3、字典(Dictionary)

​ 字典同於Python中的字典

​ 字典是一種以鍵-值對形式存儲數據的數據結構,比如:名字-電話號碼,通過名字就能找到對應的電話號碼,名字就是鍵(key),電話號就是值(value);

創建字典的方法

1、方式一: 創建字典的同時直接添加鍵值對
	let 字典名 = {鍵1:值1,
              鍵2:值2
              }
    
2、方式二:  創建一個空字典,然後再添加鍵值對
	let 字典名 = new Object();

字典的基本用法

let d1 = {name: 'kangkang', age: 18, hobby: 'read'}

1、索引取值
	d1.name   // 'kangkang'
	d1[name]  // 'kangkang'

2、添加鍵值對
	d1.鍵名 = 值
	d1[鍵名] = 值	

七、運算符

1、算數運算符

符號 描述
+
-
*
/
% 取餘
++ 自增1
-- 自減1
var x=10;

var res1 = x ++;   加號在後面	先賦值後自增

var res2 = ++ x;	加號在前面	 先自增後賦值

2、比較運算符

  • 弱:
    • 不同類型的類型解釋器會自動轉換為相同類型的數據進行比較
    • ‘1’== 1;// true
  • 強:
    • 不同類型數據不會自動轉換類型
    • ‘1’== 1;// false
符號 描述
!= 不等於(弱)
== 等於(弱)
=== 等於(強)
!=== 不等於(強)

3、邏輯運算符

符號 描述
&&
||

八、流程式控制制

1.單if分支
	if (條件){
        條件成立執行的代碼
    }
2.if...else分支
	if(條件){
        條件成立執行的代碼
    }else{
        條件不成立執行的代碼
    }
3.if...else if...else分支
	if(條件1){
        條件1成立執行的代碼
    }else if(條件2){
        條件1不成立條件2執行的代碼
    }
    else{
        條件1和2都不成立執行的代碼
    }
4.如果分支結構中else if很多還可以考慮使用switch語法
	switch(條件){
        case 條件1:
        	條件1成立執行的代碼;
        	break;  如果沒有break會基於某個case一直執行下去
        case 條件2:
        	條件2成立執行的代碼;
        	break;
        case 條件3:
        	條件3成立執行的代碼;
        	break;
       	case 條件4:
        	條件4成立執行的代碼;
        	break;
        default:
  			 條件都不滿足執行的代碼
    }

"""
三元運算
	python中:   值1 if 條件 else 值2
	JS中:	   條件?值1:值2
"""

九、迴圈結構

1、for迴圈

for迴圈
	for(起始條件;迴圈條件;條件處理){
        迴圈體代碼
    }
	for(let i=0;i<10;i++){
       	 console.log(i)
    }
 	let dd = {'name':'jason','age':18}
   for(let k in dd){
        console.log(k)
    }

2、while迴圈

while迴圈
	while(迴圈條件){
        迴圈體代碼
    }

十、函數

1.JS中函數的形參與實參個數可以不對應
傳少了就是undefined 傳多了不用
2.函數體代碼中有一個關鍵字arguments用來接收所有的實參
3.函數的返回值如果有多個需要自己處理成一個整體

1、普通函數

function 函數名(形參){
    // 函數註釋
    函數體代碼
    return 返回值
}

2、匿名函數

# 匿名函數
var s1 = function(a, b){
  return a + b;
}

3、箭頭函數

# 箭頭函數
var f = v => v;
var f = function(v){
  return v;
}

var f = () => 5;
var f = function(){return 5};

var sum = (num1, num2) => num1 + num2;
var sum = function(num1, num2){
  return num1 + num2;  
}

十一、內置對象

1、時間相關

var d = new Date(); 
//getDate()                 獲取日
//getDay ()                 獲取星期
//getMonth ()               獲取月(0-11)
//getFullYear ()            獲取完整年份
//getYear ()                獲取年
//getHours ()               獲取小時
//getMinutes ()             獲取分鐘
//getSeconds ()             獲取秒
//getMilliseconds ()        獲取毫秒
//getTime ()                返回累計毫秒數(從1970/1/1午夜)

2、json序列化

let dd = {name: 'jason', age: 18}
JSON.stringify(dd)	序列化
JSON.parse(ss)	   反序列化

3、正則

定義正則兩種方式
var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");
var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/;

1.全局模式的規律
	lastIndex
2.test匹配數據不傳預設傳undefined

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

-Advertisement-
Play Games
更多相關文章
  • 一、引子 我們都知道對指針( Pointer)的操作,實際上是對電腦記憶體地址的操作,通過訪問記憶體地址實現間接訪問該地址中保存的數據。其實就是CPU的定址方式中的間接定址。簡單概括正常使用指針時的3個步驟為: 定義指針變數 綁定指針即給指針變數賦值 解引用即間接訪問目標變數通過一個簡單的例子來看這3 ...
  • 11章 併發數據 瞭解併發需要先瞭解的概念: 1.資料庫是一個可以共用資源,可以多用戶同時使用一個資料庫,該資料庫稱為多用戶資料庫,如訂票系統、銀行系統 2.多事務執行方式: 1.事務串列執行 : 務執行完在執行下一個事務 - 缺點資源浪費 2.交叉併發方式 : 在單處理機系統中,事務的並行事務是提 ...
  • GreatSQL社區原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 GreatSQL是MySQL的國產分支版本,使用上與MySQL一致。 作者:王權富貴 1.概述 MySQL的分區表沒有禁止NULL值作為分區表達式的值,無論它是列值還是用戶提供的表達式的值,需要記住NULL值不是數字。My ...
  • 什麼是直方圖,在MySQL 8.0.3如何創建直方圖?MySQL的直方圖是如何影響執行計劃生成的?創建直方圖有哪些註意事項?直方圖和索引對優化器的選擇上有什麼差異,又該如何選擇?如何判斷直方圖對執行計劃的影響?MySQL官方blog的這篇文章用非常具體的示例回答了這一系列問題,let's go。原文 ...
  • 我國製造業擁有31個大類、179個中類和609個小類,是全球產業門類最齊全、產業體系最完整的製造業。二十大報告中強調:“堅持把發展經濟的著力點放在實體經濟上”“推動製造業高端化、智能化、綠色化發展”。這為中國製造邁向高質量發展指明瞭方向。 疫情發生以來,製造業面臨用工難、復產復工難、成本高、數據管理 ...
  • 1.4 Apache Hadoop 完全分散式集群搭建 軟體和操作系統版本 Hadoop框架是採用Java語言編寫,需要java環境(jvm) JDK版本:JDK8版本 集群: 知識點學習:統一使用vmware虛擬機虛擬三台linux節點,linux操作系統:Centos7 生產階段:建議最少5台服 ...
  • 本次我把CSS中的重難點整理出來,總共54個核心知識點,供大家複習,希望能幫到大家。這些重難點是進階高薪必需要掌握的知識點,同時也是面試必問的內容。 因為涉及的內容較多,我分5篇內容發出來,好逐一進行讓大家消化這些內容,本次我把前1-12個CSS重難點整理出來,具體內容如下: CSS選擇器與優先順序 ...
  • jQuery05 9.作業 9.1homework01 對多選框進行操作,輸出選中的多選框的個數,並且把選中愛好的名稱顯示。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>homework01</title ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...