Javascript SyntaxError:';与';语句在严格模式下无效

Javascript SyntaxError:';与';语句在严格模式下无效,javascript,safari,with-statement,deprecation-warning,Javascript,Safari,With Statement,Deprecation Warning,当我试图从断点执行任何操作时,在safari控制台中出现此错误。错误报告如下: 有人有解决办法吗?由于我假设与此相关的原因,javascript已停止在我的safari站点上运行 编辑:错误报告还包含复制步骤 另一个编辑:我没有使用“with”语句。这是来自safari控制台的错误 with(obj){}语句已弃用,因此在严格模式下无效 要解决此问题,请禁用严格模式,或停止使用with语句 ECMAScript 5中的严格模式禁止,例如带有语句的。你有两个选择: 禁用严格模式(从文件/函数中删

当我试图从断点执行任何操作时,在safari控制台中出现此错误。错误报告如下:

有人有解决办法吗?由于我假设与此相关的原因,javascript已停止在我的safari站点上运行

编辑:错误报告还包含复制步骤

另一个编辑:我没有使用“with”语句。这是来自safari控制台的错误

with(obj){}语句已弃用,因此在严格模式下无效


要解决此问题,请禁用严格模式,或停止使用with语句

ECMAScript 5中的严格模式禁止,例如带有语句的
。你有两个选择:

  • 禁用严格模式(从文件/函数中删除
    “严格模式”
    行),或
  • (首选)避免将
    语句一起使用-它们有害且完全不可读
John Resig提供的有关严格模式的详细信息:

您可以在文章中看到,严格模式:

  • 使您无法
    删除
    变量(如
    删除foo;
  • 限制使用
    eval
  • 对函数添加了一些限制(例如访问
    调用方
    被调用方
  • 使用
语句删除


从技术上讲,我不使用with(我想safari是内部使用的?),但这是我的doctype:。。。这就是“严格”在本文中的含义吗?所以我想解决办法是在Safari修复此错误之前,在我能找到的任何地方删除“使用严格”这个词?@quinn:如果您添加
“使用严格”怎么办在函数中,而不是在文件中?这有什么区别吗?这样,它应该只应用于函数的内容。@Eric我删除了“use strict”,并且一切正常,safari调试器似乎无法在具有“use strict”的上下文中工作;:(感谢您的帮助!这不是OP使用with,而是Safari控制台代码。不是Safari特有的。
'use strict';with(this);
在FF/Chrome中生成“严格模式代码可能不包含'with'语句”。这是Safari特有的,因为如果您试图在
中的调试器控制台中计算任何内容,请使用strict”
scope,即使在脚本中或键入的内容中看不到单词
with
,也会出现此错误。显然,Safari会将您键入的内容用
包装成
,并尝试对其进行评估。有关更多详细信息,请参阅引用的错误报告。可能的重复项不是与一起使用的OP,而是Safari控制台e代码。有人能指出“with”的推荐替代品吗?