摘要:嚴格模式嚴格模式可在整個腳本或獨個方法內被激活,它對應不同的語境會做更加嚴格的錯誤檢查,嚴格模式頁確保了代碼更加的健壯,運行的也更加快速。嚴格模式會阻止使用在未來很可能被引入的預留關鍵字。
嚴格模式
ECMAScript5 嚴格模式可在整個腳本或獨個方法內被激活,它對應不同的 javascript 語境會做更加嚴格的錯誤檢查,嚴格模式頁確保了 javascript 代碼更加的健壯,運行的也更加快速。
嚴格模式會阻止使用在未來很可能被引入的預留關鍵字。
你應該在你的腳本中也用嚴格模式,最好在獨立的IIFE 中應用它,避免在你的腳本第一行使用它而導致你的左右腳本都啟動了嚴格模式,這有可能會引發一些第三方類庫的問題。
變量聲明總是使用var 來聲明變量,如不指定 var ,變量將被隱式的聲明為全局變量,例如:
var a=b=0;//b會唄隱式的創建為全局變量,所以,請總是使用 var 來聲明變量,并且使用單 var 模式(將所有的變量在函數最前面只使用一個 var 定義)。例如: (function(){ "use strict" var a=0, b=0, c=0, i, j, myObject(); }())
采用嚴格模式帶來的好處是,當你手誤輸入錯誤的變量時,它可以通過報錯信息來幫助你定位錯誤的出處。
判斷真假js中以下內容為假:
false
null
undefined
0
""
NaN
輯操作符||和&&也可以被用來返回布爾值,如果操作對象為非布爾值,那每個表達式將會被自左向右的做真假判斷,基于此操作,最終用有一個表達式被返回回來,這在變量賦值時,是可以用來簡化你的代碼的,例如:
如果 x 不存在且 y 不存在,x=1
if(!x){ if(!y){ x=1; }else{ x=y; } } 等同于: x=x||y||1; 這一小技巧經常用來給方法設定默認的參數, (function (log){ "use strict"; function multiply(a,b){ a=a||1; b=b||1; log("Result"+a*b); } multiply();//Result 1 multiply(10);//Result 10 multiply(3,NaN);//Result 3 multiply(9,5);//Result 45 }(window.console.log));修改內鍵對象的原型鏈
修改內建的諸如 Object.prototype 和Array,prototype 是被嚴厲禁止的,修改其他的內建對象比如 Function.proptype,雖危害沒那么大,但始終還是會導致在開發過程中難以debug的問題,應當也要避免。
三元條件判斷(if的快捷語法)用三元操作符分配或者返回語句,在比較簡單的情況下使用,避免在復雜的情況下使用,沒人愿意用10行三元操作把自己的腦子繞暈,
if(x===10){ return "valid"; }else{ return "invalid"; } return x===10?"valid":"invalid"JSHint
在js規范中,有很多規范都是樣式上的規范而不是在邏輯上的規范,比如盡量的使用===而不是==,我們可以使用JSHint 或者JSLint ,Javascript 代碼驗證工具,這種工具可以檢查你的代碼并提供相關的代碼改進意見。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/107831.html
摘要:常見模塊化方案是由社區提出的模塊化方案中的一種,遵循了這套方案。是模塊化規范中的一種,遵循了這套規范。中的模塊化能力由兩個命令構成和,命令用于規定模塊的對外接口,命令用于輸入其他模塊提供的功能。 為什么需要模塊化 在ES6出現之前,JS語言本身并沒有提供模塊化能力,這為開發帶來了一些問題,其中最重要的兩個問題應當是全局污染和依賴管理混亂。 // file a.js var name =...
摘要:之前的閉包也好,自執行函數也好,都是模塊化的一些嘗試,直到規范推出之后,模塊化才真正迅猛發展起來。因為有了模塊化的概念,才有了按需加載的概念。 前言 我們來玩樂高積木吧 模塊化Js已經成為了老生常談,不過在JavaScript設計之初,由于定位的問題并沒有提供類的功能,開發者需要模擬出類似的功能,來隔離、組織復雜的JavaScript代碼。之前的閉包也好,自執行函數也好,都是模塊化的一...
摘要:之前的閉包也好,自執行函數也好,都是模塊化的一些嘗試,直到規范推出之后,模塊化才真正迅猛發展起來。因為有了模塊化的概念,才有了按需加載的概念。 前言 我們來玩樂高積木吧 模塊化Js已經成為了老生常談,不過在JavaScript設計之初,由于定位的問題并沒有提供類的功能,開發者需要模擬出類似的功能,來隔離、組織復雜的JavaScript代碼。之前的閉包也好,自執行函數也好,都是模塊化的一...
摘要:所有依賴這個模塊的語句,都定義在一個回調函數中,等到加載完成之后,這個回調函數才會運行。也采用語句加載模塊,但是不同于,它要求兩個參數第一個參數,是一個數組,里面的成員就是要加載的模塊第二個參數,則是加載成功之后的回調函數。 本篇文章來自對文章《js模塊化編程之徹底弄懂CommonJS和AMD/CMD!》的總結,大部分摘自文章原話,本人只是為了學習方便做的筆記,之后有新的體會會及時補充...
摘要:事實上已經出現了模塊規范,如果使用的模塊規范是無需環境的。因此,需要將規范和的模塊規范區分開來。三模塊規范的好處模塊規范很好地解決變量污染問題,每個模塊具有獨立空間,互不干擾,命名空間等方案與之相比相形見絀。 寫在前面: 一個文件就是一個模塊。 另外本文中的示例代碼需要在node.js環境中方可正常運行,否則將出現錯誤。事實上ES6已經出現了模塊規范,如果使用ES6的模塊規范是無...
摘要:從到完美,寫一個庫庫前端組件庫之前講了很多關于項目工程化前端架構前端構建等方面的技術,這次說說怎么寫一個完美的第三方庫。使用導出模塊,就可以在使用這個庫的項目中構建時使用功能。 從 1 到完美,寫一個 js 庫、node 庫、前端組件庫 之前講了很多關于項目工程化、前端架構、前端構建等方面的技術,這次說說怎么寫一個完美的第三方庫。 1. 選擇合適的規范來寫代碼 js 模塊化的發展大致有...
閱讀 4375·2021-09-09 09:33
閱讀 2381·2019-08-29 17:15
閱讀 2370·2019-08-29 16:21
閱讀 972·2019-08-29 15:06
閱讀 2613·2019-08-29 13:25
閱讀 578·2019-08-29 11:32
閱讀 3247·2019-08-26 11:55
閱讀 2587·2019-08-23 18:24