javascript - 为什么我收到 with 语句的语法错误,但我实际上并没有使用任何语句?

标签 javascript

在下面的代码中,我没有使用任何“with 语句”,但是当我设置断点时,它给出了错误:

SyntaxError: 'with' 语句在严格模式下无效

(function () {
    'use strict';
    function addItem() {
        var orderListElement, newLi, childCount;
        orderListElement = document.getElementById('orderList');
        newLi = document.createElement('li');
        childCount = orderListElement.children.length;
        newLi.textContent = 'new item ';
        orderListElement.appendChild(newLi);
    }
    function deleteItem() {
        var orderListElement, lastLi;
        orderListElement = document.getElementById('orderList');
        lastLi = orderListElement.lastChild;
        orderListElement.removeChild(lastLi);
    }
    function registHandler() {
        var addItemButton, deleteItemButton;
        addItemButton = document.getElementById('addItem');
        deleteItemButton = document.getElementById('deleteItem');
        addItemButton.addEventListener('click', addItem, false);
        deleteItemButton.addEventListener('click', deleteItem, false);
    }
    window.addEventListener('load', registHandler, false);
}());

这太烦人了。

最佳答案

这似乎是 Safari 的一个已知问题:https://bugs.webkit.org/show_bug.cgi?id=65829

要重现错误,您只需在停止在断点处并处于严格模式下时在控制台中键入任何代码即可。

这是错误报告中的代码:

(function(){
    "use strict";
    debugger;
})();

因此,当您处于断点处时,转到控制台并键入 2+3(或任何表达式),您将收到错误。

enter image description here

关于javascript - 为什么我收到 with 语句的语法错误,但我实际上并没有使用任何语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12227565/

相关文章:

javascript - 赋值结合性

javascript - 当我删除字符时重新计数 var

javascript - CSS3 边框半径和 Internet Explorer 8

javascript - Bootstrap 4突出显示导航栏事件

javascript - 未捕获的类型错误 : Cannot read property 'height' of undefined

javascript - 如何通过推送生成Firebase增量计数器

php - 为什么从 PHP 输出 JavaScript 时会收到非法 token ?

javascript 和弄乱字符串的原型(prototype)

javascript - 如何使用 SpiderMonkey API 实现闭包?

javascript - ReactJS 中的嵌套对象