在專案中如何使用JS嚴格模式
這次帶給大家在專案中如何使用JS嚴格模式,在專案中使用JS嚴格模式的注意事項有哪些,以下就是實戰案例,一起來看一下。
什麼是嚴格模式?
使JS編碼更規範化的模式,消除Javascript語法的一些不合理、不嚴謹之處,減少一些怪異行為
怎麼使用?
直接加入下面的這句字串就可以了,這種語法可以向後相容,如果是不支援嚴格模式的javascript引擎,就會直接當成是一個未賦值的字串字面量,會直接忽略,支援的引擎就會開啟嚴格模式
#'use strict'
說明:
1.在全域作用域使用的話,那整個js腳本就會開啟這種模式
2.如果是只在函數內部使用的話,那麼就只是該函數內部開啟而已
function doSomething(){ 'use strict' // 其他代码 }
#變數
1. 在嚴格模式中什麼時候創建變數以及怎麼創建變數都是有限制的.首先,不允許意外創建全域變數.在非嚴格模式下是可以像下面這樣創建全域變數,但是嚴格模式中是不可以的
#// 未宣告變數
// 非嚴格模式:建立全域變數
// 嚴格模式:拋出referenceEror錯誤
2.在嚴格模式下,對變數名也是有限制.特別的,不能使用implements,interface,let,package,private等保留字作為變數名稱,用這些變數命名的話,都會導出語法錯誤
#物件
在嚴格模式下操作物件比在非嚴格模式下更容易導致錯誤,下面幾種情形會導致語法錯誤
#1.為唯讀屬性賦值會拋出TypeError
2.對不可配置的屬性使用delete 操作符會拋出TypeError
3.對不可擴充的物件新增屬性會拋出TypeError
函數
在嚴格模式下,要求命名函數的參數必須是唯一的
// 重命名参数的 // 非严格模式:没有错误,只能访问第二个参数,如果要访问第一个参数,就必须通过arguments // 严格模式语法错误 function sum(num,num){ //do something }
在嚴格模式下arguments物件的行為也有所不同.在嚴格模式下,修改命名參數的值也會反映到argument物件中,但是在嚴格模式下這兩個值是完全獨立的
function showValue(value){ value = 'foo' console.log(value) console.log(arguments[0]) // 非严格模式 : 'foo' 严格模式 :'hello' } showValu('hello')
函數
在嚴格模式中,函數的參數必須唯一
// 重名的参数 // 非严格模式中,没有错误,只能访问第一个参数 // 严格模式 :抛出错误 Uncaught SyntaxError: Duplicate parameter name not allowed in this context function sum(num,num){ 'use strict' // do something }
arguments物件
#在非嚴格模式中,修改命名參數的值也會反應到arguments物件中,而嚴格模式坐下,這兩個值是完全獨立的
// 修改命名参数的值 // 非严格模式:修改会反应到arguments中 // 严格模式中不会反应到arguments中 function sum(num,num2){ 'use strict' num=3 console.log(arguments[0],num2)// 严格模式下输出为1,2 非严格模式下输出为3,2 } sum(1,2)
eval()
eval函數最大的變化就是他在包含上下文中不在創建變數或函數:
// 使用eval函数创建变量 // 非严格模式中:弹出框弹窗 20 // 严格模式中:调用alert(x)时报错 function doSomething(){ eval('var x=20') alert(x) }
在嚴格模式中,可以在eval ()中宣告變數和函數,但這些邊行或函數只能在被求值的特殊作用域中有效,隨後就將被銷毀,下面這段程式碼執行就是沒問題的
'use strict' var result=eval('x=1,y=13;x+y') alert(result)
在這裡,eval中聲明了變數x和y,然後將他們加在一起,反悔了他們的和,於是result變數的值就是21,即x y的結果,在調用alert時,儘管x和y已經不存在了,result變數的值還是有效的
抑制this
#在非嚴格模式下使用函數的apply( )或則call()方法時,null和undefined值會被轉換為全域物件,而在嚴格模式下,函數的this值始終是指定的值,無論指定的是什麼值:
// 访问属性 // 非严格模式:访问全局实行 // 严格模式:抛出错误,因为this的值是null var color = "red"; function displayColor() { alert(this.color); } displayColor(null);
其他變化
#在严格模式中with语句被抛弃掉了,在非严格模式中with语句能够改变解析标识符的路径,但在严格模式下,with语句被简化掉了,因此,在严格模式下使用with语句是导致语法错误
// with语句 // 非严格模式:允许 // 严格模式:抛出语法错误 with (location) { console.log(href); }
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读
以上是在專案中如何使用JS嚴格模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

微信勿擾模式什麼意思如今,隨著智慧型手機的普及和行動網路的快速發展,社群媒體平台已成為人們日常生活中不可或缺的一部分。而微信作為國內最受歡迎的社群媒體平台之一,幾乎每個人都有一個微信帳號。我們可以透過微信與朋友、家人、同事進行即時溝通,分享生活中的點滴,了解彼此的近況。然而,在這個時代,我們也不可避免地面臨資訊過載和隱私洩漏的問題,特別是對於那些需要專注或

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

即使在「請勿打擾」模式下接聽電話也可能是一種非常煩人的體驗。顧名思義,請勿打擾模式可關閉來自郵件、訊息等的所有來電通知和警報。您可以按照這些解決方案集進行修復。修復1–啟用對焦模式在手機上啟用對焦模式。步驟1–從頂部向下滑動以存取控制中心。步驟2–接下來,在手機上啟用「對焦模式」。專注模式可在手機上啟用「請勿打擾」模式。它不會讓您的手機上出現任何來電提醒。修復2–更改對焦模式設定如果對焦模式設定中存在一些問題,則應進行修復。步驟1–打開您的iPhone設定視窗。步驟2–接下來,開啟「對焦」模式設

如何使用WebSocket和JavaScript實現線上語音辨識系統引言:隨著科技的不斷發展,語音辨識技術已成為了人工智慧領域的重要組成部分。而基於WebSocket和JavaScript實現的線上語音辨識系統,具備了低延遲、即時性和跨平台的特點,成為了廣泛應用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現線上語音辨識系

如何利用JavaScript和WebSocket實現即時線上點餐系統介紹:隨著網路的普及和技術的進步,越來越多的餐廳開始提供線上點餐服務。為了實現即時線上點餐系統,我們可以利用JavaScript和WebSocket技術。 WebSocket是一種基於TCP協定的全雙工通訊協議,可實現客戶端與伺服器的即時雙向通訊。在即時線上點餐系統中,當使用者選擇菜餚並下訂單

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

如何使用WebSocket和JavaScript實現線上預約系統在當今數位化的時代,越來越多的業務和服務都需要提供線上預約功能。而實現一個高效、即時的線上預約系統是至關重要的。本文將介紹如何使用WebSocket和JavaScript來實作一個線上預約系統,並提供具體的程式碼範例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進行全雙工
