摘要:每種編程語言都有一些黑魔法或者說小技巧,也不例外,大部分是借助或者瀏覽器新特性實現。下面介紹的個實用小技巧,相信其中有些你一定用過。當然不管語言如何變化,我們總能在編程中總結一些小技巧來精簡代碼。
每種編程語言都有一些“黑魔法”或者說小技巧,JS也不例外,大部分是借助ES6或者瀏覽器新特性實現。下面介紹的7個實用小技巧,相信其中有些你一定用過。
數組去重const j = [...new Set([1, 2, 3, 3])] >> [1, 2, 3]數組清洗
洗掉數組中一些無用的值,如 0, undefined, null, false 等
myArray .map(item => { // ... }) // Get rid of bad values .filter(Boolean);創建空對象
我們可以使用對象字面量{}來創建空對象,但這樣創建的對象有隱式原型__proto__和一些對象方法比如常見的hasOwnProperty,下面這個方法可以創建一個純對象。
let dict = Object.create(null); // dict.__proto__ === "undefined" // No object properties exist until you add them
該方法創建的對象沒有任何的屬性及方法
合并對象JS中我們經常會有合并對象的需求,比如常見的給用傳入配置覆蓋默認配置,通過ES6擴展運算符就能快速實現。
const person = { name: "David Walsh", gender: "Male" }; const tools = { computer: "Mac", editor: "Atom" }; const attributes = { handsomeness: "Extreme", hair: "Brown", eyes: "Blue" }; const summary = {...person, ...tools, ...attributes}; /* Object { "computer": "Mac", "editor": "Atom", "eyes": "Blue", "gender": "Male", "hair": "Brown", "handsomeness": "Extreme", "name": "David Walsh", } */設置函數必傳參數
借助ES6支持的默認參數特性,我們可以將默認參數設置為一個執行拋出異常代碼函數返回的值,這樣當我們沒有傳參時就會拋出異常終止后面的代碼運行。
const isRequired = () => { throw new Error("param is required"); }; const hello = (name = isRequired()) => { console.log(`hello ${name}`) }; // This will throw an error because no name is provided hello(); // This will also throw an error hello(undefined); // These are good! hello(null); hello("David");解構別名
ES6中我們經常會使用對象結構獲取其中的屬性,但有時候會想重命名屬性名,以避免和作用域中存在的變量名沖突,這時候可以為解構屬性名添加別名。
const obj = { x: 1 }; // Grabs obj.x as { x } const { x } = obj; // Grabs obj.x as as { otherName } const { x: otherName } = obj;獲取查詢字符串參數
以前獲取URL中的字符串參數我們需要通過函數寫正則匹配,現在通過URLSearchParamsAPI即可實現。
// Assuming "?post=1234&action=edit" var urlParams = new URLSearchParams(window.location.search); console.log(urlParams.has("post")); // true console.log(urlParams.get("action")); // "edit" console.log(urlParams.getAll("action")); // ["edit"] console.log(urlParams.toString()); // "?post=1234&action=edit" console.log(urlParams.append("active", "1")); // "?post=1234&action=edit&active=1"
隨著Javascript的不斷發展,很多語言層面上的不良特性都在逐漸移除或者改進,如今的一行ES6代碼可能等于當年的幾行代碼。
擁抱JS的這些新變化意味著前端開發效率的不斷提升,以及良好的編碼體驗。當然不管語言如何變化,我們總能在編程中總結一些小技巧來精簡代碼。
本文首發于公眾號「前端新視界」,如果你也有一些Javascript的小技巧,歡迎在下方留言,和大家一起分享哦!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/103640.html
摘要:接下來先介紹七個馬上就能用起來的小技巧。老實講,文章所說的小技巧大部分都是新增的語法特性,,或者說已經發布好些年頭,這些特性大家可能已經非常熟識。,對象合并,不多說,大部分場景可以取代。 作者:@davidwalshblog原文:7 Useful JavaScript Tricks 和許多其他語言一樣,JavaScript 也需要靠很多小技巧去完成各種不同的事情。有的可能早已經廣為人...
摘要:見過太多同學調試只會用簡單的甚至,看著真為他們捉雞。。下面我就分享一些實用且聰明的調試技巧,希望能讓大家調試自己代碼的時候更加從容自信。其實提供了文件的搜索功能,只不過大部分時候我們給忽略了。。 見過太多同學調試Javascript只會用簡單的console.log甚至alert,看著真為他們捉雞。。因為大多數同學追求優雅而高效地寫代碼,卻忽略了如何優雅而高效地調試代碼,不得不說是有點...
摘要:如果第一個參數返回的值為,那么第二個值將會認為是一個默認值。獲取數組中最后一個元素用來獲取和之間的數組元素。但這個對象不具有數組的函數功能,比如等。 使用!!操作符轉換布爾值 有時候我們需要對一個變量查檢其是否存在或者檢查值是否有一個有效值,如果存在就返回true值。為了做這樣的驗證,我們可以使用!!操作符來實現是非常的方便與簡單。對于變量可以使用!!variable做檢測,只要變量的...
摘要:翻譯正文第一次聲明變量時,請不要忘記使用關鍵字聲明使用代替空字符串轉成布爾值都為每行代碼的末尾最好都加上個分號最好給對象都添加上構造函數在使用和盡量小心。 翻譯介紹 翻譯標題:45 Useful JavaScript Tips, Tricks and Best Practices 翻譯來源:http://modernweb.com/2013/12/23/45-useful-java...
摘要:實用開發技巧本文只羅列出在開發過程中相對實用的內容,并非一個高大全的文檔,如果希望查閱詳細的內容,可購買阮一峰老師所出版的相關圖書。 Javascript - ES6 javascript 實用開發技巧 本文只羅列出在 ES6 開發過程中相對實用的內容,并非一個高大全的文檔,如果希望查閱詳細的內容,可購買阮一峰老師所出版的 ES6 相關圖書。另外阮一峰老師《ECMAScript 6 入...
閱讀 2075·2023-04-25 17:48
閱讀 3586·2021-09-22 15:37
閱讀 2939·2021-09-22 15:36
閱讀 5997·2021-09-22 15:06
閱讀 1642·2019-08-30 15:53
閱讀 1428·2019-08-30 15:52
閱讀 713·2019-08-30 13:48
閱讀 1124·2019-08-30 12:44