您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“JS位運(yùn)算符的使用方法有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“JS位運(yùn)算符的使用方法有哪些”吧!
1 << 2 // 4, 即 2的2次方 1 << 10 // 1024, 即 2的10次方 // 但是要注意使用場景 a = 2e9; // 2000000000 a << 1; // -294967296
// --- before --- // if 判斷 if (toggle) { toggle = 0; } else { toggle = 1; } // 三目運(yùn)算符 togle = toggle ? 0 : 1; // --- after --- toggle ^= 1;
console.log(7 & 1); // 1 console.log(8 & 1) ; // 0
所有非0的值都是true,包括負(fù)數(shù)、浮點(diǎn)數(shù):
console.log(!!7); // true console.log(!!0); // false console.log(!!-1); // true console.log(!!0.71); // true
相當(dāng)于使用了 Math.floor()
console.log(~~11.71) // 11 console.log(11.71 >> 0) // 11 console.log(11.71 << 0) // 11 console.log(11.71 | 0) // 11 console.log(11.71 >>> 0) // 11
注意 >>> 不可對負(fù)數(shù)取整
在 ES6 的解構(gòu)賦值出來之前,用這種方式會(huì)更快(但必須是整數(shù)):
// --- before --- let temp = a; a = b; b = temp; // 傳統(tǒng),但需要借助臨時(shí)變量 b = [a, a = b][0] // 借助數(shù)組 // --- after --- 只能用于整數(shù) let a = 7 let b = 1 a ^= b b ^= a a ^= b console.log(a) // 1 console.log(b) // 7 [a, b] = [b, a]; // ES6,解構(gòu)賦值
只能應(yīng)用與整數(shù)
(a ^ b) >= 0; // true 相同; false 不相同
// --- before --- if (a !== 1171) {...}; // --- after --- if (a ^ 1171) {...};
Math.random().toString(16).substring(2, 15);
.substring() 的第二個(gè)參數(shù)控制取多少位 (最多可取13位)
使用數(shù)字來做為 split 的分隔條件可以節(jié)省2字節(jié)(不實(shí)用)
// --- before --- "alpha,bravo,charlie".split(","); // --- after --- "alpha0bravo0charlie".split(0);
一個(gè)鮮為人知的方法,可以快速創(chuàng)建 a 標(biāo)簽
// --- before --- let b = `<a herf="www.google.com">google</a>`; // --- after --- let b = google .link( www.google.com );
// --- before --- for (let a = "", i = 7; i--;) a+= 0; // --- after --- let b = Array(7).join(0); // "0000000"let c = Array(7).join( La ) // "LaLaLaLaLaLa" // ES6 let d = "0".repeat(7); // "0000000"
// --- before --- let b = 0 | Math.random() * 100 // --- after --- let a; a = new Date % 100; // 兩位隨機(jī)數(shù) a = new Date % 1000; // 三位隨機(jī)數(shù) a = new Date % 10000; // 四位隨機(jī)數(shù)...依次類推 // 不要在快速循環(huán)中使用,因?yàn)楹撩肟赡軟]有變化;
// --- before --- for(let i = 0; i < arr.length; i++) {...} // --- after --- for(let i = arr.length; i--;) {...} // 注意 i-- 后面的分號別漏了
到此,相信大家對“JS位運(yùn)算符的使用方法有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。