幾個有趣的 JS 特性
標記語句
foo: {
console.log('one');
break foo;
console.log('這句列印不會被執行');
}
console.log('two');
/*
* # 輸出
* one
* two
*/
另外,標記也可以給 for 迴圈命名。
“void” 運算子
這個運算子其實早就存在了,所有的瀏覽器都支援!
void 運算子對給定的表示式進行求值,然後返回 undefined。
所以,立即呼叫表示式就可以這樣寫:
void function iife() {
console.log('hello');
}();
// 和下面等效
(function iife() {
console.log('hello');
})()
高階用法:和 async 一起使用 void
void async function() {
try {
const response = await fetch('air.ghost.io');
const text = await response.text();
console.log(text);
} catch(e) {
console.error(e);
}
}()
// 或者保持下面的寫法
(async () => {
try {
const response = await fetch('air.ghost.io');
const text = await response.text();
console.log(text);
} catch(e) {
console.error(e);
}
})();
逗號運算子
逗號運算子對它的每個運算元求值(從左到右),並返回最後一個運算元的值。
function myFunc() {
let x = 0;
return (x += 1, x); // 等價於 return ++x;
}
y = false , true; // 希望在 console 中得到 true
console.log(y); // false,逗號優先順序低於賦值
z = (false, true); // 希望在 console 中得到 true
console.log(z); // true,括號中整體返回 true
另一個栗子:
const type = 'man';
const isMale = type === 'man' ? (
console.log('Hi Man!'),
true
) : (
console.log('Hi Lady!'),
false
);
console.log(`isMale is "${isMale}"`);
HTMLElement.dataset
在此之前我一直對 HTML 元素使用自定義資料屬性 data-*,因為我不曾意識到存在一個 API 來方便地查詢它們。除了個別的命名限制之外(見上面的連結),它的作用基本就是在 JS 中查詢的時候允許你使用駝峰命名法(camelCase)來查詢「減號-命名」(dash-case)的屬性。所以屬性名 data-birth-planet 在 JS 中就變成了 birthPlanet。
可以說相當方便了!
栗子
<div id='person' data-name='john' data-birth-planet='earth'></div>
let personEl = document.querySelector('#person');
console.log(personEl.dataset) // DOMStringMap {name: "john", birthPlanet: "earth"}
console.log(personEl.dataset.name) // john
console.log(personEl.dataset.birthPlanet) // earth
// 你也可以在程式中新增屬性
personEl.dataset.foo = 'bar';
console.log(personEl.dataset.foo); // bar
相關推薦
幾個有趣的 JS 特性
標記語句 foo: { console.log('one'); break foo; console.log('這句列印不會被執行'); } console.log('two'); /* * # 輸出 * one * two */
幾個原生js知識
else code nts 知識 html ets log col attr 1、document.documentElement 返回根節點 html。 2、原生方法獲取一個對象的某個樣式的值。 function getStyle(obj, attr) { i
Linux系統的幾個有趣命令,你玩過嗎?
1. yes命令,預設會輸出很多個y,可以用來對付選擇很多y/n的應用,同時也支援在yes增加一個引數,這樣也可反覆列印yes後面跟隨的引數,直到CTRL+C殺掉yes程序。 man: yes – output a string repeatedly until killed 2. ddate命令
幾個關於js陣列方法reduce的經典片段
以下是個人在工作中收藏總結的一些關於javascript陣列方法reduce的相關程式碼片段,後續遇到其他使用這個函式的場景,將會陸續新增,這裡作為備忘。 javascript陣列那麼多方法,為什麼我要單挑reduce方法,一個原因是我對這個方法掌握不夠,不能
c++陣列的幾個有趣性質
1.陣列可以有負數下標 這是我在陣列中畫圓時偶然發現的。如圖,圓左邊的一部分跑到右邊去了。 我猜這可能是負數下標的問題。按照“陣列名存放的是陣列第一個元素的地址”以及“陣列下標表示的是偏移量”這兩條理論,我進行了如下推理: 對一個二維陣列a[m][n],元素a[x][y
分享幾個有趣的Linux命令
say 博客 col 更多 gif 命令行工具 使用命令 輸出 fir 前言 最近工作比較忙,沒時間寫博客,這次介紹幾個有趣的Linux命令。 命令:sl 當你使用這個命令時會看到一輛小火車從你的屏幕經過。親測! 安裝命令如下: yum -y install
幾個例子弄懂JS 的setTimeout的運行方式
-a highlight margin java p s .com cti x11 on() function test() { var a = 1; setTimeout(function() {
一道CTF題引發的思考-MySQL的幾個特性(續)
get 是否 區分 sql sel admin database pan blog 0x00 背景 這兩天處於轉牛角尖的狀態,非常不好。但是上一篇的中提到的問題總算是總結了些東西。 傳送門:疑問點0x02(4) 0x01 測試過程 (1)測試環境情況:創建了如下測試
C++11新特性應用--介紹幾個新增的便利算法(用於排序的幾個算法)
uil pretty processor nes container 升序 .text mar c++11 繼續C++11在頭文件algorithm中添加的算法。 至少我認為,在stl的算法中,用到最多的就是sort了,我們不去探索sort的源代碼。就
愛創課堂分享“15 個有趣的 JS 和 CSS 庫”,
前端 web劃重點 迎來了黃金10 月,在這收獲的季節,我又為你們帶來了哪些新鮮、有趣的前端資源呢?前端開發者們,一起來看看有木有你需要的前端庫。1.DisplayJSDisplayJS 是一個幫助你渲染 DOM 的簡易框架。使用它,你可以更容易地將 JS 變量遍歷到特定的 HTML 元素中,類似
15 個有趣的 JS 和 CSS 庫
chrom nsh semi 包含 自動更新 更多 排序 not 程序 開發者們,一起來看看有木有你需要的前端庫。 1. DisplayJS DisplayJS 是一個幫助你渲染 DOM 的簡易框架。使用它,你可以更容易地將 JS 變量遍歷到特定的 HTML 元素中,類似
JS產生隨機數的幾個用法!
func 四舍五入 script 整數 其中 n) 產生 var () <script> function GetRandomNum(Min,Max){ var Range = Max - Min; var Rand = Math.random();
js 實現每隔幾個字符進行添加字符串
實現 regexp reverse false turn bsp ret var reg function Xreplace(str,length,reversed) { var re = new RegExp("\\d{1,"+length+"}","g");
js運算中的幾個註意點
bsp nan 繼續 操作 邏輯或 style log class 判斷 1.除了字符串參與的加法外,非Number類型的值進行運算時,會將這些值轉換為Number然後再運算 var res = true + 100;console.log(res); // =101va
JS的幾個小測試錯題改錯
JS小測試var a=3;var b=2;var c=a+++b;c的值為(5),a的值為(4)算法過程:a=3 b=2 c=a+++b;a++後,a=4,但a不參與預算,所以c=a+b=3+2=5;其實將計算式改成:c=a+b,a++之後更能理解。2.var a=2,b=1,c=3;if(a<b)if
JDK1.8的幾個新特性
bsp 我們 get per 年齡 就是 person int ++ 場景一:假設我們有一個 List 包含一系列的 Person,Person 有姓名 name 和年齡 age 連個字段。現要求這個列表中年齡大於 20 的人數。通常按照以前我們可能會這麽寫:long co
JS判定註冊表單的幾個方式 及 Ajax進行用戶名存在判定
手機號 col 分層 code 驗證用戶名 inf href maria ech 最近感覺不趕緊把代碼邏輯記一下梳理一下,再做的時候就容易進入"邏輯誤區". 有個表單,簡單點. <!DOCTYPE html> <!-- 註冊表單驗證,用戶名格式(未加入A
Delphi Code Editor 之 幾個特性
ext ima all editor 如何工作 使用 啟動 nta 標準 Delphi Code Editor有幾個特性在編寫大規模代碼時非常有用。下面分別進行介紹: 1、Code Templates(代碼模板) 使用代碼模板可把任意預定義代碼(或正文)插入到單元
JavaWeb基礎總結之Js幾個經典的小案例
(1)動態顯示當前系統時間 <body> <p>當前時間:<span id="times"></span></p> </body> <script> function get(){
IOS資料處理及版本特性-沙箱結構中常見的幾個目錄
//如何獲取程式沙箱結構中常見的幾個目錄 //獲取應用程式的路徑 包含三個資料夾 文件目錄 庫目錄 臨時目錄 還有一個程式包。 //(這個目錄就是沙河 策劃個女婿職能訪問該目錄下的