JavaScript 控制台命令

适用于 Windows 和 Windows Phone

你可以在 Visual Studio 的“JavaScript 控制台”窗口中使用命令发送消息和执行其他任务。 有关如何使用该窗口的示例,请参阅快速入门:使用控制台调试 JavaScript. 本主题中的信息适用于使用 JavaScript 生成的 Windows 应用商店应用和 Windows Phone 应用商店应用。 有关多设备混合应用中支持的控制台命令,请参阅调试应用。 有关在 Internet Explorer F12 工具中使用控制台的信息,请参阅本主题

如果“JavaScript 控制台”窗口已关闭,可在 Visual Studio 中调试时,单击**“调试”>“窗口”>“JavaScript 控制台”**将其打开。

备注

如果该窗口在调试会话期间不可用,请确保在项目的“调试”属性中将调试器类型设置为“脚本”

控制台对象命令

下表显示 console 对象命令的语法,这些命令可用在“JavaScript 控制台”窗口中或者可用于从代码中向控制台发送消息。 此对象提供多种形式,以使你可区分信息性消息和错误消息(如果要区分)。

备注

如果需要避免可能与由局部对象命名的控制台产生混淆,可使用较长的命令形式 window.console.[command]。

命令

说明

示例

assert(expression, message)

如果 expression 计算结果为 false,则发送消息。

console.assert((x == 1), "assert message: x != 1");

clear()

清除控制台窗口中的消息(包括脚本错误消息)以及控制台窗口中显示的脚本。 不清除你在控制台输入提示中输入的脚本。

console.clear();

count(title)

将计数命令的调用次数发送到控制台窗口。 对计数的每次调用由可选的 title 唯一标识。

控制台窗口中的现有项由 title 参数(如果有)标识,并由计数命令更新。 不创建新项。

要求:

Visual Studio 2013

console.count();

console.count("inner loop");

debug(message)

向控制台窗口发送 message。

此命令与 console.log 相同。

使用此命令传递的对象将转换为字符串值。

要求:

Visual Studio 2013

console.debug("logging message");

dir(object)

将指定的对象发送到控制台窗口并在对象可视化工具中显示它。 可使用该可视化工具在控制台窗口中检查属性。

console.dir(obj);

dirxml(object)

将指定的 XML 节点 object 发送到控制台窗口并使其显示为 XML 节点树。

要求:

Visual Studio 2013

console.dirxaml(xmlNode);

error(message)

向控制台窗口发送 message。 消息文本为红色,并以错误符号开头。

使用此命令传递的对象将转换为字符串值。

console.error("error message");

group(title)

对发送到控制台窗口的消息开始分组,并发送可选的 title 作为组标签。 在控制台窗口中,组可以嵌套并显示在树视图中。

在某些情况下,例如使用一个组件模型时,通过 group* 命令可以更轻松地查看控制台窗口输出。

要求:

Visual Studio 2013

console.log("This is the outer level");
console.group("Level 2 Header");
console.log("Level 2"); 
console.group(); 
console.log("Level 3");
console.warn("More of level 3"); 
console.groupEnd(); 
console.log("Back to level 2"); 
console.groupEnd(); 
console.debug("Back to the outer level"); 

groupCollapsed(title)

对发送到控制台窗口的消息开始分组,并发送可选的 title 作为组标签。 使用 groupCollapsed 发送的组默认显示在折叠视图中。 在控制台窗口中,组可以嵌套并显示在树视图中。

要求:

Visual Studio 2013

用法与 group 命令相同。

请参见 group 命令的示例。

groupEnd()

当前组结束。

要求:

Visual Studio 2013

请参见 group 命令的示例。

info(message)

向控制台窗口发送 message。 消息以信息符号开头。

console.info("info message");

有关更多示例,请参阅本主题后面部分的格式化 console.log 输出 。

log(message)

向控制台窗口发送 message。

若传递某个对象,则该命令将该对象发送到控制台窗口并在对象可视化工具中显示它。 可使用该可视化工具在控制台窗口中检查属性。

console.log("logging message");

msIsIndependentlyComposed(element)

在 Web 应用中使用。 在使用 JavaScript 的应用商店应用中不受支持。

不受支持。

profile(reportName)

