主頁 > 企業開發 > 前端(三)-JavaScript

前端(三)-JavaScript

2022-07-13 12:08:48 企業開發

1、基本語法

1.1 引入JavaScript

1.1.1行內引入

<input type="button" value="https://www.cnblogs.com/xiaoqigui/p/輕輕點我一下" onclick="javascript:alert('正在學習Javascript!')">

1.1.2 內部引入

<script type="text/javascript">
    function testClickTwo(){
        alert("正在學習JavaScriptTwo")
    }
</script>

<input type="button" value="https://www.cnblogs.com/xiaoqigui/p/輕輕點我一下Two" onclick="testClickTwo()">

1.1.3 外部引入

<!-- 引入外部js腳本檔案 -->
<script src="https://www.cnblogs.com/xiaoqigui/p/js/test.js" type="text/javascript"></script>

1.2 資料型別和變數

typeof

查看資料型別;

關鍵字 型別
undefined 未定義
number 數字
string 字串
boolean 布爾

number 的注意點

  • NaN; NaN表示Not a Number,當無法計算結果時用NaN表示 ;
  • Infinity; Infinity表示無限大,當數值超過了JavaScript的Number所能表示的最大值時,就 表示為Infinity;

1.3 strict模式

JavaScript在設計之初,為了方便初學者學習,并不強制要求用 var 申明變數,這個設計錯誤帶來了 嚴重的后果:如果一個變數沒有通過 var 申明就被使用,那么該變數就自動被申明為全域變數;

為了修補JavaScript這一嚴重設計缺陷,ECMA在后續規范中推出了strict模式,在strict模式下運行的 JavaScript代碼,強制通過 var 申明變數,未使用 var 申明變數就使用的,將導致運行錯誤,

<!--啟用strict模式的方法是在JavaScript代碼的第一行寫上:-->
<script>
    `use strict`;
    // 如果瀏覽器支持strict模式,下面的代碼將報ReferenceError錯誤:
    abc = 'Hello, world';  //沒有使用var宣告變數
    console.log(abc);
</script>

1.4 字串

1.4.1 多行字串

由于多行字串用 \n 寫起來比較費事,所以最新的ES6標準新增了一種多行字串的表示方法,用反 引號 ``表示:

`這是一個
多行
字串`;

1.4.2 模板字串(注意模板字符的放多行字串號``反引號里面才可以)

ES6新增了一種模板字串,表示方法和上面的多行 字串一樣,但是它會自動替換字串中的變數:

var name = '小明';
var age = 20;
var message = `你好, ${name}, 你今年${age}歲了!`;
alert(message);

1.4.3 常用方法

方法 說明
length() 字串長度
str[index] 通過下標獲取字符
toUpperCase() 變大寫
toLowerCase() 變小寫
charAt(index) 回傳指定下標的字符
indexOf(str) 回傳指定字串的下標
lastIndexOf(str) 回傳指定字串最后一次出現的下標
substring(index1,index2) 回傳區間的字符(前閉后開)
... ...

1.5 陣列

JavaScript的 Array 可以包含任意資料型別,并通過索引來訪問每個元素,

1.5.1 初始化

//定義陣列1:var 陣列名 =new Array([長度]),長度可以省略
var varArray1 = new Array();
//訪問陣列元素
varArray1[0] = "LPL";
varArray1[1] = "LCK";
varArray1[3] = "LEL";
console.log(varArray1);

//定義陣列2,支持直接初始化
var varArray2 = new Array(10,20,30,40,50);
varArray2[5] = 60;
console.log(varArray2);

//定義陣列3:直接支持使用中括號
var varArray3 = [100,90,80];
console.log(varArray3);

1.5.2 常用方法

方法 說明
indexOf(index) 通過下標獲取元素
slice(index1,index2) 截取指定下標元素,回傳新陣列(前閉后開)
push(元素...) 向末尾添加任意元素
pop() 將末尾的元素洗掉
unshift(元素...) 向頭部添加任意元素
shift() 將頭部的元素洗掉
sort() 排序
reverse() 反轉
splice(index,num,元素...) 從指定的索引開始洗掉若干元素,然后再 從該位置添加若干元素
concat(array) 把當前的 Array 和另一個 Array 連接起來,并回傳一個新的 Array
join([符號]) 把當前 Array 的每個元素都用指定的字串連接起 來,然后回傳連接后的字串:

