国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

console對(duì)象

fantix / 1412人閱讀

摘要:方法返回一個(gè)對(duì)象,該對(duì)象的成員為登記了回調(diào)函數(shù)的各種事件比如或,每個(gè)事件對(duì)應(yīng)一個(gè)數(shù)組,數(shù)組的成員為該事件的回調(diào)函數(shù)。當(dāng)這種情況發(fā)生時(shí),會(huì)返回一個(gè)對(duì)象,包含該事件的相關(guān)信息。方法顯示特定對(duì)象的形式,是方法的別名。

console對(duì)象是JavaScript的原生對(duì)象,它有點(diǎn)像Unix系統(tǒng)的標(biāo)準(zhǔn)輸出stdout和標(biāo)準(zhǔn)錯(cuò)誤stderr,可以輸出各種信息用來(lái)調(diào)試程序,而且還提供了很多額外的方法,供開(kāi)發(fā)者調(diào)用。它的常見(jiàn)用途有兩個(gè)。

顯示網(wǎng)頁(yè)代碼運(yùn)行時(shí)的錯(cuò)誤信息。
提供了一個(gè)命令行接口,用來(lái)與網(wǎng)頁(yè)代碼互動(dòng)。

1.瀏覽器實(shí)現(xiàn)

console對(duì)象的瀏覽器實(shí)現(xiàn),包含在瀏覽器自帶的開(kāi)發(fā)工具之中。以Chrome瀏覽器的“開(kāi)發(fā)者工具”(Developer Tools)為例,首先使用下面三種方法的一種打開(kāi)它。

按F12或者Control + Shift + i(PC平臺(tái))/ Alt + Command + i(Mac平臺(tái))。

在菜單中選擇“工具/開(kāi)發(fā)者工具”。

在一個(gè)頁(yè)面元素上,打開(kāi)右鍵菜單,選擇其中的“Inspect Element”。

打開(kāi)“開(kāi)發(fā)者工具”以后,可以看到在頂端有八個(gè)面板卡可供選擇,分別是:

Elements:用來(lái)調(diào)試網(wǎng)頁(yè)的HTML源碼和CSS代碼。
Resources:查看網(wǎng)頁(yè)加載的各種資源文件(比如代碼文件、字體文件、css文件等),以及在硬盤(pán)上創(chuàng)建的各種內(nèi)容(比如本地緩存、Cookie、Local Storage等)。
Network:查看網(wǎng)頁(yè)的HTTP通信情況。
Sources:調(diào)試JavaScript代碼。
Timeline:查看各種網(wǎng)頁(yè)行為隨時(shí)間變化的情況。
Profiles:查看網(wǎng)頁(yè)的性能情況,比如CPU和內(nèi)存消耗。
Audits:提供網(wǎng)頁(yè)優(yōu)化的建議。
Console:用來(lái)運(yùn)行JavaScript命令。

這八個(gè)面板都有各自的用途。以下內(nèi)容只針對(duì)Console面板,又稱為控制臺(tái)。Console面板基本上就是一個(gè)命令行窗口,你可以在提示符下,鍵入各種命令。

2.console對(duì)象的方法

console對(duì)象提供的各種方法,用來(lái)與控制臺(tái)窗口互動(dòng)。

2.1 log(),info(),debug()

console.log方法用于在console窗口輸出信息。它可以接受多個(gè)參數(shù),將它們的結(jié)果連接起來(lái)輸出。

console.log("Hello World")
// Hello World

console.log("a","b","c")
// a b c

console.log方法會(huì)自動(dòng)在每次輸出的結(jié)尾,添加換行符。

console.log(1);
console.log(2);
console.log(3);
// 1
// 2
// 3

如果第一個(gè)參數(shù)是格式字符串(使用了格式占位符),console.log方法將依次用后面的參數(shù)替換占位符,然后再進(jìn)行輸出。

console.log(" %s + %s = %s", 1, 1, 2)
//  1 + 1 = 2

上面代碼中,console.log方法的第一個(gè)參數(shù)有三個(gè)占位符(%s),第二、三、四個(gè)參數(shù)會(huì)在顯示時(shí),依次替換掉這個(gè)三個(gè)占位符。console.log方法支持的占位符格式有以下一些,不同格式的數(shù)據(jù)必須使用對(duì)應(yīng)格式的占位符。

%s 字符串
%d 整數(shù)
%i 整數(shù)
%f 浮點(diǎn)數(shù)
%o 對(duì)象的鏈接
%c CSS格式字符串

var number = 11 * 9;
var color = "red";
console.log("%d %s balloons", number, color);
// 99 red balloons

