在下面的代码中,我没有使用任何“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
(或任何表达式),您将收到错误。
关于javascript - 为什么我收到 with 语句的语法错误,但我实际上并没有使用任何语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12227565/