JavaScript 語法和數據類型

来源:https://www.cnblogs.com/jackpotmxx/archive/2019/09/21/11530663.html
-Advertisement-
Play Games

JavaScript 變數 概述 把一個具體的值存入到變數中。那麼此時這個變數就代表著我們這個具體的值。我們如果想要重新的使用這個值,不再需要重新的計算或者其他操作,直接使用變數就可以得到之前存儲的這個值。 簡單的說,變數就是一個保存數據的容器,調用變數就是調用保存在這個容器中的值。 變數之所以叫做 ...


JavaScript 變數

    概述

    把一個具體的值存入到變數中。那麼此時這個變數就代表著我們這個具體的值。我們如果想要重新的使用這個值,不再需要重新的計算或者其他操作,直接使用變數就可以得到之前存儲的這個值。

    簡單的說,變數就是一個保存數據的容器,調用變數就是調用保存在這個容器中的值。

    變數之所以叫做變數,是因為變數隨時可以根據我們的需要去改變其中存儲的值

    註:變數本身沒有數據類型,只能根據存儲的值來判斷數據類型。

    創建一個變數

    聲明關鍵字,如:var、let

        var

        聲明一個變數,可選初始化一個值。

        let

        聲明一個塊作用域的局部變數,可選初始化一個值。

    聲明變數的三種方式:

       使用關鍵詞 var

var a = 42; // 可以用來聲明局部變數和全局變數。

  直接賦值(不推薦)

b = 42;// JS 的小 bug,這樣寫會產生一個全局變數

      這種方式在嚴格模式下會出錯,也沒人會用這種方式聲明變數,不建議使用這種方式。

  使用關鍵詞 let

let c = 12; // 用來聲明塊作用域的局部變數。

    聲明變數的底層原理

    我們所寫的程式運行在記憶體中,當我們使用關鍵字聲明一個變數的時候,電腦會從記憶體中劃分一個空間,為我們存放不同類型的內容做準備

    變數的命名規則

        1. 由數字、字母、下劃線( _ )、$ 組成。

            不能由數字開頭

     不能包含星號 ( * )

       不能包含加號

     不能包含減號或者連詞線

            字母可以是大寫,也可以是小寫。

        2. 語義化,看其名知其意,首碼就可以表示出變數的類型

        3. 不允許使用關鍵字和保留字。

        4. 如果變數名由多個單片語成,要使用駝峰式命名法

            大駝峰:從第一個單詞的首字母開始大寫。

     小駝峰:從第二個單詞的首字母開始大寫。

        註:JS 對大小寫敏感,a 和 A 是不同的。

var a = 1;
var A = 2;
console.log(a); // 1
console.log(A); // 2

    變數也叫做標識符。

    變數的存儲

    重新存儲數據

    當我們重新的向變數中存儲數據的時候,不需要再加 var

var a = 10;
a = 20;

    上面我們將變數 a 記憶體儲的數據由10變成了20,在重新存儲的過程中,我們並沒有使用 var,那麼上面的代碼就相當於我們將20的值存儲到之前創建的變數 a 中

    重新聲明變數

    如果在重新存儲數據的過程中,沒有在變數名前面加 var,那麼相當於是更改變數 a 中存儲的值,而如果前面加了 var,則相當於重新的創建了一個變數 a,並且存儲了這個數據。

var a = 10; // 第一次聲明變數 a
var a = 20; // 再一次通過 var 聲明變數 a,並且使用了 var

    雖然最後的結果和上面的列印結果相同,但是變數 a 本質上已經發生了變化 (存儲的地址變了)

    如果採用以下方式,那麼重新創建的變數將會無效:

var x = 1;
var x;

    變數提升

    JS 引擎的工作方式是,先解析代碼,獲取所有被聲明的變數,然後再一行一行地運行。這造成的結果就是所有的變數的聲明語句,都會被提升到代碼的頭部。