在 Web 应用中使用。 在使用 JavaScript 的应用商店应用中不受支持。

不受支持。

profileEnd()

在 Web 应用中使用。 在使用 JavaScript 的应用商店应用中不受支持。

不受支持。

select(element)

DOM 资源管理器中选择指定的 HTML element。

要求:

Visual Studio 2013

console.select(element);

time (name)

启动由可选的 name 参数标识的计时器。 配合 console.timeEnd 使用时,计算 time 和 timeEnd 之间经历的时间,并使用 name 字符串作为前缀将结果(以 ms 为测量单位)发送到控制台。 用于启用应用程序代码的检测以衡量性能。

要求:

Visual Studio 2013

console.time("app start"); app.start(); console.timeEnd("app start");

timeEnd(name)

停止由可选的 name 参数标识的计时器。 请参见 time 控制台命令。

要求:

Visual Studio 2013

console.time("app start"); app.start(); console.timeEnd("app start");

trace()

将堆栈跟踪发送到控制台窗口。 跟踪包括完整的调用堆栈以及文件名、行号和列号等信息。

要求:

Visual Studio 2013

console.trace();

warn(message)

向控制台窗口发送 message,并以警告符号开头。

使用此命令传递的对象将转换为字符串值。

console.warn("warning message");

杂项命令

“JavaScript 控制台”窗口中还提供以下这些命令。

命令

说明

示例

$0, $1, $2, $3, $4

将指定元素返回到控制台窗口。 $0 返回当前在 DOM 资源管理器中选择的元素,$1 返回以前在 DOM 资源管理器中选择的元素,依此类推,最多可返回第四个以前选择的元素。

$3

$(id)

按 ID 返回元素。 这是 document.getElementById(id) 的快捷方式命令,其中 id 是一个表示元素 ID 的字符串。

$("contenthost")

$$(selector)

使用 CSS 选择器语法返回与指定选择器匹配的元素的数组。 这是 document.querySelectorAll() 的快捷方式命令。

$$(".itemlist")

cd()

cd(window)

用于将表达式计算的上下文从页面的默认顶级窗口改为指定框架的窗口。 无参数调用 cd() 可使上下文返回顶级窗口。

cd();

cd(myframe);

select(element)

DOM 资源管理器中选择指定元素。

select(document.getElementById("element"));

select($("element"));

select($1);

dir(object)

为指定的对象返回一个可视化工具。 可使用该可视化工具在控制台窗口中检查属性。

dir(obj);

检查控制台命令是否存在

在尝试使用特定命令前,可以检查其是否存在。 此示例检查 console.log 命令是否存在。 如果 console.log 存在,代码将调用它。

if (console && console.log) {
    console.log("msg");
}

检查“JavaScript 控制台”窗口中的对象

使用“JavaScript 控制台”窗口时,你可以与范围内的任何对象进行交互。 若要检查控制台窗口中超出范围的对象,请在代码中使用 console.log 、console.dir 或其他命令。 当对象在范围内时,你还可以在代码中设置断点(“断点”>“插入断点”),从控制台窗口与对象进行交互。

格式化 console.log 输出

若将多个参数传递给 console.log,则控制台将这些参数视为数组并连接输出。

var user = new Object();
user.first = "Fred";
user.last = "Smith";

console.log(user.first, user.last);
// Output:
// Fred Smith

console.log 还支持“printf”替换模式以格式化输出。 若在第一个参数中使用替换模式,则将使用其他参数来按使用的顺序对指定模式进行替换。

支持以下替换模式:

  • %s - 字符串
    %i - 整数
    %d - 整数
    %f - 浮点数
    %o - 对象
    %b - 二进制
    %x - 十六进制
    %e - 指数

下面是在 console.log 中使用替换模式的一些示例:

var user = new Object();
user.first = "Fred";
user.last = "Smith";
user.age = 10.01;
console.log("Hi, %s %s!", user.first, user.last);
console.log("%s is %i years old!", user.first, user.age);
console.log("%s is %f years old!", user.first, user.age);

// Output:
// Hi, Fred Smith!
// Fred is 10 years old!
// Fred is 10.01 years old!

请参见

概念

快速入门:使用控制台调试 JavaScript

快速入门:调试 HTML 和 CSS