主頁 > 企業開發 > JavaScript學習筆記

JavaScript學習筆記

2022-04-29 08:24:51 企業開發

《狂神說JS》課程筆記

tips:js——從面向物件編程到面向監獄編程……開個玩笑!

目錄
  • 《狂神說JS》課程筆記
    • JavaScript概述
        • JS的優點:適用范圍廣,實用性高
        • JS的缺點:高并發缺陷
      • JavaScript框架
      • UI框架
      • JavaScript構建工具
    • JavaScript的引入
        • 內部參考
        • 外部參考
    • JavaScript的基本語法
        • JavaScript的注釋方式
        • JavaScript的資料型別和運算子
          • 數值
          • 文本
          • 布林值
          • null和undefined
          • 陣列
        • 物件
          • 邏輯運算子
          • 比較運算子
          • 數值運算子
    • JavaScript基本規范
    • JavaScript的嚴格檢查模式
      • 嚴格檢查模式
    • JavaScript基礎知識詳解
      • String
      • Array
      • 物件
      • 流程控制
      • Map和Set
        • Map
        • Set
      • iterator
    • JavaScript函式
      • arguments
      • rest引數
      • 作用域
      • 全域變數的規范
      • 方法呼叫和apply
    • JavaScript常用物件介紹
      • Date
      • JSON
      • Ajax
    • JavaScript的面向物件編程??
    • 操作BOM物件!!
      • BOM物件:
    • 操作DOM物件!!
      • 更新DOM節點
      • 洗掉DOM節點
      • 插入DOM節點
        • 移動節點
        • 創建節點并追加
      • 操作表單以及驗證
    • jQuery
      • jQuery的使用:
        • 基礎選擇器selector
        • 常用事件action
    • 技巧
      • 扒網頁
      • 鞏固JS知識
      • 鞏固HTML,CSS知識

JavaScript概述

前端有很多需要學習的模塊

結構層HTML、表現層CSS、CSS前處理器(用于簡化冗雜的CSS代碼)、行為層JavaScript

JS的優點:適用范圍廣,實用性高

JS的缺點:高并發缺陷

JavaScript框架

  • jQuery:簡化DOM操作
  • Angular:MVC模式、模塊化開發
  • React:虛擬DOM的使用提高了前端的渲染效率,但是使用較為復雜,需要額外學習JSX語言
  • Axios:通訊框架、使用jQuery的AJAX通信功能與服務器互動

UI框架

  • Ant-Design:基于React的UI框架
  • ElementUI:基于Vue的UI框架
  • Bootstrap:前端開發的開源工具包
  • AmazeUI:HTML5跨屏前端框架

JavaScript構建工具

  • Babel:JS編譯器,用于瀏覽器不支持ES新特性
  • WebPack:用于打包、壓縮、合并以及按序加載

JavaScript的引入

和CSS樣式表的引入相同,有HTML內部參考和外部參考

內部參考

在head標簽或者body標簽的尾部添加script標簽,在其中添加JavaScript代碼

按照網頁的加載順序來看,位置在body標點尾部實踐最佳

外部參考

在head標簽內用script的src屬性引入js檔案

要注意和link不同,script無論內部參考和外部參考都是雙標簽

JavaScript的基本語法

JavaScript的注釋方式

和Java一樣

//用于單行注釋
/*
* 用于多行注釋
*/

JavaScript的資料型別和運算子

Java中的四類八種部分在JavaScript中分為數值、文本、圖形、音頻、視頻……

數值

整數、浮點數、科學計數法、負數、NaN(表示非數字)、Infinity(表示無窮大)

文本

'abc'、"abc"、"\n"

布林值

true和false

null和undefined

null即為空指標

undefined表示未定義

陣列
var arr = [1,2.3,'abc',"abc",NaN,null,true];
//由于var可以說是通用的資料型別,所以定義上JavaScript的陣列和Java是一樣的——陣列用于儲存一組資料型別相同的資料
new Array(1,2.3,'abc',"abc",NaN,null,true);
console.log(arr[10])-->undefined

物件

邏輯運算子

&&簡潔與、||簡潔或、!非

比較運算子