console.log(a);
var a = 1;

    上面代碼首先使用 console.log 方法,在控制台 (console) 顯示變數 a 的值。這時變數 a 還沒有聲明和賦值,所以這是一種錯誤的做法,但是實際上不會報錯。因為存在變數提升,真正運行的是下麵的代碼

var a;
console.log(a);
a = 1;

    最後的結果是顯示 undefined,表示變數 a 已聲明,但還未賦值

    關鍵字的介紹

    關鍵字

    關鍵字用於執行特定操作等。按照規則,關鍵字也是語言保留的,不能用做變數。

        常見的關鍵字

breakdoinstanceoftypeofcaseelsenewvarcatchfinallyreturnvoidcontinueforswitchwhiledebuggerfunctionthiswithdefaultifthrowdeleteintry

    保留字

    未來可能做為關鍵字的存在

        常見的保留字

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

    基本上這些關鍵字和保留字都是一些語義強烈的詞語。

Java Script 數據類型

   數據類型

    什麼是數據類型?

    變數用來臨時存儲數據(如果想要永久的存儲數據,需要通過資料庫)。而在任何一門編程語言當中,數據都是分為不同類型的。就如同人類也分為男人和女人一樣。

    基本數據類型

    基本數據類型也叫做 值類型、原始類型;有六種

    String 字元型

    1. 單引號字元串的內部,可以使用雙引號。雙引號字元串的內部,可以使用單引號

    2. 如果要在單引號字元串的內部,使用單引號,就必須在內部的單引號前面加上反斜杠,用來轉義。雙引號字元串內部使用雙引號,也是如此。

'Did she say \'Hello\'?'

    3. 如果長字元串必須分成多行,可以在每一行的尾部使用反斜杠

var longString = 'Long \
                    long \
                    long \
                    string';
 // Long long long String

    反斜杠後面必須是換行符

    4. 字元串預設只能寫在一行內,分成多行將會報錯

    5. 連接運算符(+)可以連接多個單行字元串,將長字元串拆成多行書寫,輸出的時候也是單行

    6. 轉義字元: 反斜杠(\)在字元串內有特殊含義,用來表示一些特殊字元,所以又稱為轉義符,以下有幾種常見的轉義符

\0 : null (\u0000)
\b :後退鍵 (\u008)
\f :換頁符 (\u000C)
\n :換行符 (\u000A)
\r :回車鍵 (\u000D)
\t :製表符 (\u0009)
\v :垂直製表符 (\u000B)
\' :單引號 (\u0027)
\" : 雙引號 (\u0022)
\\ :反斜杠 (\u005C)

    註:只要被引號包裹起來的就是字元('',"") -> "hello"

    Number 數字型

    JS 的64位浮點數之中,有一個二進位位是符號位。這意味著,任何一個數都有一個對應的負值,就連0也不例外,幾乎所有場合,正零和負零都會被當作正常的0,但是當0和-0被充當分母的時候,返回的值是不相等的,除以正零得到+Infinity,除以負零得到-Infinity

    NaN

    NaN 是 JS 的特殊值,表示“非數字”(Not a Number),主要出現在將字元串解析成數字出錯的場合

    NaN不是獨立的數據類型,而是一個特殊數值,它的數據類型依然屬於Number(NaN本身是數字類型)

        不是一個數字的數值型數據 -> 代表意外或非法轉換的數字

        NaN不等於任何數值,包括它自己,即有NaN參與的計算都不會相等

        檢查一個參數是否是非數字值

       isNaN(x)函數用於檢查其參數是否是非數字值

      如果 x 是特殊的非數字值 NaN(或者能被轉換為這樣的值),返回的值就是 true。如果 x 是其他值,則返回 false

true 不是一個數字
false 是一個數字

      當值是0時,返回的值仍為 true

    Number 中的全局方法

        parseInt()、parseFloat()、isNaN、isFinite

    parseInt

