摘要:有種內(nèi)置類型,分別是除對(duì)象之外,其他統(tǒng)稱為基本類型。另一個(gè)需要注意的是數(shù)組確切地說(shuō),數(shù)組也是的一個(gè)子類型我們可以通過(guò)下面的方法檢查變量是不是數(shù)組處理未聲明的變量時(shí),會(huì)返回這是因?yàn)橛幸粋€(gè)特殊的安全防范機(jī)制。
js有7種內(nèi)置類型,分別是
undefined null boolean string number symbol object
除對(duì)象之 Object 外,其他統(tǒng)稱為“基本類型”。
符號(hào) symbol 是ES6 中新增
除 null 以外的六種類型均有同名的字符串值與之對(duì)應(yīng)
typeof undefined === "undefined"; // true typeof true === "boolean"; // true typeof 1 === "number"; // true typeof "1" === "string"; // true typeof {} === "object"; // true typeof Symbol() === "symbol"; // true typeof null === "object"; // true
typeof 返回值為 object 的值中,只有 null 為假值,所以我們可以用下面方法檢查變量是否為 null
var a = null; (!a && typeof a === "object"); // true
再來(lái)看下面一段代碼
typeof function a(){} === "function"; // true
雖然 typeof 會(huì)為函數(shù)返回多帶帶的字符串值 function,但是規(guī)范約定它實(shí)際上是 object 的一個(gè)“子類型”。具體來(lái)說(shuō),函數(shù)是“可調(diào)用對(duì)象”,它有一個(gè)內(nèi)部屬性 [[Call]],該屬性使其可以被調(diào)用。
另一個(gè)需要注意的是數(shù)組
typeof [] === "object"; // true
確切地說(shuō),數(shù)組也是 object 的一個(gè)“子類型”
我們可以通過(guò)下面的方法檢查變量是不是數(shù)組
var a = [] Array.isArray(a) // true Object.prototype.toString.call(a) === "[object Array]" // true
typeof 處理未聲明的變量時(shí),會(huì)返回 undefined, 這是因?yàn)?typeof 有一個(gè)特殊的安全防范機(jī)制。這樣我們可以安全的檢查變量是否聲明了
if (!nodeclar) { // 如果nodeclar為聲明,會(huì)報(bào)錯(cuò) // ... } if (typeof nodeclar !== undefined) { // 不報(bào)錯(cuò) // ... }
需要注意的是
在對(duì)變量執(zhí)行 typeof 操作時(shí),得到的結(jié)果并不是該變量的類型,而是該變量持有的值的類型,因?yàn)?JavaScript 中的變量沒(méi)有類型。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/90096.html
摘要:的分句會(huì)創(chuàng)建一個(gè)塊作用域,其聲明的變量?jī)H在中有效。而閉包的神奇作用是阻止此事發(fā)生。依然持有對(duì)該作用域的引用,而這個(gè)引用就叫做閉包。當(dāng)然,無(wú)論使用何種方式對(duì)函數(shù)類型的值進(jìn)行傳遞,當(dāng)函數(shù)在別處被調(diào)用時(shí)都可以觀察到閉包。 date: 16.12.8 Thursday 第一章 作用域是什么 LHS:賦值操作的目標(biāo)是誰(shuí)? 比如: a = 2; RHS:誰(shuí)是賦值操作的源頭? 比如: conso...
摘要:函數(shù)類型檢測(cè)是的子類型,其屬性為參數(shù)個(gè)數(shù),但是判斷結(jié)果有內(nèi)建函數(shù)原生函數(shù)常見(jiàn)的有,可能被當(dāng)作構(gòu)造函數(shù)來(lái)使用,創(chuàng)建出來(lái)的是封裝了的基本類型值。構(gòu)造函數(shù)可以不帶關(guān)鍵字。建議使用和來(lái)進(jìn)行顯示強(qiáng)制轉(zhuǎn)換。 前言 此篇小結(jié)來(lái)源與《你不知道的JavaScript》和《JavaScript高級(jí)程序設(shè)計(jì)》的結(jié)合??或許是的,龜速總結(jié)中... 七種內(nèi)置類型 null undefined boolean ...
摘要:本書屬于基礎(chǔ)類書籍,會(huì)有比較多的基礎(chǔ)知識(shí),所以這里僅記錄平常不怎么容易注意到的知識(shí)點(diǎn),不會(huì)全記,供大家和自己翻閱不錯(cuò),下冊(cè)的知識(shí)點(diǎn)就這么少,非常不推介看下冊(cè)上中下三本的讀書筆記你不知道的上讀書筆記你不知道的中讀書筆記你不知道的下讀書筆記第三 本書屬于基礎(chǔ)類書籍,會(huì)有比較多的基礎(chǔ)知識(shí),所以這里僅記錄平常不怎么容易注意到的知識(shí)點(diǎn),不會(huì)全記,供大家和自己翻閱; 不錯(cuò),下冊(cè)的知識(shí)點(diǎn)就這么少,非...
摘要:這時(shí)候控制臺(tái)看到的是對(duì)象的快照,然而點(diǎn)開(kāi)看詳情的話是這段代碼在運(yùn)行的時(shí)候,瀏覽器可能會(huì)認(rèn)為需要把控制臺(tái)延遲到后臺(tái),這種情況下,等到瀏覽器控制臺(tái)輸出對(duì)象內(nèi)容時(shí),可能已經(jīng)運(yùn)行,因此會(huì)在點(diǎn)開(kāi)的時(shí)候顯示,這是的異步化造成的。 本書屬于基礎(chǔ)類書籍,會(huì)有比較多的基礎(chǔ)知識(shí),所以這里僅記錄平常不怎么容易注意到的知識(shí)點(diǎn),不會(huì)全記,供大家和自己翻閱; 上中下三本的讀書筆記: 《你不知道的JavaScri...
摘要:但是如果非全局的變量如果被遮蔽了,無(wú)論如何都無(wú)法被訪問(wèn)到。但是如果引擎在代碼中找到,就會(huì)完全不做任何優(yōu)化。結(jié)構(gòu)的分句中具有塊級(jí)作用域。第四章提升編譯器函數(shù)聲明會(huì)被提升,而函數(shù)表達(dá)式不會(huì)被提升。 本書屬于基礎(chǔ)類書籍,會(huì)有比較多的基礎(chǔ)知識(shí),所以這里僅記錄平常不怎么容易注意到的知識(shí)點(diǎn),不會(huì)全記,供大家和自己翻閱; 上中下三本的讀書筆記: 《你不知道的JavaScript》 (上) 讀書筆記...
閱讀 4098·2021-10-08 10:12
閱讀 4982·2021-09-02 15:40
閱讀 1069·2021-09-01 11:09
閱讀 1683·2021-08-31 09:38
閱讀 2599·2019-08-30 13:54
閱讀 2307·2019-08-30 12:54
閱讀 1290·2019-08-30 11:18
閱讀 1471·2019-08-29 14:06