上面代碼中,第二個(gè)參數(shù)是數(shù)值,對(duì)應(yīng)的占位符是%d,第三個(gè)參數(shù)是字符串,對(duì)應(yīng)的占位符是%s。

使用%c占位符時(shí),對(duì)應(yīng)的參數(shù)必須是CSS語(yǔ)句,用來(lái)對(duì)輸出內(nèi)容進(jìn)行CSS渲染。

console.log("%cThis text is styled!",
  "color: red; background: yellow; font-size: 24px;"
)

上面代碼運(yùn)行后,輸出的內(nèi)容將顯示為黃底紅字。

console.log方法的兩種參數(shù)格式,可以結(jié)合在一起使用。

console.log(" %s + %s ", 1, 1, "= 2")
// 1 + 1  = 2

如果參數(shù)是一個(gè)對(duì)象,console.log會(huì)顯示該對(duì)象的值。

console.log({foo: "bar"})
// Object {foo: "bar"}

console.log(Date)
// function Date() { [native code] }

上面代碼輸出Date對(duì)象的值,結(jié)果為一個(gè)構(gòu)造函數(shù)。

console.info()console.debug()都是console.log方法的別名,用法完全一樣。只不過(guò)console.info方法會(huì)在輸出信息的前面,加上一個(gè)藍(lán)色圖標(biāo)。

console對(duì)象的所有方法,都可以被覆蓋。因此,可以按照自己的需要,定義console.log方法。

["log", "info", "warn", "error"].forEach(function(method) {
  console[method] = console[method].bind(
    console,
    new Date().toISOString()
  );
});

console.log("瞧,我在前面添加了現(xiàn)在的時(shí)間!");
// 2014-05-18T09:00.000Z 出錯(cuò)了!

上面代碼表示,使用自定義的console.log方法,可以在顯示結(jié)果添加當(dāng)前時(shí)間。

2.2 warn(),error()

warn方法和error方法也是輸出信息,它們與log方法的不同之處在于,warn方法輸出信息時(shí),在最前面加一個(gè)黃色三角,表示警告;error方法輸出信息時(shí),在最前面加一個(gè)紅色的叉,表示出錯(cuò),同時(shí)會(huì)顯示錯(cuò)誤發(fā)生的堆棧。其他用法都一樣。

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)

本質(zhì)上,log方法是寫(xiě)入標(biāo)準(zhǔn)輸出(stdout),warn方法和error方法是寫(xiě)入標(biāo)準(zhǔn)錯(cuò)誤(stderr)。

2.3 table()

對(duì)于某些復(fù)合類型的數(shù)據(jù),console.table方法可以將其轉(zhuǎn)為表格顯示。

var languages = [
  { name: "JavaScript", fileExtension: ".js" },
  { name: "TypeScript", fileExtension: ".ts" },
  { name: "CoffeeScript", fileExtension: ".coffee" }
];

console.table(languages);

上面代碼的language,轉(zhuǎn)為表格顯示如下。

復(fù)合型數(shù)據(jù)轉(zhuǎn)為表格顯示的條件是,必須擁有主鍵。對(duì)于上面的數(shù)組來(lái)說(shuō),主鍵就是數(shù)字鍵。對(duì)于對(duì)象來(lái)說(shuō),主鍵就是它的最外層鍵。

var languages = {
  csharp: { name: "C#", paradigm: "object-oriented" },
  fsharp: { name: "F#", paradigm: "functional" }
};

console.table(languages);

上面代碼的language,轉(zhuǎn)為表格顯示如下。

2.4 count()

count方法用于計(jì)數(shù),輸出它被調(diào)用了多少次。

function greet(user) {
  console.count();
  return "hi " + user;
}

greet("bob")
//  : 1
// "hi bob"

greet("alice")
//  : 2
// "hi alice"

greet("bob")
//  : 3
// "hi bob"

上面代碼每次調(diào)用greet函數(shù),內(nèi)部的console.count方法就輸出執(zhí)行次數(shù)。

該方法可以接受一個(gè)字符串作為參數(shù),作為標(biāo)簽,對(duì)執(zhí)行次數(shù)進(jìn)行分類。

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"

上面代碼根據(jù)參數(shù)的不同,顯示bob執(zhí)行了兩次,alice執(zhí)行了一次。

2.5 dir()

dir方法用來(lái)對(duì)一個(gè)對(duì)象進(jìn)行檢查(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方法的輸出結(jié)果,比log方法更易讀,信息也更豐富。

該方法對(duì)于輸出DOM對(duì)象非常有用,因?yàn)闀?huì)顯示DOM對(duì)象的所有屬性。