在js中‘=’表示賦值、‘’僅僅會進行值的比較,相等即為true、‘=’會對值和型別同時進行比較,同時相等則為true

所以NaN和自己進行比較結果為false,呼叫isNaN() 方法即可;

數值運算子

和Java相同,同樣對浮點數的運算會有精度的損失

JavaScript基本規范

  1. 不要在同一行中宣告多個變數
  2. 使用‘=’以及‘!’來比較true和false以及數值
  3. 不要使用全域函式
  4. switch陳述句必須有default兜底
  5. 函式的回傳值不應該時有時無
  6. for回圈必須使用大括號
  7. if條件陳述句必須使用大括號
  8. 應當寫注釋!

JavaScript的嚴格檢查模式

JavaScript語法非常隨意,甚至用來避免因隨意性導致錯誤的嚴格檢查模式都用的隨意,很像是ES6后隨意加上去的……

嚴格檢查模式

'use strict';
  1. 嚴格檢查模式必須放在JavaScript的第一行
  2. IDEA中的JavaScript版本必須是ES6或者ES6+(雖然我現在不用IDEA)

嚴格檢查模式下,let作為區域變數宣告并不會報錯,而var作為區域變數宣告就會有下劃線題示報錯,所以最好

  • var通常用作全域變數
  • let通常用作區域變數

JavaScript基礎知識詳解

JavaScript是不是要吧隨意詮釋到底!

出現了一些無法理解的地方,太過隨意導致代碼寫的多了連個錯誤都無法找到

String

"use strict"
var str = "Hello,world!";
let string = str;
let num = Math.random();
console.log(str);
console.log(str+num);
console.log(str+str);
console.log(str[0]);//這個就難以置信!!
console.log(str.indexOf('w'));
console.log(str.length);
console.log(str.toUpperCase());
console.log(str.substring(6,str.length-1));
Console:
    Hello,world!
    Hello,world!0.7754435203942351
    Hello,world!Hello,world!
    H
    6
    12
    HELLO,WORLD!
    world

Array

var array = [6,5,9,1,3,4,7,6,2]
console.log(array);
console.log(array.length);
array.length = 20;
console.log(array);
console.log(array.length);
array[15]=10;
console.log(array);
console.log(array.length);
array[50]=10;
console.log(array);
console.log(array.length);
console.log(array.sort());//無語了……
console.log(array.length);
console.log(array.slice(5,10));
console.log(array.length);
array.push("abc",'cc');
console.log(array);
console.log(array.length);
array.pop();
console.log(array);
console.log(array.length);
array.unshift("giao");
console.log(array);
console.log(array.length);
array.shift();
console.log(array);
console.log(array.length);
array.reverse();
console.log(array);
console.log(array.length);
var arr = [[1,2],[3,4],[5,6]];
console.log(arr);
Console:
    (9) [6, 5, 9, 1, 3, 4, 7, 6, 2]
    9
    (20) [6, 5, 9, 1, 3, 4, 7, 6, 2, empty × 11]
    20
    (20) [6, 5, 9, 1, 3, 4, 7, 6, 2, empty × 6, 10, empty × 4]
    demo3.html:29 20
    (51) [6, 5, 9, 1, 3, 4, 7, 6, 2, empty × 6, 10, empty × 34, 10]
    51
    (51) [1, 10, 10, 2, 3, 4, 5, 6, 6, 7, 9, empty × 40]
    51
    (5) [4, 5, 6, 6, 7]
    51
    (53) [1, 10, 10, 2, 3, 4, 5, 6, 6, 7, 9, empty × 40, 'abc', 'cc']
    53
    (52) [1, 10, 10, 2, 3, 4, 5, 6, 6, 7, 9, empty × 40, 'abc']
    52
    (53) ['giao', 1, 10, 10, 2, 3, 4, 5, 6, 6, 7, 9, empty × 40, 'abc']
    53
    (52) [1, 10, 10, 2, 3, 4, 5, 6, 6, 7, 9, empty × 40, 'abc']
    52
    (52) ['abc', empty × 40, 9, 7, 6, 6, 5, 4, 3, 2, 10, 10, 1]
    52
    (3) [Array(2), Array(2), Array(2)]0: (2) [1, 2]1: (2) [3, 4]2: (2) [5, 6]length: 3[[Prototype]]: Array(0)

