consol 對象api
console
對象是 JavaScript 的原生對象數組
它有點像 Unix 系統的標準輸出stdout
和標準錯誤stderr
,瀏覽器
能夠輸出各類信息到控制檯,而且還提供了不少有用的輔助方法
緩存
console.log
()
console.log('Hello World'); // Hello World console.log('a', 'b', 'c'); // a b c
console.log
方法將依次用後面的參數替換佔位符,而後再進行輸出console.log(' %s + %s = %s', 1, 1, 2); // 1 + 1 = 2
console.log方法支持如下佔位符,不一樣類型的數據必須使用對應的佔位符。函數
%c
佔位符時,對應的參數必須是 CSS 代碼,用來對輸出內容進行 CSS 渲染
console.log( '%cThis text is styled!', 'color: red; background: yellow; font-size: 24px;' ); // 輸出的內容將顯示爲黃底紅字
console.log
方法的兩種參數格式,能夠結合在一塊兒使用console.log(' %s + %s ', 1, 1, '= 2'); // 1 + 1 = 2
console.info()
console.log
方法的別名,用法徹底同樣。console.info
方法會在輸出信息的前面,加上一個藍色圖標
console.debug()
console.log
方法相似,會在控制檯輸出調試信息。console.debug
輸出的信息不會顯示,只有在打開顯示級別在verbose
的狀況下,纔會顯示。console
對象的全部方法,均可以被覆蓋。所以,能夠按照本身的須要,定義console.log
方法
// 使用自定義的console.log方法,能夠在顯示結果添加當前時間 ['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
方法是寫入標準輸出(stdout
),warn
方法和error
方法是寫入標準錯誤(stderr
)
console.table()
方法 能夠數組或者對象將其轉爲表格顯示
var languages = [ { name: "JavaScript", fileExtension: ".js" }, { name: "TypeScript", fileExtension: ".ts" }, { name: "CoffeeScript", fileExtension: ".coffee" } ]; console.table(languages);
greet
函數,內部的console.count
方法就輸出執行次數
function greet(user) { console.count(); return 'hi ' + user; } greet('bob') // : 1 // "hi bob" greet('alice') // : 2 // "hi alice" greet('bob') // : 3 // "hi bob"
function greet(user) { console.count(user); return "hi " + user; } greet('bob') // bob: 1 // "hi bob" greet('alice') // alice: 1 // "hi alice" greet('bob') // bob: 2 // "hi bob"
console.dir(obj, {colors: true});
console.dirxml()
方法主要用於以目錄樹的形式,顯示 DOM 節點
console.assert()
console.assert(false, '判斷條件不成立') // Assertion failed: 判斷條件不成立 // 至關於 try { if (!false) { throw new Error('判斷條件不成立'); } } catch(e) { console.error(e); }
console.assert(list.childNodes.length < 500, '節點個數大於等於500');
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
console.group()
和 console.groupEnd()
console.groupEnd()
console.trace() // console.trace() // (anonymous function) // InjectedScript._evaluateOn // InjectedScript._evaluateAndWrap // InjectedScript.evaluate
console.clear
方法將不起做用
$_
屬性返回上一個表達式的值$0
- $4 制臺保存了最近5個在 Elements 面板選中的 DOM 元素,$0
表明倒數第一個(最近一個),$1
表明倒數第二個,以此類推直到$4
$(selector)
返回第一個匹配的元素,等同於document.querySelector()
。注意,若是頁面腳本對$
有定義,則會覆蓋原始的定義。好比,頁面裏面有 jQuery,控制檯執行$(selector)
就會採用 jQuery 的實現,返回一個數組$$(selector)
返回選中的 DOM 對象,等同於document.querySelectorAll
inspect(object)
方法打開相關面板,並選中相應的元素,顯示它的細節
inspect(document)
會在 Elements 面板顯示document
元素getEventListeners(object)
方法 返回一個對象,該對象的成員爲object
登記了回調函數的各類事件(好比click
或keydown
),每一個事件對應一個數組,數組的成員爲該事件的回調函數keys(object)
方法 返回一個數組,包含object
的全部鍵名values(object)
方法 返回一個數組,包含object
的全部鍵值
var o = {'p1': 'a', 'p2': 'b'}; keys(o) // ["p1", "p2"] values(o) // ["a", "b"]
monitorEvents(object[, events])
方法 監聽特定對象上發生的特定事件。事件發生時,會返回一個Event
對象,包含該事件的相關信息
monitorEvents(window, "resize"); // 單個事件的監聽方法
monitorEvents(window, ["resize", "scroll"]); // 多個事件的監聽方法
unmonitorEvents
方法用於中止監聽
monitorEvents($0, 'mouse');
unmonitorEvents($0, 'mousemove');
monitorEvents
容許監聽同一大類的事件。全部事件能夠分紅四個大類
monitorEvents($("#msg"), "key"); // 上面代碼表示監聽 全部 key 大類 的事件
debugger()
debugger
語句時會自動停下debugger
語句不會產生任何結果,JavaScript 引擎自動跳過這一句debugger
語句時,就會暫停運行,自動打開腳本源碼界面
for(var i = 0; i < 5; i++){ console.log(i); if (i === 2){ debugger; // 打印出0,1,2之後,就會暫停,自動打開源碼界面,等待進一步處理 } }