console.dir(document.body)
2.6 assert()

assert方法接受兩個(gè)參數(shù),第一個(gè)參數(shù)是表達(dá)式,第二個(gè)參數(shù)是字符串。只有當(dāng)?shù)谝粋€(gè)參數(shù)為false,才會(huì)輸出第二個(gè)參數(shù),否則不會(huì)有任何結(jié)果。

// 實(shí)例
console.assert(true === false, "判斷條件不成立")
// Assertion failed: 判斷條件不成立

下面是另一個(gè)例子,判斷子節(jié)點(diǎn)的個(gè)數(shù)是否大于等于500。

console.assert(list.childNodes.length < 500, "節(jié)點(diǎn)個(gè)數(shù)大于等于500")
2.7 time(),timeEnd()

這兩個(gè)方法用于計(jì)時(shí),可以算出一個(gè)操作所花費(fèi)的準(zhǔn)確時(shí)間。

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方法表示計(jì)時(shí)開(kāi)始,timeEnd方法表示計(jì)時(shí)結(jié)束。它們的參數(shù)是計(jì)時(shí)器的名稱。調(diào)用timeEnd方法之后,console窗口會(huì)顯示“計(jì)時(shí)器名稱: 所耗費(fèi)的時(shí)間”。

2.8 profile(),profileEnd()

console.profile方法用來(lái)新建一個(gè)性能測(cè)試器(profile),它的參數(shù)是性能測(cè)試器的名字。

console.profile("p")
// Profile "p" started.

console.profileEnd方法用來(lái)結(jié)束正在運(yùn)行的性能測(cè)試器。

console.profileEnd()
// Profile "p" finished.

打開(kāi)瀏覽器的開(kāi)發(fā)者工具,在profile面板中,可以看到這個(gè)性能調(diào)試器的運(yùn)行結(jié)果。

2.9 group(),groupend(),groupCollapsed()

console.group和console.groupend這兩個(gè)方法用于將顯示的信息分組。它只在輸出大量信息時(shí)有用,分在一組的信息,可以用鼠標(biāo)折疊/展開(kāi)。

console.group("Group One");
console.group("Group Two");

// some code

console.groupEnd(); // Group Two 結(jié)束
console.groupEnd(); // Group One 結(jié)束

console.groupCollapsed方法與console.group方法很類似,唯一的區(qū)別是該組的內(nèi)容,在第一次顯示時(shí)是收起的(collapsed),而不是展開(kāi)的。

console.groupCollapsed("Fetching Data");

console.log("Request Sent");
console.error("Error: Server not responding (500)");

console.groupEnd();

上面代碼只顯示一行”Fetching Data“,點(diǎn)擊后才會(huì)展開(kāi),顯示其中包含的兩行。

2.10 trace(),clear()

console.trace方法顯示當(dāng)前執(zhí)行的代碼在堆棧中的調(diào)用路徑。

console.trace()
// console.trace()
//   (anonymous function)
//   InjectedScript._evaluateOn
//   InjectedScript._evaluateAndWrap
//   InjectedScript.evaluate

console.clear方法用于清除當(dāng)前控制臺(tái)的所有輸出,將光標(biāo)回置到第一行。

3. 命令行API

在控制臺(tái)中,除了使用console對(duì)象,還可以使用一些控制臺(tái)自帶的命令行方法。

(1)$_

$_屬性返回上一個(gè)表達(dá)式的值。

2+2
// 4
$_
// 4
(2)$0- $4

控制臺(tái)保存了最近5個(gè)在Elements面板選中的DOM元素,$0代表倒數(shù)第一個(gè),$1代表倒數(shù)第二個(gè),以此類推直到$4。

(3)$(selector)

$(selector)返回一個(gè)數(shù)組,包括特定的CSS選擇器匹配的所有DOM元素。該方法實(shí)際上是document.querySelectorAll方法的別名。

var images = $("img");
for (each in images) {
    console.log(images[each].src);
}

上面代碼打印出網(wǎng)頁(yè)中所有img元素的src屬性。

(4)$$(selector)

$$(selector)返回一個(gè)選中的DOM對(duì)象,等同于document.querySelectorAll。

(5)$x(path)

$x(path)方法返回一個(gè)數(shù)組,包含匹配特定XPath表達(dá)式的所有DOM元素。

$x("http://p[a]")

上面代碼返回所有包含a元素的p元素。

(6)inspect(object)

