国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js嚴格模式下的總結

liaorio / 2774人閱讀

摘要:也可以只在函數中打開嚴格模式嚴格模式下沒有全局變量嚴格模式下會報錯,非嚴格模式下正常刪除變量有三種聲明的情形聲明的全局變量聲明的局部變量中聲明的全局變量第一種和第二種情況是無法用刪掉的。

所謂嚴格模式其實就是一個不會賦值給任何變量的字符串 “use strict”
如果在全局作用域下 給出這個提示,那整個腳本將采用嚴格模式。也可以只在函數中打開嚴格模式

1.嚴格模式下沒有全局變量

a="test"

嚴格模式下會報錯,非嚴格模式下正常

2.刪除變量

var 有三種聲明的情形

var 聲明的全局變量

var 聲明的局部變量

eval()中聲明的全局變量

第一種和第二種情況是無法用 delete刪掉的。
首先第一種情況聲明的全局對象雖然是windows的屬性,但這個屬性的configurable=false 因此是無法刪除的
第二種情況 局部變量更不行了,連依附的對象是誰都不知道,怎么刪除

第三種情況eval()稍后會說到。

回歸正題。也就是說非嚴格模式下,可以刪除變量,但是會失敗返回false.
嚴格模式下刪除變量會報錯。

3.對象

在下列情況下操作對象會報錯

為只讀屬性賦值會報錯

對不可配置的屬性使用delete 會報錯

為不可擴展的對象添加屬性會報錯

在使用對象字面量的時候,屬性名必須唯一。比如

var person={
   name:"1",
    name:"2"
}

非嚴格模式下會默認取值第二個,嚴格模式下會報錯。

4.函數

嚴格模式要求函數參數名稱必須唯一

function(n,n){
   // todo
}

在非嚴格模式下,這個函數聲明不會報錯,通過參數名只能訪問到第二個參數,第一個參數得通過arguments去訪問。
arguments在兩種模式下也有所不同
在非嚴格模式下,修改命名參數的值會反映到arguments對象中,在嚴格模式下兩個值是獨立的。
淘汰了 arguments.callee(引用函數本身),arguments.caller(引用調用函數)。
嚴格模式下函數名不能使用js保留字
**嚴格模式下只能在腳本的頂級和在函數內部聲明函數,在if語句中聲明函數會導致語法錯誤。
**

if(true){
   function(){
     // 嚴格模式下報錯
}
}
5.this

在非嚴格模式下使用函數的apply(),call(),傳入null 或者undefined值會被轉換為全局對象。在嚴格模式下,函數的this始終是指定的值,無論指定的是什么值。

var a="1";
function test(){
  console.log(this.a)
}
test.call(null) 在非嚴格模式下會輸出1,嚴格模式下this就指代的就是null,null沒有a屬性,就會報錯。

一會回來補充點別的

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/92897.html

相關文章

  • JS專題之嚴格模式

    摘要:整個腳本文件就會以嚴格模式執行。函數作用域范圍將放在函數體的第一行,則整個函數以嚴格模式運行。嚴格模式下,必須指明的指向對象。禁止在非函數代碼塊聲明函數的嚴格模式只允許在全局作用域或函數作用域聲明函數。 ECMAScript 5 引入了 strict mode ,現在已經被大多瀏覽器實現(從IE10開始) 一、什么是嚴格模式 顧名思義,JavaScript 嚴格模式就是讓 JS 代碼以...

    baukh789 評論0 收藏0
  • this總結【1】—— this概覽

    摘要:是什么這個單詞是一個代詞,所以應該是指代某些東西搞清楚的關鍵之處,就是要搞清楚指代了什么那么到底指代了什么呢就像你平時指著一個蘋果說指著一個香蕉說同樣,也會因為情況的不同而不同在中按照常規理解,的值是什么取決于函數如何被調用然而,的值是什么 1. this是什么 this這個單詞是一個代詞,所以this應該是 指代某些東西搞清楚this的關鍵之處,就是要搞清楚this指代了什么 那么t...

    MyFaith 評論0 收藏0
  • 嚴格模式和非嚴格模式區別

    摘要:嚴格模式和非嚴格模式有什么區別嚴格模式對正常的語義做了一些更改。其次,嚴格模式修復了一些導致引擎難以執行優化的缺陷有時候,相同的代碼,嚴格模式可以比非嚴格模式下運行得更快。 嚴格模式和非嚴格模式有什么區別: 嚴格模式對正常的 JavaScript語義做了一些更改。首先,嚴格模式通過拋出錯誤來消除了一些原有靜默錯誤。其次,嚴格模式修復了一些導致 JavaScript引擎難以執行優化的缺陷...

    liaoyg8023 評論0 收藏0
  • JS 中 this 在各個場景下的指向

    摘要:聲明了一個函數,并且將它作為一個構造函數調用構造函數調用構造函數調用是函數的構造函數調用。構造函數中的在構造函數調用中指向新創建的對象構造函數調用的上下文是新創建的對象。來看看下面示例中的上下文正在進行構造函數調用,其中上下文是。 為了保證的可讀性,本文采用意譯而非直譯。 想閱讀更多優質文章請猛戳GitHub博客,一年百來篇優質文章等著你! 1. this 的奧秘 很多時候, JS 中...

    WrBug 評論0 收藏0
  • 使用瀏覽器調試嚴格模式下的代碼

    摘要:它的代碼草稿紙簡直是瀏覽器里的調試神器,不僅簡單直觀,而且也具備了一般的編輯器功能,無奈用習慣了的,我用得較少但感覺作為開發者工具絕對業界良心。 一般平時的少量測試代碼, 我習慣直接在Chrome的DEV中調試, 一般的調試都沒有問題, 但難免一些小概率事件, 比如調試嚴格模式下的代碼(關于嚴格模式,mark在這里?嚴格模式), 這時候如果直接在console里輸入use strict...

    tigerZH 評論0 收藏0

發表評論

0條評論

liaorio

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<