主頁 > 前端設計 > JavaScript學習筆記(四)

JavaScript學習筆記(四)

2021-09-21 10:36:06 前端設計

運算子

    • 1.?一元運算子
      • 1.1) 遞增 / 遞減運算子
        • 遞增和遞減遵循的規則
      • 1.2)一元加和減
    • 2.?位運算子
      • 2.1)按位非
      • 2.2) 按位與
      • 2.3) 按位或
      • 2.4) 按位異或
      • 2.5) 左移
      • 2.6) 有符號右移
      • 2.7) 無符號右移
    • 3.? 布爾運算子
      • 3.1) 邏輯非
      • 3.2) 邏輯與
      • 3.3) 邏輯或
    • 4.?乘性運算子
      • 4.1) 乘法運算子
      • 4.2) 除法運算子
      • 4.3)取模運算子
    • 5.?指數運算子
    • 6.?加性運算子
      • 6.1) 加法運算子
      • 6.2)減法運算子
    • 7.?關系運算子
    • 8.?相等運算子
      • 8.1)等于和不等于
      • 8.2) 全等和不全等
    • 9.?條件運算子
    • 10.?賦值運算子
    • 11.?逗號運算子
    • 12.?常見運算子優先級


1.?一元運算子

1.1) 遞增 / 遞減運算子

前綴遞增和遞減

let a = 1, b = 2;
let c = ++a; // c = 2
let d = --b; // b = 1

后綴遞增和遞減

let a = 1;
let c = a--; // c = 1;
let d = a; // d = 0;

前后綴的主要區別:
??后綴遞增和遞減在陳述句求值后才發生,

這四個運算子均可用于任何值,即可以用字串,布林值和物件等,

遞增和遞減遵循的規則

  • 對于字串,如果是有效的數值形式,則轉換為數值再應用改變,變數型別從字串變成數值,
  • 對于字串,如果不是有效的數值形式,則將變數的值設定為 NaN ,變數型別從字串變成 數值,
  • 對于布林值,如果是 false,則轉換為 0 再應用改變,變數型別從布林值變成數值,
  • 對于布林值,如果是 true,則轉換為 1 再應用改變,變數型別從布林值變成數值,
  • 對于浮點值,加 1或減 1,
  • 如果是物件,則呼叫其 valueOf() 方法取得可以操作的值,對得到的 值應用上述規則,如果是 NaN,則呼叫 toString() 并再次應用其他規則,變數型別從物件變成數值,

1.2)一元加和減

一元加和減如果用在普通的數值運算上與數學用法沒有區別,
如果將一元加和減應用到非數值,則會執行與使用 Number() 轉型函式一樣的型別轉換:
??布林值 false 和true轉換為0和1
??字串根據特殊規則進行決議
??物件會呼叫它們的valueOf() 和 / 或 toString() 方法以得到可以轉換的值


2.?位運算子

位運算子用于數值的底層操作,也就是操作記憶體中表示資料的位元(位)

2.1)按位非

按位非運算子用波浪符(~)表示,它的作用是回傳數值的補數(即對數值取反并減一,不過位運算子運算速度更快),

let num1 = 25; // 二進制 00000000000000000000000000011001
let num2 = ~num1; // 二進制 11111111111111111111111111100110
console.log(num2); // -26

2.2) 按位與

按位與運算子用和號(&)表示,有兩個運算元,本質上,按位與就是將兩個數的每一個位對齊, 然后基于真值表中的規則,對每一位執行相應的與操作(1 & 1 = 1,其他均為 0),

let result = 25 & 3; 
// 25 = 0000 0000 0000 0000 0000 0000 0001 1000
//  3 = 0000 0000 0000 0000 0000 0000 0000 0011
//    = 0000 0000 0000 0000 0000 0000 0000 0001
console.log(result); // 1

2.3) 按位或

按位或運算子用管道符(|)表示,有兩個運算子,遵循基于真值表中的規則,每一位執行操作(0 | 0 = 0,其他均為 1),

let result = 25 | 3; 
// 25 = 0000 0000 0000 0000 0000 0000 0001 1001
//  3 = 0000 0000 0000 0000 0000 0000 0000 0011
//    = 0000 0000 0000 0000 0000 0000 0001 1011
console.log(result); // 27

2.4) 按位異或

按位異或用脫字符(^)表示,有兩個運算子,遵循基于真值表中的規則,每一位執行操作(當兩個相同的時候回傳 0 ,其他回傳 1),