1.6 物件

JavaScript的物件是一種無序的集合資料型別,它由若干鍵值對組成,

1.6.1 定義一個物件

var 物件名 = {
    key: 'value',
    key: 'value',
    key: 'value'
}

1.6.2 獲取物件的屬性

物件.屬性

1.6.3 由于JavaScript的物件是動態型別,你可以自由地給一個物件添加或洗掉屬性:

var xiaoming = {
name: '小明'
};
xiaoming.age; // undefined
xiaoming.age = 18; // 新增一個age屬性
xiaoming.age; // 18
delete xiaoming.age; // 洗掉age屬性
xiaoming.age; // undefined
delete xiaoming['name']; // 洗掉name屬性
xiaoming.name; // undefined
delete xiaoming.school; // 洗掉一個不存在的school屬性也不會報錯

如果我們要檢測物件是否擁有某一屬性,可以用 in 運算子:

var xiaoming = {
name: '小明',
birth: 1990,
school: 'No.1 Middle School',
height: 1.70,
weight: 65,
score: null
};
'name' in xiaoming; // true
'grade' in xiaoming; // false

不過要小心,如果用 in 判斷一個屬性存在,這個屬性不一定是 這個物件的,它可能是這個物件繼承得 到的:

1 'toString' in xiaoming; // true
//因為 toString 定義在 object 物件中,而所有物件最終都會在原型鏈上指向 object,所以xiaoming 也擁有 toString 屬性,

要判斷一個屬性是否是 xiaoming 自身擁有的,而不是繼承得到的,可以用 hasOwnProperty() 方法:

var xiaoming = {
name: '小明'
};
xiaoming.hasOwnProperty('name'); // true
xiaoming.hasOwnProperty('toString'); // false

1.7 流程控制

1.7.1 if

1.7.2 for

for ... in , 它可以把一個物件的所有屬性依次回圈出來:

var o = {
    name: 'Jack',
    age: 20,
    city: 'Beijing'
};
for (var key in o) {
    if (o.hasOwnProperty(key)) {
        console.log(key); // 'name', 'age', 'city'
    }
}

由于 **Array 也是物件**,而它的每個元素的**索引被視為物件的屬性**,所以**遍歷出來是下標**;

var a = ['A', 'B', 'C'];
for (var i in a) {
    console.log(i); // '0', '1', '2'
    console.log(a[i]); // 'A', 'B', 'C'
}
//請注意,for... in 對 Array 的回圈得到的是 String 而不是 Number ,

1.7.3 while

1.8 Map 和Set

1.8.1 Map

Map 是一組鍵值對的結構,具有極快的查找速度,

1.8.1.1初始化
//初始化 Map 需要一個二維陣列,或者直接初始化一個空 Map;
var m = new Map(); // 空Map
m.set('Adam', 67); // 添加新的key-value
m.set('Bob', 59);
m.has('Adam'); // 是否存在key 'Adam': true
m.get('Adam'); // 67
m.delete('Adam'); // 洗掉key 'Adam'
m.get('Adam'); // undefined

//由于一個key只能對應一個value,所以,多次對一個key放入value,后面的值會把前面的值沖掉:

1.8.2 Set

Set 和 Map 類似,也是一組key的集合,但不存盤value,由于key不能重復,所以,在 Set 中, 沒有重復的key;

var s1 = new Set(); // 空Set
var s2 = new Set([1, 2, 3,3,'3']); // 含1, 2, 3,'3'
//重復元素在 Set 中自動被過濾:3
//通過 delete(key) 方法可以洗掉元素:

1.9 Iterable

遍歷 Array 可以采用下標回圈,遍歷Map 和 Set 就無法使用下標, 為了統一集合型別,ES6標準引入了新的 iterable 型別,Array,Map,Set 屬于; 具有 iterable 型別的集合可以通過新的 for ... of 回圈來遍歷,