inspect(object)方法打開(kāi)相關(guān)面板,并選中相應(yīng)的元素:DOM元素在Elements面板中顯示,JavaScript對(duì)象在Profiles中顯示。

(7)getEventListeners(object)

getEventListeners(object)方法返回一個(gè)對(duì)象,該對(duì)象的成員為登記了回調(diào)函數(shù)的各種事件(比如click或keydown),每個(gè)事件對(duì)應(yīng)一個(gè)數(shù)組,數(shù)組的成員為該事件的回調(diào)函數(shù)。

(8)keys(object),values(object)

keys(object)方法返回一個(gè)數(shù)組,包含特定對(duì)象的所有鍵名。

values(object)方法返回一個(gè)數(shù)組,包含特定對(duì)象的所有鍵值。

var o = {"p1":"a", "p2":"b"};

keys(o)
// ["p1", "p2"]
values(o)
// ["a", "b"]
(9)monitorEvents(object[, events]) ,unmonitorEvents(object[, events])

monitorEvents(object[, events])方法監(jiān)聽(tīng)特定對(duì)象上發(fā)生的特定事件。當(dāng)這種情況發(fā)生時(shí),會(huì)返回一個(gè)Event對(duì)象,包含該事件的相關(guān)信息。unmonitorEvents方法用于停止監(jiān)聽(tīng)。

monitorEvents(window, "resize");

monitorEvents(window, ["resize", "scroll"])

上面代碼分別表示單個(gè)事件和多個(gè)事件的監(jiān)聽(tīng)方法。

monitorEvents($0, "mouse");
unmonitorEvents($0, "mousemove");

上面代碼表示如何停止監(jiān)聽(tīng)。

monitorEvents允許監(jiān)聽(tīng)同一大類的事件。所有事件可以分成四個(gè)大類。

mouse:”mousedown”, “mouseup”, “click”, “dblclick”, “mousemove”, “mouseover”, “mouseout”, “mousewheel”
key:”keydown”, “keyup”, “keypress”, “textInput”
touch:”touchstart”, “touchmove”, “touchend”, “touchcancel”
control:”resize”, “scroll”, “zoom”, “focus”, “blur”, “select”, “change”, “submit”, “reset”

monitorEvents($("#msg"), "key");

上面代碼表示監(jiān)聽(tīng)所有key大類的事件。

(10)profile([name]),profileEnd()

profile方法用于啟動(dòng)一個(gè)特定名稱的CPU性能測(cè)試,profileEnd方法用于結(jié)束該性能測(cè)試。

profile("My profile")

profileEnd("My profile")
(11)其他方法

命令行API還提供以下方法。

clear()方法清除控制臺(tái)的歷史。
copy(object)方法復(fù)制特定DOM元素到剪貼板。
dir(object)方法顯示特定對(duì)象的所有屬性,是console.dir方法的別名。
dirxml(object)方法顯示特定對(duì)象的XML形式,是console.dirxml方法的別名。

4. debugger語(yǔ)句

debugger語(yǔ)句必須與除錯(cuò)工具配合使用,如果沒(méi)有除錯(cuò)工具,debugger語(yǔ)句不會(huì)產(chǎn)生任何結(jié)果。

在chrome瀏覽器中,當(dāng)代碼運(yùn)行到debugger指定的行時(shí),就會(huì)暫停運(yùn)行,自動(dòng)打開(kāi)console界面。它的作用類似于設(shè)置斷點(diǎn)。

for(var i = 0;i<5;i++){
    console.log(i);
    if (i===2) debugger;
}

上面代碼打印出0,1,2以后,就會(huì)暫停,自動(dòng)打開(kāi)console窗口,等待進(jìn)一步處理。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/78808.html

