摘要:如下,一般在非嚴(yán)格模式下遞歸調(diào)用一般這樣使用但是如果代碼是在嚴(yán)格模式下開(kāi)發(fā)結(jié)果在嚴(yán)格模式下不能通過(guò)腳本訪問(wèn)訪問(wèn)這個(gè)屬性會(huì)報(bào)錯(cuò),那么可以使用命名函數(shù)表達(dá)式來(lái)達(dá)到相同的結(jié)果以上代碼創(chuàng)建了一個(gè)名為的命名函數(shù)表達(dá)式,然后將它賦值給變量即是把函
如下,一般在非嚴(yán)格模式下遞歸調(diào)用一般這樣使用:
function factorial(num){ if(num<=1){ return 1; }else { return num * arguments.callee(num-1); } } console.log(factorial(4)); //24
但是如果代碼是在嚴(yán)格模式下開(kāi)發(fā):
"use strict"; function factorial(num){ if(num<=1){ return 1; }else { return num * arguments.callee(num-1); } } console.log(factorial(4));
結(jié)果:Uncaught TypeError: "caller", "callee", and "arguments" properties may not be accessed on strict mode functions or the arguments objects for calls to them
在嚴(yán)格模式下不能通過(guò)腳本訪問(wèn)arguments.callee,訪問(wèn)這個(gè)屬性會(huì)報(bào)錯(cuò),那么可以使用命名函數(shù)表達(dá)式來(lái)達(dá)到相同的結(jié)果:
"use strict"; var factorial = (function f(num){ if(num<=1){ return 1; }else { return num * f(num-1); } }) console.log(factorial(4)); //24
以上代碼創(chuàng)建了一個(gè)名為f()的命名函數(shù)表達(dá)式,然后將它賦值給變量factorial,即是把函數(shù)賦值給另外一個(gè)變量,函數(shù)的名字仍然有效。
在看一段代碼:
(function foo(bar) { if (bar) { return; } foo(true); })();
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/89774.html
摘要:淺拷貝深拷貝淺拷貝的問(wèn)題如果父對(duì)象的屬性等于數(shù)組或另一個(gè)對(duì)象,那么實(shí)際上,子對(duì)象獲得的只是一個(gè)內(nèi)存地址,而不是真正拷貝,因此存在父對(duì)象被篡改的可能。 淺拷貝: function extendCopy(p) { var c = {}; for (var i in p) { c[i] = p[i]; } return c; } 深拷貝: function deepCopy(p...
摘要:反之亦然非嚴(yán)格合并嚴(yán)格看起來(lái)是非嚴(yán)格的。在普通的里面給一個(gè)拼寫錯(cuò)誤的變量名賦值會(huì)使全局對(duì)象新增一個(gè)屬性并繼續(xù)工作盡管后面可能出錯(cuò)在現(xiàn)在的中有可能。第三嚴(yán)格模式禁止刪除聲明變量。 文章整理自MSDN:https://developer.mozilla.org... 1.逐步使用嚴(yán)格模式 ECMAScript 5的嚴(yán)格模式是JavaScript中的一種限制性更強(qiáng)的變種方式。嚴(yán)格模式不是一個(gè)...
摘要:嚴(yán)格模式創(chuàng)設(shè)了第三種作用域作用域。正常模式下,指向全局對(duì)象,如果綁定的值是非對(duì)象,將被自動(dòng)轉(zhuǎn)為對(duì)象再綁定上去,而和這兩個(gè)無(wú)法轉(zhuǎn)成對(duì)象的值,將被忽略嚴(yán)格模式 概述 嚴(yán)格模式是ES5進(jìn)入標(biāo)準(zhǔn)的目的是為了: 明確禁止一些不合理 不嚴(yán)謹(jǐn)?shù)恼Z(yǔ)法 減少JS語(yǔ)言的一些怪異行為 增加更多報(bào)錯(cuò)的場(chǎng)合 保證代碼運(yùn)行的安全 提高編譯效率 增加運(yùn)行速度 為新版的JS語(yǔ)法做鋪墊 如何開(kāi)啟 使用一段字符串...
摘要:系列系列列表從看一與箭頭函數(shù)從看二函數(shù)傳參模式與的上一篇說(shuō)到,對(duì)做了以下限定。是另外一個(gè)變量,指向不同的值,而這兩個(gè)值有相同的類型。函數(shù)中,和指向同一個(gè)值,更改的就等于更改了的。可以用改進(jìn)問(wèn)題是這個(gè)在嚴(yán)格模式下不能運(yùn)行。 系列 系列列表:從use strict看JS(一):this與箭頭函數(shù)從use strict看JS(二):函數(shù)傳參模式與arguments use strict 的 ...
摘要:概述嚴(yán)格模式是什么嚴(yán)格模式是中的一種限制性更強(qiáng)的變種方式。在嚴(yán)格模式下,靜默失敗會(huì)轉(zhuǎn)為報(bào)錯(cuò)。拋出錯(cuò)誤非嚴(yán)格模式下靜默錯(cuò)誤屬性名必須唯一在嚴(yán)格模式下,一個(gè)對(duì)象內(nèi)的所有屬性名必須唯一。非嚴(yán)格模式最后一個(gè)重名參數(shù)會(huì)覆蓋之前的重名參數(shù)。 概述 嚴(yán)格模式是什么 嚴(yán)格模式是JavaScript中的一種限制性更強(qiáng)的變種方式。嚴(yán)格模式可以和非嚴(yán)格模式共存,所以腳本可以逐漸的選擇性加入嚴(yán)格模式。 嚴(yán)格模...
閱讀 3662·2021-11-15 11:37
閱讀 2990·2021-11-12 10:36
閱讀 4450·2021-09-22 15:51
閱讀 2394·2021-08-27 16:18
閱讀 898·2019-08-30 15:44
閱讀 2176·2019-08-30 10:58
閱讀 1791·2019-08-29 17:18
閱讀 3288·2019-08-28 18:25