JavaScript 主控台命令
您可以在 Visual Studio [JavaScript 主控台] 視窗中使用命令,傳送訊息及執行其他工作。 如需示範如何使用該視窗的範例,請參閱快速入門:使用主控台偵錯 JavaScript. 本主題中的資訊適用於使用 JavaScript 的 Windows 市集應用程式和 Windows Phone 市集應用程式。 如需在多重裝置混合應用程式中所支援的主控台命令詳細資訊,請參閱偵錯您的應用程式 (英文)。 如需在 Internet Explorer F12 工具中使用主控台的詳細資訊,請參閱本主題。
如果 [JavaScript 主控台] 視窗已關閉,您可以在 Visual Studio 中偵錯時,透過選擇 [偵錯] > [Windows] > [JavaScript 主控台] 開啟它。
注意事項 |
---|
如果在偵錯工作階段期間無法使用該視窗,請確定在專案的 [偵錯] 屬性中的偵錯工具類型已設為 [指令碼]。 |
主控台物件命令
此表格顯示 console 物件命令的語法,該命令可用於 [JavaScript 主控台] 視窗,也可以用來從程式碼傳送訊息至主控台。 此物件提供數種格式,以便您在必要時可區分告知性訊息與錯誤訊息。
注意事項 |
---|
如需避免與本機物件命名的主控台相混淆,您可以使用較長的命令格式 window.console.[command]。 |
命令 |
描述 |
範例 |
---|---|---|
assert(expression, message) |
如果 expression 評估為 false,則會傳送訊息。 |
console.assert((x == 1), "assert message: x != 1"); |
clear() |
清除主控台視窗中的訊息 (包括指令碼錯誤訊息) 和顯示的指令碼, 但是不會清除您在主控台輸入提示中輸入的指令碼。 |
console.clear(); |
count(title) |
將 count 命令呼叫的次數傳送至主控台視窗。 count 的每一個呼叫是由選擇性 title 唯一識別的。 主控台視窗中的現有項目是由 title 參數 (如果有的話) 所識別並由 count 命令更新。 不會建立新的項目。 需求: 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 |
|
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 字串做為前置詞,將結果 (以毫秒為單位) 傳送至主控台。 用來啟用應用程式程式碼的檢測以測量效能。 需求: 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 總管] hh441474(v=vs.120).md中指定的項目。 |
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!