js 系統教程-15-js 語法之命令列-console.log,console.info,console.error,console.warn,debugger
目錄
console 物件與控制檯
console
console物件是 JavaScript 的原生物件,它有點像 Unix 系統的標準輸出stdout和標準錯誤stderr,可以輸出各種資訊到控制檯,並且還提供了很多有用的輔助方法。
console的常見用途有兩個。
除錯程式,顯示網頁程式碼執行時的錯誤資訊。
提供了一個命令列介面,用來與網頁程式碼互動。
console 物件的靜態方法
console物件提供的各種靜態方法,用來與控制檯視窗互動。
console.log(),console.info(),console.debug()
console.log()
console.log('Hello World')
// Hello World
console.log('a', 'b', 'c')
// a b c
console.log()
會自動在每次輸出的結尾,新增換行符。
console.log(1);
console.log(2);
console.log(3);
// 1
// 2
// 3
格式佔位符
如果第一個引數是格式字串(使用了格式佔位符),console.log方法將依次用後面的引數替換佔位符,然後再進行輸出。
console.log(' %s + %s = %s' , 1, 1, 2)
// 1 + 1 = 2
console.log()
支援以下佔位符,不同型別的資料必須使用對應的佔位符。
%s
字串%d
整數%i
整數%f
浮點數%o
物件的連結%c
CSS 格式字串
var number = 11 * 9;
var color = 'red';
console.log('%d %s balloons', number, color);
// 99 red balloons
- css 樣式
console.log(
'%cThis text is styled!',
'color: red; background: yellow; font-size: 24px;'
)
上面程式碼執行後,輸出的內容將顯示為黃底紅字。
console.info 是 console.log() 的別名,用法完全一樣。只不過console.info() 會在輸出資訊的前面,加上一個藍色圖示。
console.debug 方法與 console.log() 類似,會在控制檯輸出除錯資訊。
但是,預設情況下,console.debug 輸出的資訊不會顯示,只有在開啟顯示級別在 verbose
的情況下,才會顯示。
- 方法的覆蓋
['log', 'info', 'warn', 'error'].forEach(function(method) {
console[method] = console[method].bind(
console,
new Date().toISOString()
);
});
console.log("出錯了!");
// 2014-05-18T09:00.000Z 出錯了!
console.warn(),console.error()
warn方法和error方法也是在控制檯輸出資訊,它們與log方法的不同之處在於,
warn方法輸出資訊時,在最前面加一個黃色三角,表示警告;
error方法輸出資訊時,在最前面加一個紅色的叉,表示出錯。
同時,還會高亮顯示輸出文字和錯誤發生的堆疊。其他方面都一樣。
console.error('Error: %s (%i)', 'Server is not responding', 500)
// Error: Server is not responding (500)
console.warn('Warning! Too few nodes (%d)', document.childNodes.length)
// Warning! Too few nodes (1)
console.table()
var languages = [
{ name: "JavaScript", fileExtension: ".js" },
{ name: "TypeScript", fileExtension: ".ts" },
{ name: "CoffeeScript", fileExtension: ".coffee" }
];
console.table(languages);
console.count()
count方法用於計數,輸出它被呼叫了多少次。
function greet(user) {
console.count();
return 'hi ' + user;
}
greet('bob')
// : 1
// "hi bob"
greet('alice')
// : 2
// "hi alice"
greet('bob')
// : 3
// "hi bob"
console.dir(),console.dirxml()
dir 方法用來對一個物件進行檢查(inspect),並以易於閱讀和列印的格式顯示。
console.log({f1: 'foo', f2: 'bar'})
// Object {f1: "foo", f2: "bar"}
console.dir({f1: 'foo', f2: 'bar'})
// Object
// f1: "foo"
// f2: "bar"
// __proto__: Object
上面程式碼顯示dir方法的輸出結果,比log方法更易讀,資訊也更豐富。
console.assert()
console.assert()
方法主要用於程式執行過程中,進行條件判斷,如果不滿足條件,就顯示一個錯誤,但不會中斷程式執行。
這樣就相當於提示使用者,內部狀態不正確。
它接受兩個引數,第一個引數是表示式,第二個引數是字串。只有當第一個引數為false,才會提示有錯誤,在控制檯輸出第二個引數,否則不會有任何結果。
console.assert(false, '判斷條件不成立')
// Assertion failed: 判斷條件不成立
// 相當於
try {
if (false) {
throw new Error('判斷條件不成立');
}
} catch(e) {
console.error(e);
}
console.time(),console.timeEnd()
這兩個方法用於計時,可以算出一個操作所花費的準確時間。
console.time('Array initialize');
var array= new Array(1000000);
for (var i = array.length - 1; i >= 0; i--) {
array[i] = new Object();
};
console.timeEnd('Array initialize');
// Array initialize: 1914.481ms
time方法表示計時開始,timeEnd方法表示計時結束。它們的引數是計時器的名稱。呼叫timeEnd方法之後,控制檯會顯示“計時器名稱: 所耗費的時間”。
console.group(),console.groupEnd(),console.groupCollapsed()
console.group和console.groupEnd這兩個方法用於將顯示的資訊分組。它只在輸出大量資訊時有用,分在一組的資訊,可以用滑鼠摺疊/展開。
console.group('一級分組');
console.log('一級分組的內容');
console.group('二級分組');
console.log('二級分組的內容');
console.groupEnd(); // 一級分組結束
console.groupEnd(); // 二級分組結束
console.groupCollapsed()
與 console.group()
很類似,唯一的區別是該組的內容,在第一次顯示時是收起的(collapsed),而不是展開的。
console.trace(),console.clear()
console.trace()
顯示當前執行的程式碼在堆疊中的呼叫路徑。
console.trace()
// console.trace()
// (anonymous function)
// InjectedScript._evaluateOn
// InjectedScript._evaluateAndWrap
// InjectedScript.evaluate
debugger 語句
debugger語句主要用於除錯,作用是設定斷點。
如果有正在執行的除錯工具,程式執行到debugger語句時會自動停下。如果沒有除錯工具,debugger語句不會產生任何結果,JavaScript 引擎自動跳過這一句。
Chrome 瀏覽器中,當代碼執行到debugger語句時,就會暫停執行,自動開啟指令碼原始碼介面。
for(var i = 0; i < 5; i++){
console.log(i);
if (i === 2) debugger;
}
上面程式碼打印出0,1,2以後,就會暫停,自動開啟原始碼介面,等待進一步處理。
控制檯命令列 API
瀏覽器控制檯中,除了使用console物件,還可以使用一些控制檯自帶的命令列方法。
$_
$_
屬性返回上一個表示式的值。
2 + 2
// 4
$_
// 4
$0 - $4
控制檯儲存了最近5個在 Elements 面板選中的 DOM 元素,$0
代表倒數第一個(最近一個),$1
代表倒數第二個,以此類推直到$4。
$(selector)
$(selector)
返回第一個匹配的元素,等同於 document.querySelector()
。
注意,如果頁面指令碼對 $
有定義,則會覆蓋原始的定義。
比如,頁面裡面有 jQuery,控制檯執行 $(selector)
就會採用 jQuery 的實現,返回一個數組。
$$(selector)
$$(selector)
返回選中的 DOM 物件,等同於 document.querySelectorAll()
$x(path)
$x(path)
方法返回一個數組,包含匹配特定 XPath 表示式的所有 DOM 元素。
$x("//p[a]")
上面程式碼返回所有包含 a 元素的 p 元素。
inspect(object)
inspect(object)
開啟相關面板,並選中相應的元素,顯示它的細節。
DOM 元素在Elements面板中顯示,比如inspect(document)會在 Elements 面板顯示document元素。
JavaScript 物件在控制檯面板Profiles面板中顯示,比如inspect(window)。
keys(object),values(object)
keys(object)
方法返回一個數組,包含 object 的所有鍵名。
values(object)
方法返回一個數組,包含 object 的所有鍵值。
var o = {'p1': 'a', 'p2': 'b'};
keys(o)
// ["p1", "p2"]
values(o)
// ["a", "b"]
monitorEvents(object[, events]) ,unmonitorEvents(object[, events])
monitorEvents(object[, events])
方法監聽特定物件上發生的特定事件。
事件發生時,會返回一個Event物件,包含該事件的相關資訊。unmonitorEvents()
用於停止監聽。
monitorEvents(window, "resize");
monitorEvents(window, ["resize", "scroll"])
其他
命令列 API 還提供以下方法。
clear():清除控制檯的歷史。
copy(object):複製特定 DOM 元素到剪貼簿。
dir(object):顯示特定物件的所有屬性,是console.dir方法的別名。
dirxml(object):顯示特定物件的 XML 形式,是console.dirxml方法的別名。
原文地址
目錄導航
相關推薦
js 系統教程-15-js 語法之命令列-console.log,console.info,console.error,console.warn,debugger
目錄 console 物件與控制檯 console console物件是 JavaScript 的原生物件,它有點像 Unix 系統的標準輸出stdout和標準錯誤stderr,可以輸出各種資訊到控制檯,並且還提供了很多有用的輔助方法。
js 系統教程-17-js 語法之異常處理-error,自定義異常,try catch finally
目錄 錯誤處理機制 Error 例項物件 JavaScript 解析或執行時,一旦發生錯誤,引擎就會丟擲一個錯誤物件。JavaScript 原生提供Error建構函式,所有丟擲的錯誤都是這個建構函式的例項。 var err = new
2018年Javascript之Node.JS經典教程 Node.js從理論到實戰視訊
適用人群 前端開發,前端工作,前端學習 課程概述 智慧社:Javascript之Node.JS-經典教程:從理論到實戰! 基礎部分(第1-6節) 模組化(第7-8節) 框架應用(第9-24節) 資料庫應用
JS 入門教程-09-js 比較運算子,邏輯運算子,條件運算子(三目運算子)
目錄 目錄 比較運算子 邏輯運算子 條件運算子 語法 例子 目錄導航 比較運算子 主要用於條件判斷中,以測定變數或值是否相等,下一章會講解使用。 比較運算子和數學比較相似,理解起來也比較簡單。 假設: x = 5; //數字
Node.js躬行記(3)——命令列工具
一、自定義 建立一個空目錄,然後通過npm init命令初始化package.json檔案,並按提示輸入相關資訊或直接回車使用預設資訊,生成的內容如下所示。 { "name": "pwct", "version": "1.0.0", "description": "命令列工具測試", "
Python 基礎學習之命令列模式與互動模式的區別
命令列模式:即在win10搜尋框中,直接跳出來的頁面。在此模式下,可以通過執行程式碼"python .py"執行.py檔案。需要注意的是,在此模式下,如果要執行的程式碼檔案不在當前目錄,需要使用cd進行切換,假設我的py檔案在E:\python\demo,那麼需要執行的程式碼指令是“cd /
樹莓派Raspberry Pi實戰之命令列下實現USB儲存裝置自動掛載
簡單介紹實現命令列下USB儲存裝置自動掛載的方法,Linux gnome/kde視窗環境下有移動儲存的管理程式,可以實現自動掛載移動儲存裝置,但是在命令列下 通常需要用mount命令手動掛載USB儲存裝置。 通過給linux下的裝置管理服務udev新增規則配置檔案,可以實現命令列下U
Linux命令列使用之命令列輸入與輸出
與DOS類似,Shell 程式通常自動開啟3個標準文件:標準輸入文件(stdin)、標準輸出文件(stdout)和標準錯誤輸出文件(stderr)。其中 stdin 一般對應終端鍵盤,stdout 和 stderr 對應終端螢
Linux命令列使用之命令列基本用法
一、編輯修改命令列 命令列實際上是一個可編輯的文字緩衝區,在按回車鍵前,可以對輸入的內容進行編輯,如刪除字元、刪除整行、插入字元。這樣使用者在輸入命令的過程中出現錯誤,無需重新輸入整個命令,只需利用編輯操作,即可改正錯誤。在命令列輸入過
程式設計小知識之命令列解析
當前的軟體開發中,圖形介面已然大行其道,命令列似乎愈加式微,不過在一些場景下,命令列仍然必不可少~ 工具鏈的正常運作往往需要仰仗命令列,各個工具間的“溝通交流”基本都是通過命令列來完成,考慮一下 C 語言中 main 函式的標準定義: // C int main(i
dvwa之命令列注入
在只需要資料的地方惡意插入了命令,而系統沒有過濾時會造成命令列注入。dvwa提供了練習的地方 正常情況下這是用來測試網址能否連線 1.Security:Low 一旦我們插入惡意命令127.0.0.1&&net user就能發現命令被成功執行了
nginx教程第二篇:nginx命令列控制
在Linux中, 需要使用命令列來控制Nginx伺服器的啟動與停止、 過載配置檔案、 回滾日 志文件、 平滑升級等行為。 預設情況下, Nginx被安裝在目錄/usr/local/nginx/中, 其二進位制文 件路徑為/usr/local/nginc/sbin
MongoDB之——命令列操作
MongoDB shell 不僅僅是一個互動式的 shell,它也支援執行指定 javascript 檔案,也支援執行指定的命令片斷。有了這個特性,就可以將 MongoDB 與 linux shell 完美結合,完成大部分的日常管理和維護工作。1、通過 eval 引數執行指定
GoLang之命令列使用方法——flag package
2013-12-08 wcdj go語言通過使用標準庫裡的flag包來處理命令列引數。 Package flag implements command-line flag parsing. 幾點注意事項: 1,通過flag.String(), Bool(), Int
Ruby學習之命令列選項&環境變數
這個ruby檔案一般呢都是通過命令列來執行的,語法格式如下: ruby [ options ] [.] [ programfile ] [ arguments ... ] 直譯器可以通過下列選項被呼叫,來控制直譯器的環境和行為,來看下具體資料: 選項
CCF之命令列選項(java)
試題編號: 201403-3 試題名稱: 命令列選項 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問題描述 請你寫一個命令列分析程式,用以分析給定的命令列裡包含哪些選項。每個命令列由若干個字串組成,它們之間恰好由一個空格分隔。這些
Go語言學習筆記(十七)之命令列引數
24.1命令列引數 os.Args命令列引數的切片 1: func main() { 2: name := "Alice" 3: fmt.Println("Good Morning", name) 4: // 說明使用者傳入了引數 5: if len(os.Args) >
CentOS 7 下網路管理之命令列工具nmcli
在CentOS7中預設使用NetworkManager守護程序來監控和管理網路設定。nmcli是命令列的NetworkManager工具,會自動把配置寫到/etc/sysconfig/network-scripts/目錄下面。NetworkManager最初由 Redhat 公司開發,現在由 GNOME 管理
Zookeeper筆記之命令列操作
$ZOOKEEPER_HOME/bin下的zkCli.sh進入命令列介面,使用help可檢視支援的所有命令: 一、節點相關操作 create [-s] [-e] path data acl create用於建立新的節點: create [-s] [-e] path data acl
linux下統計文字行數的各種方法之命令列統計
檔案test1.txt有17行 方法一: awk ‘{print NR}’ test1.txt | tail -n1 管道前列印所有行號,管道後則列印最後一行 或者: awk ‘END{print NR}’ test1.txt 方法二: grep -n ‘’ te