物件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>物件</title>
	</head>
	<body>
		<script type="text/javascript">
		"use strict"
			var student = {
				name: "Pilo-pillow",
				age: 3,
				emile: "[email protected]",
				score: 60//最后一個不用加逗號
			}
			
		</script>
	</body>
</html>

image-20220426171328447

流程控制

var arr = [5,1,6,8,7,3,4,9];
arr.forEach(function(value){
    console.log(value)
})
/*-----------------------------*/
for(var num in arr){
    console.log(arr[num])
}

結果:

image-20220426172936189

Map和Set

Map

map儲存資料分為

鍵和值一一對應

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			var map = new Map([['1','這是一個字串1'],[1,'這是一個數字1']]);
			map.set(true,'這是一個布林值1')
		</script>
	</body>
</html>

image-20220426175536885

Set

set和Java中的set集合一樣,無序并且可以對資料進行去重

image-20220426213456444

iterator

image-20220427081121377

JavaScript函式

這里的函式和C里的很像

function 方法名稱(引數){
    執行處理
    return 回傳值;
}

var是全能宣告……

var 變數名稱 = function(引數){
    執行處理
    return 回傳值;
}//這個相當于Java里的匿名內部類

arguments

arguments是js中內置的一個物件,所有的函式執行時都會將引數值儲存在arguments中,arguments的使用和陣列一樣,但是定義上又不是陣列

JavaScript函式中并沒有多載函式的功能,但是arguments可以實作(模擬)多載,有些函式功能的實作借助于arguments將會變得更容易理解(相較于不適用arguments的時候)

rest引數

rest是為了處理除了已定義函式引數的其他引數,其本質是陣列,儲存的就是前面提的其他引數

function ways(num1,num2,...rest){//rest只能寫在最后
console.log("num1=>"+num1);
console.log("num2=>"+num2);
console.log(rest);
}

image-20220427094349721

作用域

對于區域變數和全域變數在使用規范和習慣上都和Java一樣

但是區域變數對于以下這種情況:

function test(){
    var a = 1;
    var b = 1;
    console.log(a+b);
}

結果為:2

function test(){
    var a = 1;
    console.log(a+b);
    var b = 1;
}
function test(){
    console.log(a+b);
    var a = 1;
    var b = 1;
}

結果為:NaN

function test(){
    console.log(a+b);
}

結果為:a is not defined

所以說在第二段程式中,js自動將a,b在函式開頭就宣告了,老特性了……

全域變數的規范

我們所有的全域變數都會系結在window物件(就是網頁視窗)上,這樣多段js代碼的全域變數就若是相同就會沖突,需要定義唯一全域變數

用let去定義區域變數,用var定義全域變數,用const定義常量,并且常量名稱要全大寫

方法呼叫和apply

apply的意思是申請,感覺JavaScript越來越放蕩了……

function getName() {
    return this.name;
}
var pillow = {
    name: 'pillow',
    age: 20
}
getName.apply(pillow);

image-20220427111202294

getName.apply(pillow);——方法指向物件的屬性,this就是pillow物件

JavaScript常用物件介紹

物件判斷使用typeof即可

image-20220427111824804

Date

獲得有關時間的資料,像是現在的年、月、日、時、分、秒、周幾、時間戳(從1970年1月1日00:00:00到現在的毫秒數)

其他的請發揮想象,你想的JavaScript都有……

JSON

JSON 是用于存盤和傳輸資料的格式,

JSON 通常用于服務端向網頁傳遞資料 ,

JSON 格式化后為 JavaScript 物件

JSON 格式在語法上與創建 JavaScript 物件代碼是相同的,

由于它們很相似,所以 JavaScript 程式可以很容易的將 JSON 資料轉換為 JavaScript 物件,

Ajax

Ajax(Asynchronous JavaScript and XML,即異步 JavaScript 和 XML)技術用于與服務器交換資料并重繪部分頁面,實作更好的用戶體驗,

JavaScript的面向物件編程??

JavaScript的繼承可用proto實作

子類.__proto__=父類;

略顯詭異

