jjzjj

javascript - 在 Javascript 中,如何在不更改函数的情况下检查函数是否处于严格模式*?

我想编写一个测试套件以确保某些给定函数使用严格模式。它们有很多,手动检查它们似乎是一件苦差事。Ananswerinasimilarquestion在函数定义上使用正则表达式进行检查。但是,我相信这会误检测被测试函数位于具有“usestrict”或文件级“usestrict”声明的函数内的情况。答案说“usestrict”是前置的,但在我的环境(MozillaRhino)中,情况并非如此:$catstrict_sub.js"usestrict";varstrict_function=function(){not_a_real_global="foo";};print(strict_fun

javascript - 严格模式是否禁止语句级函数声明?

"usestrict";if(true){functionfoo(){}}在PhpStorm中,此代码显示错误:Functionstatementnotattoplevelofaprogramorfunctionisprohibited但是,即使在调试器中并且没有任何控制台输出,Chrome也会愉快地执行它。现在禁止还是不禁止? 最佳答案 是的,在ES5中它们是被禁止的(并且在严格模式下,所有实现都会抛出异常)。另见Kangax'greatarticle对于草率模式下的函数语句。但是,在ES6中,它们是具有新语义的block级函数声

javascript - 为什么这在严格模式下是非法的?

是的,是的,我知道,严格模式还没有出现,但实际上,我正在为future做计划......那么,为什么会这样:$('#'+$(this).attr('id').replace('control-','legend-')).fadeIn();...在ES5严格模式下不允许吗?还是我理解有误?JSLint:Problematline516character18:Strictviolation.Coulditbealittlemoreverbose,Iwonder...?EDIT:Toavoidconfusion,here'smoreoftheoriginalcode:functiondisp

javascript - Babel/Karma/Chai 给出 TypeError : 'caller' , 'callee' 和 'arguments' properties may not be accessed on strict mode functions

我无法弄清楚为什么这个测试没有通过。varexpect=require('chai').expect;describe('HelloComponent',function(){it('passesaquitesimpletest',function(){expect(1+4).to.equal(5);});});产生这个错误:DEBUG[web-server]:serving:/Users/ivan/dev/react-starter/node_modules/karma/static/context.htmlDEBUG[web-server]:serving(cached):/Use

javascript - 'use strict' 和 underscore.js 问题

我使用Yeoman和backbone.js编写了一个应用程序。在每个js文件的顶部,我都指定了'usestrict';当我运行我的grunt任务时,jshint没有遇到任何错误。我可以毫无问题地使用grunt构建我的应用程序,但是当我尝试运行丑陋的js时,我收到以下错误:UncaughtSyntaxError:Strictmodecodemaynotincludeawithstatement我搜索了代码库,唯一使用with语句的是下划线。我是严格模式的新手,所以我不确定如何解决这个问题。我可以在使用underscorejs函数的任何地方不使用严格模式吗?谢谢。编辑:给出下面的代码示例(

javascript - 在严格模式下复制 arguments.callee

我是第一次在严格模式下工作,你知道吗,这也是多年来第一次能够使用非严格模式的属性。我的questionhere概述了我遇到的确切问题,但如果我仍然可以访问arguments.callee,我已经制定的解决方案可以适用于更具可扩展性的东西。在不命名函数的情况下,在严格模式下是否有任何方法可以获得对我当前范围内的函数的引用? 最佳答案 WithoutnamingthefunctionisthereanywayinstrictmodethatIcangetareferencetothefunctionwhosescopeI'mcurren

javascript - UglifyJS 'use strict' 语句

我正在使用Grunt连接grunt-contrib-uglify任务来缩小我应用程序中的JavaScript。缩小后,它会删除除第一个语句之外的所有'usestrict'语句,因此我得到了一个巨大的JavaScript文件,顶部有'usestrict'指令。问题是全局'usestrict'指令使浏览器以“严格模式”执行我在项目中使用的每个库的代码,这会导致错误,因为不是每个第3方代码都是为严格模式编写的。关于如何解决这个问题的任何想法? 最佳答案 如果你用IIFE包裹你所有的脚本然后grunt-contrib-uglify不会将该语

javascript - 如何使用 JSLint 全局设置 'use strict'

我是javascript的新手,正在尝试通过JSLint进行验证。我应该把“usestrict”放在哪里才能在全局范围内使用它并进行验证?这给了我错误“语句位置中的意外表达式‘usestrict’。”:"usestrict";console.log('doingjsinhead-section');functionhelloWorld(){console.log('calledfunctionhelloWorld()');alert('HelloWorldfromaJSfunctionshowinganalert!');}functionhelloMyNumber(){console.

javascript - "use strict"导致未定义的错误

我在我的JavaScript中定义了以下函数:function_snr(id){"usestrict";this.e="something";}我通过JSLint运行我的代码,它建议我向函数添加“usestrict”。当我执行e时,现在会抛出未定义的错误。从一些初步调查来看,似乎不再定义用于引用_snr的this。我读过“usestrict”,发现它用于防止不安全的做法。有人可以解释一下这有什么不安全的地方吗?“usestrict”实际上在做什么,我该如何修复我的代码? 最佳答案 如果一个函数被调用时没有设置它的this,在非严格模

xml - 为了它的好处而使用无效的 XHTML 1.0 Strict 可以吗?

我一直在让我的网页使用无效的XHTML1.0Strict,以获得我网页中自定义实体的好处,以及其他可扩展性功能。这样做有什么问题吗,或者这是一种编写网页的完全有效的方法(除了无法在不理解XHTMLmime类型的浏览器中显示之外)?我很好奇我是否可以插入它使用XML技术将我自己网页的bootstrapdivhell包装成有意义的标签,而无需使用javascript来解析自定义标签。特别是,编写有效的XHTML非常困难,因为许多HTML5标记(例如canvas和nav)未定义为有效元素,并且尽管现代网络实践有效,但仍有许多奇怪的方法使其无效。这是一个更大的问题,因为这使得无法使用Angul