更好的方式是直接使用 iterable 內置的 forEach 方法,它接收一個函式,每次迭代就自動回呼該 函式,

1.9.1 Array

var a = new Array(元素...);
a.forEach(function (element, index, array) {
    // element: 指向當前元素的值
    // index: 指向當前索引
    // array: 指向Array物件本身
    console.log(element + ', index = ' + index);
})

1.9.2 Map

Map 的回呼函式引數依次為 value 、 key 和 map 本身:

var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
m.forEach(function (value, key, map) {
	console.log(value);
});

1.9.3 set

Set 沒有索引,因此回呼函式的前兩個引數都是元素本身:

var s = new Set(['A', 'B', 'C']);
s.forEach(function (element, sameElement, set) {
	console.log(element);
});

2、互動彈窗

方法 說明
alert(str) 警告彈窗,沒有回傳值,只有確定按鈕
prompt(str) 有輸入框(回傳值為輸入內容,直接取消回傳值為空null,沒有輸入但確認回傳值為空字串)
prompt(str1,str2) 有輸入框和默認值
confirm(str) 是否選擇框(回傳值,true,false)

3、函式

3.1 常用系統函式

方法 說明
parseInt(strNum) 將字串轉換為整型數字
parseFloat(strNum) 將字串轉換為浮點型數字
isNaN(值) true,表示不是數字,false,表示是數字

3.2 自定義函式

3.2.1定義函式

方式1

function abs(x) {
    if (x >= 0) {
    	return x;
    } else {
    	return -x;
    }
}
//一旦執行到 return 時,函式就執行完畢,并將結果回傳,
//如果沒有 return 陳述句,函式執行完畢后也會回傳結果,只是結果為 undefined ,

方式2

var abs = function (x) {
    if (x >= 0) {
    	return x;
    } else {
    	return -x;
    }
};
//在這種方式下, function (x) { ... } 是一個匿名函式,它沒有函式名,但是,這個匿名函式賦值給了變數 abs ,所以,通過變數 abs 就可以呼叫該函式,
//上述兩種定義完全等價,注意第二種方式按照完整語法需要在函式體末尾加一個 ; ,表示賦值陳述句結束,

3.3兩個重要點

3.3.1arguments 關鍵字

JavaScript還有一個免費贈送的關鍵字 arguments ,它只在函式內部起作用,并且永遠指向當前函式 的呼叫者傳入的所有引數,

function foo(x) {
console.log('x = ' + x); // 10
for (var i=0; i<arguments.length; i++) {
console.log('arg ' + i + ' = ' + arguments[i]); // 10, 20, 30
}
}
foo(10, 20, 30)

3.3.2 rest 引數

function foo(a, b, ...rest) {
console.log('a = ' + a);
console.log('b = ' + b);
console.log(rest);
}
foo(1, 2, 3, 4, 5);
// 結果:
// a = 1
// b = 2
// Array [ 3, 4, 5 ]
foo(1);
// 結果:
// a = 1
// b = undefined
// Array []

rest引數只能寫在最后,前面用 ... 標識,從運行結果可知,傳入的引數先系結 a 、 b ,多余的 引數以陣列形式交給變數 rest ;

3.4 變數的作用域

描述 作用域
var宣告的變數 全域變數
不用var宣告的變數(不建議使用) 全域變數
方法以內的變數 區域變數

3.4.1 兩個關鍵字

關鍵字 說明
let 宣告區域變數的關鍵字
const 宣告常量的關鍵字

3.4.2 全域物件

實際上,JavaScript默認有一個全域物件 window ,全 局作用域的變數實際上被系結到 window 的一個屬性:

4、事件

事件 說明
onclick 單機事件
onfocus 獲取焦點事件
onblur 失去焦點事件
onkeydown 鍵盤按下事件
onkeyup 鍵盤抬起事件
onkeypress 鍵盤產生可輸入字符事件
onmouseover 滑鼠移入事件
onmouseout 滑鼠移除事件

5、BOM

5.1 windows

方法 說明
close() 關閉瀏覽器視窗
open() 打開指定url瀏覽器視窗(可指定視窗大小)

5.2 history

