JavaScript中有很多特殊符號(hào),在寫代碼的過(guò)程中經(jīng)常會(huì)用到。其中一個(gè)非常重要的符號(hào)就是 & 符號(hào)(也叫 Ampersand)。
& 符號(hào)最基礎(chǔ)也是最常見的用途是作為HTML轉(zhuǎn)義字符。例如在HTML中,如果要展示一個(gè)“小于號(hào)”符號(hào)(<),我們需要用 < 來(lái)代替。
<p>這里是一個(gè)“<”符號(hào):<</p>
另外一個(gè) & 符號(hào)的用途是作為位運(yùn)算符號(hào),在JavaScript中可以用來(lái)進(jìn)行與運(yùn)算。假設(shè)我們有兩個(gè)數(shù)值:10和15。這兩個(gè)數(shù)值的二進(jìn)制形式分別是“1010”和“1111”。如果我們對(duì)這兩個(gè)數(shù)值使用 & 進(jìn)行與運(yùn)算,可以得到“1010”。
let a = 10;
let b = 15;
let c = a & b;
console.log(c); //輸出 10
此外,我們還可以使用 & 進(jìn)行“按位與”位運(yùn)算。在按位與運(yùn)算中,只有當(dāng)兩個(gè)二進(jìn)制數(shù)的對(duì)應(yīng)位都是1時(shí),結(jié)果才是1。例如,對(duì)于數(shù)值 3 和 6,它們的二進(jìn)制表示分別為“0011”和“0110”。它們進(jìn)行按位與運(yùn)算后,結(jié)果為“0010”,即數(shù)值2。
let d = 3;
let e = 6;
let f = d & e;
console.log(f); //輸出 2
最后要提到的是,& 符號(hào)還可以用來(lái)表示邏輯與。在JavaScript中,有兩種邏輯與運(yùn)算:&&和&&。它們的區(qū)別在于優(yōu)先級(jí)和短路行為。&& 的優(yōu)先級(jí)比 && 高,而且 && 在遇到 false 時(shí)會(huì)短路。因此,在寫代碼時(shí)要注意使用適當(dāng)?shù)倪壿嬤\(yùn)算符。
let g = true;
let h = false;
let i = g && h;
console.log(i); //輸出 false
總之,& 符號(hào)在JavaScript中有著多種用途,無(wú)論是作為HTML轉(zhuǎn)義字符、位運(yùn)算符還是邏輯運(yùn)算符,都是我們寫代碼不可或缺的工具。在日常的代碼編寫過(guò)程中,要對(duì)這個(gè)符號(hào)的各種常見用法有足夠的理解和應(yīng)用。