国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

深入淺析JS中的嚴格模式

2024-05-06 15:33:41
字體:
來源:轉載
供稿:網友

什么是嚴格模式?

使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 contextfunction sum(num,num){  'use strict'  // do something }

arguments對象

在非嚴格模式中,修改命名參數的值也會反應到arguments對象中,而嚴格模式坐下,這兩個值是完全獨立的

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 曲麻莱县| 安仁县| 昌江| 台中市| 抚松县| 新津县| 平泉县| 泰宁县| 诏安县| 衡水市| 林西县| 双峰县| 金秀| 杭州市| 嘉鱼县| 固阳县| 泰顺县| 荥阳市| 安龙县| 平顶山市| 昌黎县| 塔河县| 宕昌县| 巩义市| 伊通| 乳山市| 东明县| 大宁县| 贡觉县| 库尔勒市| 沁水县| 永川市| 灵寿县| 安塞县| 青田县| 明溪县| 玉溪市| 太谷县| 镇江市| 攀枝花市| 肇东市|