parseInt()  
/*
將字元串轉為整數    
    parseInt('123') // 123

如果字元串頭部有空格,空格會被自動去除  
    parseInt('   81') // 81

如果parseInt的參數不是字元串,則會先轉為字元串再轉換
    parseInt(1.23) // 1
    // 等同於
    parseInt('1.23') // 1

字元串轉為整數的時候,是一個個字元依次轉換,如果遇到不能轉為數字的字元,就不再進行下去,返回已經轉好的部分
如果字元串的第一個字元不能轉化為數字(後面跟著數字的正負號除外),返回NaN
*/

    parseInt的返回值只有兩種可能,要麼是一個十進位整數,要麼是NaN

    parseFloat

parseFloat()
/*
parseFloat方法用於將一個字元串轉為浮點數
   parseFloat('3.14') // 3.14

如果字元串符合科學計數法,則會進行相應的轉換
   parseFloat('314e-2') // 3.14
   parseFloat('0.0314E+2') // 3.14 

如果字元串包含不能轉為浮點數的字元,則不再進行往後轉換,返回已經轉好的部分
   parseFloat('3.14more non-digit characters') // 3.14

parseFloat方法會自動過濾字元串前導的空格
    parseFloat('\t\v\r12.34\n ') // 12.34

如果參數不是字元串,或者字元串的第一個字元不能轉化為浮點數,則返回NaN
    parseFloat([]) // NaN
    parseFloat('FF2') // NaN

parseFloat會將空字元串轉為NaN
   parseFloat('') // NaN 
*/

  inFinite

isFinite()
/*
返回一個布爾值,表示某個值是否為正常的數值
   isFinite(Infinity) // false
   isFinite(NaN) // false
 
除了Infinity、-Infinity、NaN和undefined這幾個值會返回false,isFinite對於其他的數值都會返回true
*/

    註:JS 中的數字類型,只有 Number

    Boolean 布爾型

        true、false

        返回 boolean 的運算符

            邏輯運算符、比較運算符

    undefined 未定義

        沒有被賦值的變數的類型就是 undefined

    null 空值

        null 只有一個值,就是它本身

        null 類型為 Object、但是不能叫它空對象(這是 JS 中的一個 bug)

    Symbol 一種實例 (ES6新增)

        一種實例是唯一且不可改變的數據類型

    引用類型

        引用類型也稱之為對象類型、複雜數據類型

        對象 Object、數組 Array、函數 Function

        Object

            一般是 {},標簽的數據類型都是 Object

        Array

            一組“成員”,一般是 []

        Function

       標誌是,function

    數據類型轉換

     自動類型轉換

       轉換的規則    

            預期什麼類型的值,就調用該類型的轉換函數。比如,某個位置預期為字元串,就調用String函數進行轉換。如果該位置即可以是字元串,也可能是數值,那麼預設轉為數值 

            利用算術運算符

console.log(+str);
console.log(str - 0);
console.log(str * 1);
console.log(str / 1);

        註:如果字元串無法全都轉為數字,則會變為 NaN

       利用算術運算符的 +,進行字元串的拼接

    由於自動轉換具有不確定性,而且不易除錯,建議在預期為布爾值、數值、字元串的地方,全部使用Boolean、Number和String函數進行顯式轉換

        強制類型轉換

   Number

   規則:

       嚴格轉換,能識別小數點,不能出現非數字,出現就會NaN

       空字元串會轉為 0

       自動過濾一個字元串前導和尾碼的空格

       布爾值:true 轉成 1,false 轉成 0

       undefined:轉成 NaN

       Number方法的參數是對象時,將返回NaN,除非是包含單個數值的數組

   Number方法的參數是對象時,將返回NaN,除非是包含單個數值的數組,如:

轉換對象:
Number({a: 1}) // NaN Number([1, 2, 3]) // NaN Number([5]) // 5

   Number 示例:

轉換基本數據類型:
//
數值:轉換後還是原來的值 Number(324) // 324 // 字元串:如果可以被解析為數值,則轉換為相應的數值 Number('324') // 324 // 字元串:如果不可以被解析為數值,返回 NaN Number('324abc') // NaN // 空字元串轉為0 Number('') // 0 // 布爾值:true 轉成 1,false 轉成 0 Number(true) // 1 Number(false) // 0 // undefined:轉成 NaN Number(undefined) // NaN // null:轉成0 Number(null) // 0

   其他方法:

       parseInt()、parseFolat()、isNaN

   isNaN

isNaN
方法可以用來判斷一個值是否為NaN
    isNaN(NaN) // true
    isNaN(123) // false

isNaN(x)
    如果 x 是特殊的非數字值 NaN(或者能被轉換為這樣的值),返回的值就是 true。如果 x 是其他值,則返回 false
    true  不是一個數字
    isNaN("hello world"); -> true
    false 是一個數字
    isNaN(123); -> false

isNaN只對數值有效,如果傳入其他值,會被先轉成數值
    isNaN('Hello') // true
    // 相當於
    isNaN(Number('Hello')) // true

isNaN為true的值,有可能不是NaN,而是一個字元串
比如,傳入字元串的時候,字元串會被先轉成NaN,所以最後返回true

由於 NaN 的意思是 not a numer ,所以isNaN判斷時,本身是雙重否定,true 也就代表著是 NaN,即不是一個數字

當值是0時,返回的值仍為 true

   String

轉換基本數據類型:
數值:轉為相應的字元串。 字元串:轉換後還是原來的值。 布爾值:true轉為字元串
"true",false轉為字元串"false"。 undefined:轉為字元串"undefined"null:轉為字元串"null"
轉換對象:
String方法的參數如果是對象,返回一個類型字元串;如果是數組,返回該數組的字元串形式

         其他方法:

    toString()

    方式:直接轉換,相當於給數值添加兩個引號

var num1 = 123;
var str1 = num1.toString();
console.log(str1); // 123 -> 字元串

var num2 = NaN;
var str2 = num2.toString();
console.log(str2); // NaN -> 字元串

    可以接受參數:

toString(8);  toString(16);  toString(32);  ...

    參數時進位,結果也是以進位表示的數字

     toFixed()

   主要作用是保留小數位,順帶著轉變數據類型

var num = 123.456;
var str = num.toFixed(2);
console.log(str); // 123.46  -> 字元串

   保留 n 位小數的時候會自動四捨五入。

   Boolean

   可以將任何類型的值轉為 布爾值

   規則:除了以下五個值的轉換結果為 false,其他的值全部為 true

