我想知道我是否可以用一些命令清理控制台..
console.log(),可以打印...是否有清理控制台的命令?
我试过console.log(console);并在下面得到这个功能......
assert: function assert() { [native code] }
constructor: function Console() { [native code] }
count: function count() { [native code] }
debug: function debug() { [native code] }
dir: function dir() { [native code] }
dirxml: function dirxml() { [native code] }
error: function error() { [native code] }
group: function group() { [native code] }
groupEnd: function groupEnd() { [native code] }
info: function info() { [native code] }
log: function log() { …Run Code Online (Sandbox Code Playgroud) 可以在这个小片段中看到该行为(将其作为全局脚本执行):
var name = {};
name.FirstName = 'Tom';
alert(name.FirstName);
Run Code Online (Sandbox Code Playgroud)
undefinedChrome中的警报产生但可以在IE和Firefox中使用.当我这样做时,我也得到一个奇怪的价值
alert(name);
Run Code Online (Sandbox Code Playgroud) Chrome> DevTools> console中是否有任何功能可以清除/重置/删除在测试时声明的变量和函数(就像调用clear,清除日志一样)?
让我们说,举个例子,我有一个用let keyoword声明的变量.
let str = "Hello";
Run Code Online (Sandbox Code Playgroud)
..我通过控制台运行一次,然后我再次通过控制台运行相同的代码.
是的,它会抛出一个错误"标识符'str'已经被声明为"因为变量已经被声明并且它不能再次声明(不像用var关键字声明它)所以要通过控制台重新运行代码,我必须刷新重置帧/目标上下文的页面.
还有其他选择吗?
我知道 JS 中的 let 不能声明变量两次。但是当我在控制台中尝试以下代码时:
a = 1;
let a = 2;
let a = 3;
.
.
.
let a = 100;
Run Code Online (Sandbox Code Playgroud)
注意:它们是逐行运行的(如下面的屏幕截图所示)。版本是谷歌浏览器91.0.4472.114
它总是有效,没有错误。这真的让我很困惑,为什么它工作得很好?我知道控制台中发生的情况并不代表脚本中发生的情况。但我的问题是为什么它存在于控制台中?这有什么原因吗,或者可能是一个错误?
因为我假设let和const具有相同的声明行为,如果我使用const而不是let,这是毫无疑问的。
b = 1;
const b = 2;
const b = 3; //Uncaught SyntaxError: Identifier 'b' has already been declared
Run Code Online (Sandbox Code Playgroud)