let result = 25 ^ 3;
// 25 = 0000 0000 0000 0000 0000 0000 0001 1001 
//  3 = 0000 0000 0000 0000 0000 0000 0000 0011 
//    = 0000 0000 0000 0000 0000 0000 0001 1010 
console.log(result); // 26

2.5) 左移

左移運算子用兩個小于號(<<)表示,會按照指定的位數將數值的所有位向左移動(左移會以 0 填充這些空位,會保留它所運算元的符號),

let oldValue = 2; // 等于二進制 10 
let newValue = oldValue << 5; // 等于二進制 1000000,即十進制 64

2.6) 有符號右移

有符號右移由兩個大于號(>>)表示,會將數值的所有 32位都向右移,同時保留符號(正或負), 有符號右移實際上是左移的逆運算,
(右移后空位會出現在左側,且在符號位之后, ECMAScript會用符號位的值來填充這些空位,以得到完整的數值)

let oldValue = 64; // 等于二進制 1000000
let newValue = oldValue >> 5; // 等于二進制 10,即十進制 2

2.7) 無符號右移

無符號右移用 3個大于號表示(>>>),會將數值的所有 32位都向右移,
對于正數,無符號右移與有符號右移結果相同,
對于負數,與有符號右移不同,無符號右移會給空位補 0,而不管符號位是 什么,

let oldValue1 = 64; // 等于二進制 1000000
let newValue1 = oldValue1 >>> 5; // 等于二進制 10,即十進制 2
let oldValue2 = -64; // 等于二進制 11111111111111111111111111000000
let newValue2 = oldValue2 >>> 5; // 等于二進制00000111111111111111111111111110, 等于十進制 134217726

3.? 布爾運算子

布爾運算子一共有 3個:邏輯非、邏輯與和邏輯或,
(均可以用于任何型別的運算元)

3.1) 邏輯非

邏輯非運算子由一個嘆號(!)表示,
這個運算子始侄訓傳布林值,無論應用到的是什么資料型別,邏輯非運算子首先將運算元轉換為布林值,然后再對其取反,
遵循如下規則:

  • 如果運算元是物件,則回傳 false
  • 如果運算元是空字串,則回傳 true
  • 如果運算元是非空字串,則回傳 false
  • 如果運算元是數值 0,則回傳 true
  • 如果運算元是非 0數值(包括 Infinity),則回傳 false
  • 如果運算元是 null,則回傳 true
  • 如果運算元是 NaN,則回傳 true
  • 如果運算元是 undefined,則回傳 true

邏輯非運算子也可以用于把任意值轉換為布林值,
同時使用兩個嘆號(!!),相當于呼叫了轉型函式 Boolean(),

3.2) 邏輯與

邏輯與運算子由兩個和號(&&)表示,應用到兩個值,遵循真值表規則(兩個都為 true 的時候回傳 true,其他時候回傳 false)
遵循如下規則:

  • 如果第一個運算元是物件,則回傳第二個運算元
  • 如果第二個運算元是物件,則只有第一個運算元求值為 true 才會回傳該物件
  • 如果兩個運算元都是物件,則回傳第二個運算元
  • 如果有一個運算元是 null,則回傳 null
  • 如果有一個運算元是 NaN,則回傳 NaN
  • 如果有一個運算元是 undefined,則回傳 undefined

3.3) 邏輯或

邏輯或運算子由兩個管道符(||)表示,遵循真值表規則(兩個都為 false 的時候回傳 false,其他時候回傳 true),
遵循如下規則:

  • 如果第一個運算元是物件,則回傳第一個運算元
  • 如果第一個運算元求值為 false,則回傳第二個運算元
  • 如果兩個運算元都是物件,則回傳第一個運算元
  • 如果兩個運算元都是 null,則回傳 null
  • 如果兩個運算元都是 NaN,則回傳 NaN
  • 如果兩個運算元都是 undefined,則回傳 undefined

4.?乘性運算子

4.1) 乘法運算子

乘法運算子由一個星號(*)表示,可以用于計算兩個數值的乘積,

乘法運算子在處理特殊值時也有一些特殊的行為:

  • 如果 ECMAScript 不能表示乘積,則回傳 Infinity 或 -Infinity
  • 如果有任一運算元是 NaN,則回傳 NaN
  • 如果是 Infinity 乘以 0,則回傳 NaN,
  • 如果是 Infinity 乘以非0的有限數值,則根據第二個運算元的符號回傳 Infinity 或 -Infinity
  • 如果是 Infinity 乘以 Infinity,則回傳 Infinity
  • 如果有不是數值的運算元,則先在后臺用 Number() 將其轉換為數值,然后再應用上述規則