undefined
null
0(包含-0和+0)
NaN
""  ''(空字元串

  true 和 false 這兩個布爾值不會發生變化  

   所有對象(包括空對象)的轉換結果都是true,甚至連 false 對應的布爾對象new Boolean(false)也是true

    註意:"  " 並不是空字元串,看不見的縮進和空格也是字元

JavaScript 運算符 

    算術運算符

+    加法運算

-    減法運算

*    乘法運算

/    除法運算

%    取餘運算(求模運算)

**   指數運算符

    加法運算符有字元串拼接的作用

   規則:只要 + 兩邊出現一個字元,那麼就會將兩邊的值連在一起,成為字元串;只有 + 兩邊都是數字的時候才是加法運算

    下麵是一些常見的 + 連接: 

1 1 + null  // 1
2 1 + true  // 2
3 1 + false  // 1
4 1 + NaN  // NaN
5 1 + "hello"  // 1hello
6 1 + undefined  // NaN
7 1 + [3,4,5,6]  // 13,4,5,6
8 + 如果跟 空字元串("")一起,那麼會成為0
9 1+ {}  ->  1 + {name:"admin"}  // 1[object Object]->只拿到了標誌,沒拿到值

    賦值運算符

     賦值運算符,是基於右值,給左值賦值。如:

var a = 10;
var b = 11;
console.log(a); // 10
console.log(b); // 11

        把一個值賦給一個變數,為了把一個值賦給多個變數,可以以鏈式使用賦值運算符

       一些常用的賦值運算符:

加賦值 x += y     加法運算,相當於 x = x + y
減賦值 x -= y     減法運算,相當於 x = x - y
乘賦值 x *= y     乘法運算,相當於 x = x * y
除賦值 x /= y     除法運算,相當於 x = x / y
模賦值 x %= y     取餘,相當於 x = x % y

    賦值運算符的隱式數據類型轉換規則,參考算術運算符 (數據類型時會有 類型轉換的問題)。

    自增和自減

    ++

   ++ 等價於 += 1

        前自增

   先運算,後賦值

var a = 1;
++a; // a = 2
console.log(a): // 2

        前自增是先加1,再使用操作數的值

       後自增

       先使用最初值,後運算 

var b = 2;
b++; // b = 2;
console.log(b); // 3

        後自增是先使用操作數的值,再加1

    --

        自減的原理和自增相同,只是自減是減法。前自減和後自減參考自增。

    小練習

var a = 12; 
var sum = a++ + ++a + ++a * 2 + a-- + a--; 
console.log(sum + "" + a);
/*
算 sum 的值
a++        a 是 12
++a        ++13, 之後 a 是14
++a * 2,15 * 2
a--          15 -1
a --         14 - 1
最後得出 a 是 13
sum = 12 + 14 + 15 * 2 + 15 + 14 == 85
輸出結果為 8513
*/

    比較運算符

等於 == 
    如果兩邊操作數相等時返回 true
不等於 != 如果兩邊操作數不相等時返回 true
全等 === 兩邊操作數相等且類型相同時返回 true
不全等 !== 兩邊操作數不相等或類型不同時返回 true
大於 > 左邊的操作數大於右邊的操作數返回 true
大於等於 >= 左邊的操作數大於或等於右邊的操作數返回 true
小於 <
左邊的操作數小於右邊的操作數返回 true
小於等於 <= 左邊的操作數小於或等於右邊的操作數返回 true

    註:

    1. 一個字元和一個數值比較,會把字元轉換成數值,之後再比較

    2. 當比較運算符的兩邊都是字元時,比較規則為字元的逐位比較

        只比較字元中首位數字,後面的不再進行比較

    邏輯運算符

    邏輯運算符常用於布爾(邏輯)值之間; 當操作數都是布爾值時,返回值也是布爾值。 不過實際上 && 和 || 返回的是一個特定的操作數的值,所以當它用於非布爾值的時候,返回值就可能是非布爾值。

    且 &&

        如果第一個運運算元的布爾值為 true,則返回第二個運運算元的值(註意是值,不是布爾值);如果第一個運運算元的布爾值為 false,則直接返回第一個運運算元的值,且不再對第二個運運算元求值。

        && 的兩邊,只要有其中一個是 false ,就返回 false;只有當兩邊都是 true 時,才返回 true

    或 ||

        如果第一個運運算元的布爾值為 true,則返回第一個運運算元的值,且不再對第二個運運算元求值;如果第一個運運算元的布爾值為 false,則返回第二個運運算元的值

        || 的兩邊,只要有其中一個是 true,就返回 true

    非 !

        取一個值的反值。主要用於將一個布爾值變為相反值。即 true 變為 false,false 變為 true

        不管什麼類型的值,經過取反運算後都會變成布爾值

            如果使用取反運算符的值不是一個布爾值,那麼取反運算符就會將其變為一個布爾值,然後再取反

        下麵的六個值使用取反運算符取反後都為 true,其他都為 false

undefined
null
false
0
NaN
空字元串('')

        如果對一個值連續做兩次的取反運算,等於將其轉換為對應的布爾值。這是一種較為常見的類型轉換的方法,即 快速獲取一個值得布爾類型表示 !!值

    邏輯與運算符可以多個連用,這時返回第一個布爾值為 false 的表達式的值。如果所有表達式的布爾值都為 true,則返回最後一個表達式的值

    條件運算符

    條件運算符也叫做 三元運算符、三目運算符

    條件 ? 值1 : 值2

        如果條件為真,則結果取值1。否則為值2。你能夠在任何允許使用標準運算符的地方使用條件運算符

    逗號運算符

    逗號操作符( , )

    對兩個操作數進行求值並返回最終操作數的值。它常常用在 for 迴圈中,在每次迴圈時對多個變數進行更新

    運算符優先順序

    用於確定一個表達式的計算順序。在你不能確定優先順序時,可以通過使用括弧顯式聲明運算符的優先順序。


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

-Advertisement-
Play Games
更多相關文章
  • 傻瓜式操作搭建個人網站 1.首先買功能變數名稱和雲伺服器 買東西一般都很方便的給錢就行。。。 百度,騰訊,阿裡都可以買,而且只要給錢,啥東西都給的明明白白。 這裡我就不細說了。個人推薦百度的。因為我就是用這個的。 2.後面來說下錢解決不了得事,配置雲伺服器,(買的功能變數名稱先放著不動它) 找到自己買的實例,打開V ...
  • # Vue指令大集合(無slot) #### 包含內容: 1. v-cloak2. v-html3. v-text4. v-bind5. v-show6. v-model7. v-for8. v-if v-else-if v-else9. v-pre 代碼如下:(可以自己複製去看一下) html 展 ...
  • .attr( ) 可以設置元素的屬性(也就是給元素新增加一個原來並不存在的屬性)也可以獲取元素的本來就有的屬性以及額外設置的屬性。如果要獲取的屬性沒有設置,那麼獲取到的結果是 undefined; .prop( )可以設置元素的屬性(HTML固有的屬性,可以給元素添加屬性)也可以獲取元素的固有的屬性 ...
  • 學習前端以來,一直很好奇像京東,淘寶這種大型網站的購物車是怎麼做到統一的,就去搜索了一些資料吧!大致的看了一下,自己實戰了下,俗話說的好,讀萬卷書不如行萬里路!購物車只是一個很小的案例,但也可以去動手做一做,感受下過程!積少成多! 這案例主要是通過本地儲存來實現的,我用了兩種方法,一種是cookie ...
  • jQuery -動畫 jQuery動畫分為三個部分,非自定義動畫,自定義動畫,和全局動畫設置。 一、非自定義動畫: 1.顯示、隱藏: show( ) 、hide( )、toggle() 兩種用法:1)不傳參數,代表直接顯示隱藏。 2) 向方法中傳遞一個參數,這個參數為number類型,代表動畫的執行 ...
  • 今天給大家分享一下js中常用的基礎演算法,廢話不多說,直接上代碼; 1、兩個數字調換順序 2、對象排序,安裝對象中的id排序對象的位置; 3、冒泡排序 4、隨機出現不同的數字 5、字元串大小寫互換 6、數組隨機打亂 7、數組扁平化-把多維數組轉為一維數組 8、數組去重 9、數組尾部刪除,增加到前面; ...
  • 0921自我總結 CSS3動畫的使用 一.動畫的創建 @keyframes規則是創建動畫 瀏覽器相容 根據狀態的百分比來設置 上面如果有首碼下麵使用的時候必須加上首碼 二.css3動畫的屬性 animation設置動畫 :animation: name duration timing functio ...
  • 0921自我總結 css3如何解決動畫的播放、暫停和重新開始 一.解決的本質思路 播放的解決思路 先定義好動畫效果通過類名的增加達到樣式的出現 暫停的解決思路 我們播放動畫時,如要暫停動畫,就要用到 這個屬性。 屬性有兩個值: 當然去掉 ,也可以繼續播放動畫。 重新開始解決思路 播放與重新開始的解決 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...