方法 說明
back() 回傳上一個頁面
forward() 下一個頁面
go() 加載某個具體URL (go(-1)回傳上一個頁面 go(1)下一個頁面)

5.3 location

屬性 說明
host 主機名+埠號
hostname 主機名
href 完整URL(給href賦值可以跳轉到指定頁面)
方法 說明
repload() 重新加載檔案
replace() 用新的檔案替換當前檔案

5.4 document

屬性 說明
referrer 回傳載入前檔案的URL
URL 回傳當前檔案的URL
cookie 回傳當前頁面的cookie
方法 說明
getElementById() 回傳對擁有指定id的第一個物件的參考
getElementByName() 回傳帶有指定name值的物件集合
getElementByTagName() 回傳帶有指定標簽的物件的集合
getElementByClassName() 回傳帶指定class值的物件集合
write() 向檔案寫文本,HTML運算式或JavaScript代碼

5.5 innerHTML 與 innerText

方法() 說明
innerHTML = "" 往節點里里面些內容,里面的標簽會被決議
innerHTML 獲取節點里面的內容
innerText = "" 往節點里里面些內容,里面的標簽不會被決議
innerText 獲取節點里面的內容

toFixed(number) 保留指定位數

5.6 Date

方法 說明
getDate() 每月中的第幾天
getDay() 每周的第幾天
getHours() 小時
getMinutes() 分鐘
getSeconds() 秒數
getMonth() 月份(0~11)
getFullYear() 年份
getTime() 時間戳

6.7 Math物件

方法 說明
ceil() 向上舍入
floor() 向下舍入
rand() 四舍五入
random() 回傳0~1之間的亂數

6.8 定時函式與清除函式(時鐘特效)

定時函式

方法 說明
setTimeout("呼叫的函式",等待的秒數) 指定時間后執行一次函式
setInterval("呼叫的函式",間隔的秒數) 指定時間間隔一直執行函式

清除函式

方法 說明
clearTimeout(setTimeout回傳的ID值) 停止執行函式
clearInterval(setInterval回傳的ID值) 停止執行函式

6、DOM

6.1 層次關系訪問節點

層次訪問節點1,包含text,注釋等其他內容

屬性名稱 說明
parentNode 回傳接待你的父節點
childNodes 回傳子節點集合,childNodes[i]
firstChild 回傳節點的第一個子節點
lastChild 回傳節點的最后一個子節點
nextSibling 下一個節點
previousSibling 上一個節點

層次訪問節點2,只包含標簽元素節點

屬性名稱 說明
firstElementChild 回傳節點的第一個子節點
lastElementChild 回傳節點的最后一個子節點
nextElementSibling 下一個節點
previousElementSibling 上一個節點

6.2 操作節點

6.2.1操作節點屬性

方法 說明
getAttribute("屬性名") 獲得節點指定屬性值
setAttribute("屬性名",屬性引數) 設定節點的屬性值

6.2.2創建和插入節點

方法 說明
cerateElement(tagName) 通過標簽名創建新的元素節點
A.appendChild(B) 把B節點(作為子節點)追加到A節點的末尾
inseretBefore(A,B) 把A節點插入到B節點之前
cloneNode(deep) 復制某個指定的節點

cloneNode(deep)的深拷貝和淺拷貝

方法 說明
cloneNode(false) 淺拷貝(不拷貝標簽內部的子元素)
cloneNode(true) 深拷貝(包括標簽內部的子元素一起拷貝)

6.2.3 洗掉和替換節點

方法 說明
removeChild(node) 洗掉指定的節點
replaceChild(newNode,oldNode) 用其他的節點替換指定的節點

注意只有父節點才可以洗掉子節點或者替換子節點;

6.3 操作節點樣式

6.3.1 事件

修改樣式主要與事件一起使用;

事件 說明
onclick 單機事件
onfocus 獲取焦點事件
onblur 失去焦點事件
onkeydown 鍵盤按下事件
onkeyup 鍵盤抬起事件
onkeypress 鍵盤產生可輸入字符事件
onmouseover 滑鼠移入事件
onmouseout 滑鼠移除事件

6.3.2 通過節點的style屬性

元素節點.style.樣式屬性=”樣式值“;

