为什么Chrome调试程序会跳过删除语句?

ken*_*ntz 9 javascript google-chrome

为什么Chrome调试程序会跳过删除语句?如果在控制台中运行,以下代码将演示观察结果.

(function () {
  var foo = { bar: true };
  debugger;
  delete foo.bar;
})();
Run Code Online (Sandbox Code Playgroud)

hyp*_*ght 1

这里的答案在于命令“删除”的本质,它不是您在 js 中习惯的常见函数。我的猜测是,chrome 工具设置为在包含对象定义或运行方法的对象的每一行上停止,在幕后,在 javascript 中遇到的几乎所有内容都是对象,但是删除不是对象,而是像 ' 这样的运算符+'或'-'。它被跳过的原因是因为这将是唯一一次不会引发错误但不定义或调用对象的行。