"use strict"
// 定義一個類
class Person {
    constructor(name) {
        this.name = name;
    }
    sayHello() {
        console.log('hello!');
    }
}
// 繼承一個類
class Man extends Person {
    constructor(name, age) {
        super(name)
        this.age = age;
    }
    sayAge(age) {
        console.log(age + 'years old');
    }
}
// 創建物件
var pillow = new Man("pillow",20);
var haozhi = new Person('haozhidada');

使用相同,但是在瀏覽器中可以看到一直在‘Prototype’,就是一直在繼承繼承……

操作BOM物件!!

BOM?---->Browser Object Model

就是瀏覽器物件模型——將瀏覽器作為物件的模型,這么理解?

BOM由多個物件構成,其中代表瀏覽器視窗的window物件是BOM的頂層物件

BOM物件:

  • window物件——JS最頂層物件,直接代表瀏覽器視窗
    • document物件——檔案物件,在JavaScript中,代表整個HTML檔案,可以進行寫入、訪問、修改等等
    • location物件——瀏覽器當前URL資訊,用于獲得當前頁面的地址,并把瀏覽器重定向到新的頁面
      • 獲取具體的檔案樹節點
      • 獲取cookie
    • navigator——瀏覽器本身資訊,可通過此得到瀏覽器名稱、內核、版本、用戶資訊等等,可以知道瀏覽器客戶端為手機端或者PC端等等
    • screen——客戶端螢屏資訊,像是螢屏大小(我的是1920*1080px)
    • history——瀏覽器訪問歷史資訊!!

操作DOM物件!!

檔案樹?就是將HTML中標簽的分級按照樹型結構來看?

像是:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>DOM學習</title>
	</head>
	<body>
		<div >
			<a href="https://www.cnblogs.com/Pilo-pillow/archive/2022/04/28/#" >鏈接</a>
			<h1 id="c">一級標題</h1>
			<ul>
				<li>Document</li>
				<li>Object</li>
				<li>Model</li>
			</ul>
		</div>
		<p>段落</p>
		<script>
			var a = document.getElementsByClassName('a');
			var c = document.getElementById('c');
			var li = document.getElementsByTagName('li');
		</script>
	</body>
</html>

image-20220428165401704

image-20220428165422262

使用原生js選擇很少,大都搭配jQuery封裝使用

更新DOM節點

獲得HTML節點后我們就可以對其進行操作了

image-20220428170857513

image-20220428170912777

洗掉DOM節點

若要洗掉此節點,要先獲取此節點的父節點,然后移除掉此節點

image-20220428172715928

需要注意:更改檔案后的頁面是實時更新的,所以像上面移除掉ul.children[0]后下一個ul.children[0]就是原來第二個li,洗掉到沒有的話就會報錯

插入DOM節點

直接對DOM節點進行修改會覆寫掉原來的內容,所以一般我們會追加節點或者創造節點

移動節點

image-20220428174746777

image-20220428174654927

image-20220428174726161

創建節點并追加

image-20220428175250313

創建就是create……

追加就是創建并移動……

操作表單以及驗證

表單:

  • 文本框text
  • 下拉框select
  • 單選框radio
  • 多選框checkbox
  • 隱藏域hidden
  • 密碼框password以及MD5加密

value:值

checked:是否選中

jQuery

jQuery相當于Java中的工具類別庫,里面是封裝的JavaScript的代碼

可以下載jQuery到本地進行參考,也可以直接使用網路上的鏈接

jQuery的使用:

$(selector).action(function(){
    alert(no no no)
};)

$美元符號相當于jQuery,selector是CSS選擇器,action就是事件,內部是事件

基礎選擇器selector

  • id選擇器:#id
  • 標簽選擇器:element
  • 類選擇器:.class

常用事件action

點擊click

滑鼠mouse~~~

鍵盤key~~~

技巧

扒網頁

找到想要的網頁,然后將多余的代碼刪掉,只留下核心代碼,然后下載去看,更換元素等等……從入門到入獄

鞏固JS知識

多多看jQuery的原始碼,看看js游戲的原始碼……

鞏固HTML,CSS知識

多看網頁原始碼

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

標籤:其他

上一篇:面試必問的8個CSS回應式單位,你知道幾個?

下一篇:vue - git

標籤雲
其他(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