嚴格模式和普工模式的區別:1,變數宣告:在普通模式下可以不用var 宣告,但是在嚴格模式下必須用var 宣告。
2,禁止用with。在普通模式下,可以用with遍歷物件,但是在嚴格模式寫不可以用with。
3,設立eval()作用域。在普通模式下,作用域分為全域性和區域性作用域,函式是分界線,但是在嚴格模式下,eval()有獨自的作用域。
4,函式的this指標。在普通模式呼叫函式,函式的this指標執行window物件,但是在嚴格模式下,直接呼叫函式,則指標指向undefined。
5,刪除變數。在嚴格模式不能刪除變數,在普通模式可以刪除沒有用var宣告的變數。
6,函式引數不能重名。
7,八進位制不讓用。
8,argumrnts不追蹤引數的變化。
indexof()引數是陣列的元素,如果陣列裡面有該元素返回該元素的索引號,如果沒有則返回-1。
foreach(function(){})有三個引數,第乙個引數是陣列的元素,第二個引數是索引號,第三個引數是操作的該陣列,一般第三個引數很少用。
map(function(){})和foreach()一樣就有一點不同,這個有返回值。
filter(function(){})過濾出符合條件的元素。
some(function(){})如元素中有符合條件的元素,返回true。
every(function(){})陣列中所有的元素都得符合條件,返回true。
reduce(function(a,b){})這個函式有累加的效果。
ES5 嚴格模式
在es5中可以開啟一種嚴格模式的 形式,開啟方式是 將全域性或者函式的第一條語句定義為 use strict 如果瀏覽器不支援,會將其解析為一條普通語句,沒有任何的 開啟全域性模式後會有一下的一些約束 1.第一次定義變數的時候必須使用var。如 test heihei alert test 該語句在...
es5嚴格模式
es3和es5產生衝突的部分使用es5的方法,否則使用es3 use strict 變數賦值前必須宣告,var a b 2 b沒有定義 區域性this必須被賦值 賦給什麼就是什麼 拒絕重複屬性和引數 arguments.calle 不能被使用 function.caller with 改變作用域鏈 ...
ES5 嚴格模式
歷史 es5 2009年發布 es6 es2015 es7 es2016 在早期規範確立之前js在瀏覽器中執行時,每個瀏覽器都有定義一套自己的套路,這個被稱為混炸模式,或者怪異模式 隨著ecma js 等確立新的規範 故名思意 這種模式使用js在更嚴格的語法條件下執行,為 的執行保駕護航 1 在全域...