//舉例
document.getElementById("cart").style.backgroundColor="#fff";

6.3.3 className屬性

//carOut類屬性時在CSS外部樣式中已經存在的
document.getElementById("cart").className = "cartOut";

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/498886.html

標籤:JavaScript

上一篇:執行vue create時到底做了什么

下一篇:作用域&變數提升&閉包題目及內容解答

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • IEEE1588PTP在數字化變電站時鐘同步方面的應用

    IEEE1588ptp在數字化變電站時鐘同步方面的應用 京準電子科技官微——ahjzsz 一、電力系統時間同步基本概況 隨著對IEC 61850標準研究的不斷深入,國內外學者提出基于IEC61850通信標準體系建設數字化變電站的發展思路。數字化變電站與常規變電站的顯著區別在于程序層傳統的電流/電壓互 ......

    uj5u.com 2020-09-10 03:51:52 more
  • HTTP request smuggling CL.TE

    CL.TE 簡介 前端通過Content-Length處理請求,通過反向代理或者負載均衡將請求轉發到后端,后端Transfer-Encoding優先級較高,以TE處理請求造成安全問題。 檢測 發送如下資料包 POST / HTTP/1.1 Host: ac391f7e1e9af821806e890 ......

    uj5u.com 2020-09-10 03:52:11 more
  • 網路滲透資料大全單——漏洞庫篇

    網路滲透資料大全單——漏洞庫篇漏洞庫 NVD ——美國國家漏洞庫 →http://nvd.nist.gov/。 CERT ——美國國家應急回應中心 →https://www.us-cert.gov/ OSVDB ——開源漏洞庫 →http://osvdb.org Bugtraq ——賽門鐵克 →ht ......

    uj5u.com 2020-09-10 03:52:15 more
  • 京準講述NTP時鐘服務器應用及原理

    京準講述NTP時鐘服務器應用及原理京準講述NTP時鐘服務器應用及原理 安徽京準電子科技官微——ahjzsz 北斗授時原理 授時是指接識訓通過某種方式獲得本地時間與北斗標準時間的鐘差,然后調整本地時鐘使時差控制在一定的精度范圍內。 衛星導航系統通常由三部分組成:導航授時衛星、地面檢測校正維護系統和用戶 ......

    uj5u.com 2020-09-10 03:52:25 more
  • 利用北斗衛星系統設計NTP網路時間服務器

    利用北斗衛星系統設計NTP網路時間服務器 利用北斗衛星系統設計NTP網路時間服務器 安徽京準電子科技官微——ahjzsz 概述 NTP網路時間服務器是一款支持NTP和SNTP網路時間同步協議,高精度、大容量、高品質的高科技時鐘產品。 NTP網路時間服務器設備采用冗余架構設計,高精度時鐘直接來源于北斗 ......

    uj5u.com 2020-09-10 03:52:35 more
  • 詳細解讀電力系統各種對時方式

    詳細解讀電力系統各種對時方式 詳細解讀電力系統各種對時方式 安徽京準電子科技官微——ahjzsz,更多資料請添加VX 衛星同步時鐘是我京準公司開發研制的應用衛星授時時技術的標準時間顯示和發送的裝置,該裝置以M國全球定位系統(GLOBAL POSITIONING SYSTEM,縮寫為GPS)或者我國北 ......

    uj5u.com 2020-09-10 03:52:45 more
  • 如何保證外包團隊接入企業內網安全

    不管企業規模的大小,只要企業想省錢,那么企業的某些服務就一定會采用外包的形式,然而看似美好又經濟的策略,其實也有不好的一面。下面我通過安全的角度來聊聊使用外包團的安全隱患問題。 先看看什么服務會使用外包的,最常見的就是話務/客服這種需要大量重復性、無技術性的服務,或者是一些銷售外包、特殊的職能外包等 ......

    uj5u.com 2020-09-10 03:52:57 more
  • PHP漏洞之【整型數字型SQL注入】

    0x01 什么是SQL注入 SQL是一種注入攻擊,通過前端帶入后端資料庫進行惡意的SQL陳述句查詢。 0x02 SQL整型注入原理 SQL注入一般發生在動態網站URL地址里,當然也會發生在其它地發,如登錄框等等也會存在注入,只要是和資料庫打交道的地方都有可能存在。 如這里http://192.168. ......

    uj5u.com 2020-09-10 03:55:40 more
  • [GXYCTF2019]禁止套娃

    git泄露獲取原始碼 使用GET傳參,引數為exp 經過三層過濾執行 第一層過濾偽協議,第二層過濾帶引數的函式,第三層過濾一些函式 preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'] (?R)參考當前正則運算式,相當于匹配函式里的引數 因此傳遞 ......

    uj5u.com 2020-09-10 03:56:07 more
  • 等保2.0實施流程

    流程 結論 ......

    uj5u.com 2020-09-10 03:56:16 more