4.2) 除法運算子

除法運算子由一個斜杠(/)表示,用于計算第一個運算元除以第二個運算元的商,

除法運算子針對特殊值也有一些特殊的行為:

  • 如果ECMAScript不能表示商,則回傳 Infinity 或 -Infinity
  • 如果有任一運算元是 NaN,則回傳 NaN
  • 如果是 Infinity 除以 Infinity,則回傳 NaN
  • 如果是 0 除以 0,則回傳 NaN
  • 如果是非 0的有限值除以 0,則根據第一個運算元的符號回傳 Infinity 或 -Infinity
  • 如果是 Infinity 除以任何數值,則根據第二個運算元的符號回傳 Infinity 或 -Infinity
  • 如果有不是數值的運算元,則先在后臺用 Number() 函式將其轉換為數值,然后再應用上述規則,

4.3)取模運算子

取模(余數)運算子由一個百分比符號(%)表示,

取模運算子對特殊值也有一些特殊的行為:

  • 如果運算元是數值,則執行常規除法運算,回傳余數,
  • 如果被除數是無限值,除數是有限值,則回傳 NaN,
  • 如果被除數是有限值,除數是 0,則回傳 NaN
  • 如果是 Infinity 除以 Infinity,則回傳 NaN
  • 如果被除數是有限值,除數是無限值,則回傳被除數
  • 如果被除數是 0,除數不是 0,則回傳 0
  • 如果有不是數值的運算元,則先在后臺用 Number() 函式將其轉換為數值,然后再應用上述規則

5.?指數運算子

ECMAScript 7新增了指數運算子,Math.pow()現在有了自己的運算子**,結果是一樣的,

console.log(Math.pow(3, 2); // 9
console.log(3 ** 2);        // 9

console.log(Math.pow(16, 0.5); // 4 
console.log(16** 0.5);         // 4

指數運算子也有自己的指數賦值運算子**=,

let squared = 3;
squared **= 2;
console.log(squared); // 9

6.?加性運算子

加性運算子有兩個,加法和減法運算子,

6.1) 加法運算子

對于普通數值就是求和,對于其他的也有著特殊的規則,

如果兩個運算元都是數值,加法運算子執行加法運算并根據如下規則回傳結果:

  • 如果有任一運算元是 NaN,則回傳 NaN
  • 如果是 Infinity 加 Infinity,則回傳 Infinity
  • 如果是-Infinity 加 -Infinity,則回傳 -Infinity
  • 如果是 Infinity 加 -Infinity,則回傳 NaN
  • 如果是+0 加 +0,則回傳 +0
  • 如果是-0 加 +0,則回傳 +0
  • 如果是-0 加 -0,則回傳 -0

如果有一個運算元是字串,則要應用如下規則:

  • 如果兩個運算元都是字串,則將第二個字串拼接到第一個字串后面
  • 如果只有一個運算元是字串,則將另一個運算元轉換為字串,再將兩個字串拼接在一起

如果有任一運算元是物件、數值或布林值,則呼叫它們的 toString() 方法以獲取字串,然后再應用前面的關于字串的規則,
對于 undefined 和 null,則呼叫 String() 函式,分別獲取 “undefined” 和 “null”

6.2)減法運算子

對于普通的數值就是求差,也有著一些特殊的規則,

  • 如果兩個運算元都是數值,則執行數學減法運算并回傳結果
  • 如果有任一運算元是 NaN,則回傳 NaN
  • 如果是 Infinity 減 Infinity,則回傳 NaN
  • 如果是-Infinity 減-Infinity,則回傳 NaN
  • 如果是 Infinity 減-Infinity,則回傳 Infinity
  • 如果是 -Infinity 減 Infinity,則回傳 -Infinity
  • 如果是+0 減 +0,則回傳 +0
  • 如果是 +0 減 -0,則回傳 -0
  • 如果是 -0 減 -0,則回傳 +0
  • 如果有任一運算元是字串、布林值、null 或 undefined,則先在后臺使用 Number()將其轉 換為數值,然后再根據前面的規則執行數學運算,如果轉換結果是 NaN,則減法計算的結果是 NaN
  • 如果有任一運算元是物件,則呼叫其 valueOf() 方法取得表示它的數值,如果該值是 NaN,則 減法計算的結果是 NaN,如果物件沒有 valueOf() 方法,則呼叫其 toString() 方法,然后再將得到的字串轉換為數值

7.?關系運算子