相關(guān)文章

  • JavaScript 之 核心語(yǔ)法 [ 對(duì)象 ]

    摘要:對(duì)象描述是一個(gè)擁有屬性和方法的集合體屬性表示該對(duì)象的外貌方法表示該對(duì)象的行為對(duì)象的分類內(nèi)置對(duì)象表示中的預(yù)定義對(duì)象宿主對(duì)象表示匹配瀏覽器的對(duì)象比如自定義對(duì)象表示由開(kāi)發(fā)人員定義的對(duì)象定義對(duì)象字面量方式語(yǔ)法對(duì)象名屬性名屬性值方法名方法體張小凡御雷 對(duì)象 描述 是一個(gè)擁有屬性和方法的集合體 屬性 表示該對(duì)象的外貌 方法 表示該對(duì)象的行為 對(duì)象的分類 內(nèi)置對(duì)象 表示JavaScr...

    fxp 評(píng)論0 收藏0
  • JS創(chuàng)建對(duì)象模式及其對(duì)象原型鏈探究(四):原型模式

    摘要:原型模式定義構(gòu)造函數(shù),在構(gòu)造函數(shù)的原型對(duì)象中定義對(duì)象的屬性和方法,并通過(guò)構(gòu)造函數(shù)創(chuàng)建對(duì)象。,屬性存在于實(shí)例對(duì)象中,屬性不存在于實(shí)例對(duì)象中分割線操作符會(huì)在通過(guò)對(duì)象能夠訪問(wèn)給定屬性時(shí)返回,無(wú)論該屬性是存在于實(shí)例中還是原型中。 原型模式 定義構(gòu)造函數(shù),在構(gòu)造函數(shù)的原型對(duì)象中定義對(duì)象的屬性和方法,并通過(guò)構(gòu)造函數(shù)創(chuàng)建對(duì)象。 1.創(chuàng)建對(duì)象 function Person(){}; Person....

    ruicbAndroid 評(píng)論0 收藏0
  • JS創(chuàng)建對(duì)象模式及其對(duì)象原型鏈探究(一):Object模式

    摘要:對(duì)象是由構(gòu)造函數(shù)創(chuàng)建而成的,所以它的指向原型鏈圖對(duì)象的原型鏈圖對(duì)象屬性引用的匿名函數(shù)的原型鏈圖 Object模式 創(chuàng)建一個(gè)Object實(shí)例,再為其添加屬性和方法。 這是創(chuàng)建自定義對(duì)象最簡(jiǎn)單的方式。 1.創(chuàng)建對(duì)象 // 創(chuàng)建person對(duì)象 var person = new Object(); person.name = Mike; person.age = 20; person.jo...

    李義 評(píng)論0 收藏0
  • JS創(chuàng)建對(duì)象模式及其對(duì)象原型鏈探究(三):構(gòu)造函數(shù)模式

    摘要:創(chuàng)建對(duì)象與工廠模式的區(qū)別沒(méi)有顯示地創(chuàng)建對(duì)象直接將方法和屬性付給了對(duì)象沒(méi)有語(yǔ)句構(gòu)造函數(shù)應(yīng)該始終以一個(gè)大寫(xiě)字母開(kāi)頭。創(chuàng)建構(gòu)造函數(shù)的實(shí)例,必須使用操作符。 構(gòu)造函數(shù)模式 ECMAScript中的構(gòu)造函數(shù)可用來(lái)創(chuàng)建特定類型的對(duì)象,像Object和Array這樣的原生構(gòu)造函數(shù)。也可以創(chuàng)建自定義的構(gòu)造函數(shù),從而定義自定義對(duì)象類型的屬性和方法。 1.創(chuàng)建對(duì)象 function Person(name...

    Martin91 評(píng)論0 收藏0
  • JavaScript學(xué)習(xí)第六天筆記(對(duì)象

    摘要:宿主對(duì)象指的是運(yùn)行環(huán)境提供的對(duì)象。不過(guò)類型是中所有類型的父級(jí)所有類型的對(duì)象都可以使用的屬性和方法可以通過(guò)的構(gòu)造函數(shù)來(lái)創(chuàng)建自定義對(duì)象。當(dāng)以非構(gòu)造函數(shù)形式被調(diào)用時(shí),等同于。對(duì)象初始化器方式使用對(duì)象初始化器也被稱作通過(guò)字面值創(chuàng)建對(duì)象。 對(duì)象 概述 在JavaScript中的對(duì)象,和其他編程語(yǔ)言中的對(duì)象一樣,可以比照現(xiàn)實(shí)生活中的對(duì)象來(lái)理解它。 對(duì)象的分類 1.內(nèi)置對(duì)象/原生對(duì)象就是JavaSc...

    Crazy_Coder 評(píng)論0 收藏0
  • JavaScript...原型與繼承中的原型鏈...

    摘要:原型原型是什么在中函數(shù)是一個(gè)包含屬性和方法的類型的對(duì)象而原型就是類型對(duì)象的一個(gè)屬性在函數(shù)定義時(shí)就包含了屬性它的初始值是一個(gè)空對(duì)象在中并沒(méi)有定義函數(shù)的原型類型所以原型可以是任何類型原型是用于保存對(duì)象的共享屬性和方法的原型的屬性和方法并不會(huì)影響 原型 原型是什么 在JavaScript中 函數(shù)是一個(gè)包含屬性和方法的Function類型的對(duì)象 而原型(Prototype)就是Function...

    MiracleWong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

fantix

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<