最新发布
  • 使用Django Rest framework搭建Blog

    在前面的Blog例子中我們使用的是GraphQL, 雖然GraphQL的使用處于上升趨勢,但是Rest API還是使用的更廣泛一些. 所以還是決定回到傳統的rest api framework上來, Django rest framework的官網上給了一個很好用的QuickStart, 我參考Qu ......

    uj5u.com 2023-04-20 08:17:54 more
  • 記錄-new Date() 我忍你很久了!

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 大家平時在開發的時候有沒被new Date()折磨過?就是它的諸多怪異的設定讓你每每用的時候,都可能不小心踩坑。造成程式意外出錯,卻一下子找不到問題出處,那叫一個煩透了…… 下面,我就列舉它的“四宗罪”及應用思考 可惡的四宗罪 1. Sa ......

    uj5u.com 2023-04-20 08:17:47 more
  • 使用Vue.js實作文字跑馬燈效果

    實作文字跑馬燈效果,首先用到 substring()截取 和 setInterval計時器 clearInterval()清除計時器 效果如下: 實作代碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta ......

    uj5u.com 2023-04-20 08:12:31 more
  • JavaScript 運算子

    JavaScript 運算子/運算子 在 JavaScript 中,有一些運算子可以使代碼更簡潔、易讀和高效。以下是一些常見的運算子: 1、可選鏈運算子(optional chaining operator) ?.是可選鏈運算子(optional chaining operator)。?. 可選鏈操 ......

    uj5u.com 2023-04-20 08:02:25 more
  • CSS—相對單位rem

    一、概述 rem是一個相對長度單位,它的單位長度取決于根標簽html的字體尺寸。rem即root em的意思,中文翻譯為根em。瀏覽器的文本尺寸一般默認為16px,即默認情況下: 1rem = 16px rem布局原理:根據CSS媒體查詢功能,更改根標簽的字體尺寸,實作rem單位隨螢屏尺寸的變化,如 ......

    uj5u.com 2023-04-20 08:02:21 more
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 08:01:50 more
  • 如何在 vue3 中使用 jsx/tsx?

    我們都知道,通常情況下我們使用 vue 大多都是用的 SFC(Signle File Component)單檔案組件模式,即一個組件就是一個檔案,但其實 Vue 也是支持使用 JSX 來撰寫組件的。這里不討論 SFC 和 JSX 的好壞,這個仁者見仁智者見智。本篇文章旨在帶領大家快速了解和使用 Vu ......

    uj5u.com 2023-04-20 08:01:37 more
  • 【Vue2.x原始碼系列06】計算屬性computed原理

    本章目標:計算屬性是如何實作的?計算屬性快取原理以及洋蔥模型的應用?在初始化Vue實體時,我們會給每個計算屬性都創建一個對應watcher,我們稱之為計算屬性watcher ......

    uj5u.com 2023-04-20 08:01:31 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:01:10 more
  • http1.1與http2.0

    一、http是什么 通俗來講,http就是計算機通過網路進行通信的規則,是一個基于請求與回應,無狀態的,應用層協議。常用于TCP/IP協議傳輸資料。目前任何終端之間任何一種通信方式都必須按Http協議進行,否則無法連接。tcp(三次握手,四次揮手)。 請求與回應:客戶端請求、服務端回應資料。 無狀態 ......

    uj5u.com 2023-04-20 08:00:32 more