關系運算子執行比較兩個值的操作,包括小于(<)、大于(>)、小于等于(<=)和大于等于(>=)
這幾個運算子都回傳布林值,

用到不同資料型別時也會發生型別轉換和其他行為:

  • 如果運算元都是數值,則執行數值比較
  • 如果運算元都是字串,則逐個比較字串中對應字符的編碼
  • 如果有任一運算元是數值,則將另一個運算元轉換為數值,執行數值比較
  • 如果有任一運算元是物件,則呼叫其 valueOf()方法,取得結果后再根據前面的規則執行比較, 如果沒有valueOf()運算子,則呼叫toString()方法,取得結果后再根據前面的規則執行比較
  • 如果有任一運算元是布林值,則將其轉換為數值再執行比較

8.?相等運算子

提供了兩組運算子:
第一組是等于和不等于,它們在比較之前執行轉換,
第二組是全等和不全等,在比較之前不執行轉換,

8.1)等于和不等于

等于運算子用兩個等于號(==)表示,如果運算元相等,則會回傳 true,
不等于 運算子用嘆號和等于號(!=)表示,如果兩個運算元不相等,則會回傳 true,這兩個運算子都會先進行型別轉換(通常稱為強制型別轉換)再確定運算元是否相等,

在轉換運算元的型別時,相等和不相等運算子遵循如下規則:

  • 如果任一運算元是布林值,則將其轉換為數值再比較是否相等,false 轉換為 0,true 轉換 為 1
  • 如果一個運算元是字串,另一個運算元是數值,則嘗試將字串轉換為數值,再比較是否相等
  • 如果一個運算元是物件,另一個運算元不是,則呼叫物件的 valueOf() 方法取得其原始值,再根據前面的規則進行比較

在進行比較時,這兩個運算子會遵循如下規則:

  • null 和 undefined 相等
  • null 和 undefined 不能轉換為其他型別的值再進行比較
  • 如果有任一運算元是 NaN,則相等運算子回傳 false,不相等運算子回傳 true,記住:即使兩 個運算元都是 NaN,相等運算子也回傳 false,因為按照規則,NaN 不等于 NaN
  • 如果兩個運算元都是物件,則比較它們是不是同一個物件,如果兩個運算元都指向同一個物件,則相等運算子回傳 true,否則,兩者不相等

8.2) 全等和不全等

全等和不全等運算子與相等和不相等運算子類似,只不過它們在比較相等時不轉換運算元,

  • 全等運算子由 3個等于號(===)表示,只有兩個運算元在不轉換的前提下相等才回傳 true,
  • 不全等運算子用一個嘆號和兩個等于號(!==)表示,只有兩個運算元在不轉換的前提下不相等才 回傳 true
let result1 = ("55" == 55); // true,轉換后相等 
let result2 = ("55" === 55); // false,不相等,因為資料型別不同

9.?條件運算子

條件運算子由 = ?: 組成,用法如下:

let num1 = 5, num2 = 6;
let max = (num1 > num2) ? num1 : num2;
/*
    相當于
    let max;
    if (num1 > num2) {
    	max = num1;
    }
    else {
    	max = num2;
    }		
*/
console.log(max); // 6

10.?賦值運算子

  • 簡單賦值(=)
  • 乘后賦值(*=)
  • 除后賦值(/=)
  • 取模后賦值(%=)
  • 加后賦值(+=)
  • 減后賦值(-=)
  • 左移后賦值(<<=)
  • 右移后賦值(>>=)
  • 無符號右移后賦值(>>>=)

這些運算子僅僅是簡寫語法,使用它們不會提升性能,


11.?逗號運算子

  1. 逗號運算子可以用來在一條陳述句中執行多個操作
let num1 = 1, num2 = 2, num3 = 3;
  1. 用逗號運算子來輔助 賦值,在賦值時使用逗號運算子分隔值,最侄訓回傳運算式中最后一個值
let num = (5, 1, 4, 8, 0); // num 的值為 0

12.?常見運算子優先級

在這里數字小的優先級高

運算子順序優先級
小括號()1
一元! ++ --2
算數先* / % 后 + -3
關系> >= < <=4
相等== != === !==5
& ^ |6
邏輯先&& 后||7
賦值=8
逗號,9

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

標籤:其他

上一篇:Vue3官網-深入組件(四)模板參考(ref 和 $refs)、處理邊界情況( `v-once`)

下一篇:零基礎快速掌握JavaScript(5)陣列、深拷貝與淺拷貝

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

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

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

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more