`

javascript strict 模式下 callee 失效

阅读更多

ES 5的版本下,javascript 可以用  'use strict'; 指明进入strict 模式。

在stric 模式下,arguments.callee 是不能用的,因为匿名函数已经可以命名,以前之所以提供 callee,是因为无法对匿名函数命名,比如在下面这个匿名递归调用函数中:

  

[1,2,3,4,5].map(function (n) {
    return !(n > 1) ? 1 : arguments.callee(n - 1) * n;
});

 

现在,可以写成如下,直接给函数命名: 

 

[1,2,3,4,5].map(function factorial (n) {
    return !(n > 1) ? 1 : factorial(n-1)*n;
});

 这样可以让代码看起来更直观些。

分享到:
评论

相关推荐

    Javascript 严格模式详解

    此外,严格模式下,`arguments.caller` 和 `arguments.callee` 属性被禁用,这可以避免潜在的安全漏洞。 ##### 数字字面量 在非严格模式下,以零开头的数字字面量会被解析为八进制数,但在严格模式下,这样的语法...

    Javascript 严格模式use strict详解

    JavaScript的严格模式(use strict)是ECMAScript规范中引入的一种模式,旨在强化JavaScript的语法,提高代码质量,减少潜在的错误。它通过增加额外的限制来帮助开发者编写更安全、更可维护的代码。 首先,严格模式...

    深入JavaScript严格模式:最佳实践与应用指南

    在严格模式下,JavaScript引擎会更加严格地检查代码,从而减少一些常见的错误和不良实践。 ##### 2.2 好处 - **消除不安全的语言特性**:例如禁用某些容易导致意外行为的功能,如隐式全局变量的创建。 - **明确变量...

    JavaScript的strict模式与with关键字介绍

    其中之一便是“严格模式”(strict mode),这使得JavaScript的语法变得更加严格,旨在消除JavaScript中一些不合理的、不便于维护的特性。严格模式下,原先一些常见的导致错误的代码将不再被允许执行,其中包括强制...

    JavaScript 严格模式(use strict)

    JavaScript 严格模式(strict mode)即在严格的条件下运行。 使用 “use strict” 指令 “use strict” 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。 它不是一条语句,但是是一个字面量表达式,在 JavaScript ...

    JavaScript 严格模式(use strict)用法实例分析

    JavaScript 严格模式 (`use strict`) 是一种特殊执行模式,它强化了语言的规则,提高了代码质量和安全性。在严格模式下,JavaScript 引擎会执行更严格的解析和执行,旨在暴露和防止潜在的错误,同时也禁用了某些可能...

    前端开源库-strict-mode

    "strict mode"(严格模式)是JavaScript中一个非常重要的概念,它改变了代码的执行方式,使得代码更加安全、可靠,并且有助于发现潜在的问题。在前端开源库中启用严格模式,可以显著提升代码质量和维护性。 严格...

    Javascript函数中的arguments.callee用法实例分析

    3. 严格模式('use strict')下,arguments.callee无法使用,这是因为在严格模式中,对arguments.callee的访问会抛出TypeError。 然而,随着JavaScript的发展,尤其是ES6引入了箭头函数和尾调用优化等特性之后,...

    Javascript的严格模式strict mode详细介绍

    JavaScript的严格模式(strict mode)是ECMA-262 Edition 5引入的一种新的脚本执行方式,旨在对JavaScript的语言规则作出更严格的限制,以帮助开发者编写更清晰、更规范的代码。在严格模式下,一些在普通模式(非...

    前端开源库-use-strict

    在JavaScript的世界里,"use strict" 是一个非常重要的指令,用于启用ECMAScript规范中的严格模式。严格模式是一种更安全、更严格的JavaScript执行环境,它旨在消除语法错误,避免一些意外的行为,并强制开发者遵循...

    Babel7.x完美解决严格模式报错:’caller’, ‘callee’, and ‘arguments’ properties may not be accessed on strict mode

    问题描述 做项目用到了MUI的scroll控件 故此我引入了mui.min.js 然而 猝不及防地报错了: 原创文章 236获赞 36访问量 201万+ 关注 私信 展开阅读全文 作者:Piconjo_Official

    JavaScript面试题集锦

    "use strict"是ECMAScript 5添加的一种严格模式,使得JavaScript在更严格的条件下运行,消除JavaScript语法的一些不合理、不严谨之处,减少一些怪异行为。使用use strict模式可以使JS编码更加规范化,消除一些糟糕的...

    在JavaScript中使用严格模式(Strict Mode)

    ECMAScript5中引入的严格模式,通过让JavaScript运行环境对一些开发过程中最常见和不易发现的错误做出和当前不同的处理,来让开发者拥有一个”更好”的JavaScript语言。很长一段时间内,由于只有Firefox支持严格模式,我...

    javascript严格模式详解(含严格模式与非严格模式的区别)

    JavaScript中的“严格模式”(Strict Mode)是一种特殊的执行模式,它在代码的开头通过`'use strict';`声明,旨在使代码更加规范和安全。严格模式不仅有助于提高代码质量,还可以帮助开发者避免一些常见的错误。以下...

Global site tag (gtag.js) - Google Analytics