成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

01.javascript之?dāng)?shù)據(jù)類型

Aceyclee / 2061人閱讀

摘要:新增了第七種類型的值數(shù)值字符串布爾值對(duì)象數(shù)據(jù)類型判斷有三種方法,可以判斷一個(gè)值的類型運(yùn)算符運(yùn)算符方法運(yùn)算符運(yùn)算符可以返回一個(gè)值的數(shù)據(jù)類型。運(yùn)算符運(yùn)算符返回一個(gè)布爾值,表示對(duì)象是否為某個(gè)構(gòu)造函數(shù)的實(shí)例。

1.數(shù)據(jù)類型

JavaScript一共有六種數(shù)據(jù)類型。(ES6新增了第七種Symbol類型的值)

數(shù)值(Number)

字符串(String)

布爾值(boolean)

undefined

null

對(duì)象(object)

2.數(shù)據(jù)類型判斷

JavaScript有三種方法,可以判斷一個(gè)值的類型

typeof運(yùn)算符

instanceof運(yùn)算符

Object.prototype.toString()方法

typeof運(yùn)算符

typeof運(yùn)算符可以返回一個(gè)值的數(shù)據(jù)類型。
數(shù)值、字符串、布爾值分別返回number、stringboolean。

typeof 123  //"number"
typeof "hello"  //"string"
typeof true  //"boolean"

函數(shù)返回function。

function f(){} 
typeof f  //"function"

undefined返回undefined。

typeof undefined  // "undefined"

對(duì)象返回object。

typeof {} // "object"
typeof [] // "object"

null返回object`。

typeof null // "object"
instanceof運(yùn)算符

instanceof運(yùn)算符返回一個(gè)布爾值,表示對(duì)象是否為某個(gè)構(gòu)造函數(shù)的實(shí)例。
由于instanceof檢查整個(gè)原型鏈,因此同一個(gè)實(shí)例對(duì)象,可能會(huì)對(duì)多個(gè)構(gòu)造函數(shù)都返回true
instanceof運(yùn)算符的一個(gè)用處,是判斷值的類型。

var x = []
var f={}
x instanceof Array //true
f instanceof Object //true

instanceof運(yùn)算符只能用于對(duì)象,不適用原始類型的值。

利用instanceof運(yùn)算符,還可以解決,調(diào)用構(gòu)造函數(shù)時(shí),忘了加new命令的問題。

function Fn (f1, f2) {
  if (this instanceof Fn) {
    this._foo = f1;
    this._bar = b2;
  } else {
    return new Fn(f1, f2);
  }
}
Object.prototype.toString()

toString方法的作用是返回一個(gè)對(duì)象的字符串形式,默認(rèn)情況下返回類型字符串。

var o1 = new Object();
o1.toString() //"[object Object]"

toString() 的應(yīng)用:判斷數(shù)據(jù)類型
Object.prototype.toString方法返回對(duì)象的類型字符串,因此可以用來(lái)判斷一個(gè)值的類型。

var obj = {};
obj.toString() // "[object Object]"

上面代碼調(diào)用空對(duì)象的toString方法,結(jié)果返回一個(gè)字符串object Object,其中第二個(gè)Object表示該值的構(gòu)造函數(shù)。這是一個(gè)十分有用的判斷數(shù)據(jù)類型的方法。

由于實(shí)例對(duì)象可能會(huì)自定義toString方法,覆蓋掉Object.prototype.toString方法,所以為了得到類型字符串,最好直接使用Object.prototype.toString方法。通過函數(shù)的call方法,可以在任意值上調(diào)用這個(gè)方法,判斷這個(gè)值的類型。

Object.prototype.toString.call(value)

上面代碼表示對(duì)value這個(gè)值調(diào)用Object.prototype.toString方法。
不同數(shù)據(jù)類型的Object.prototype.toString方法返回值如下。

數(shù)值:返回[object Number]。

Object.prototype.toString.call(12) //"[object Number]"

字符串:返回[object String]

Object.prototype.toString.call("ab")  //"[object String]"

布爾值:返回[object Boolean]。

Object.prototype.toString.call(true)  //"[object Boolean]"

undefined:返回[object Undefined]。

Object.prototype.toString.call(undefined)  //"[object Undefined]"

null:返回[object Null]。

Object.prototype.toString.call(null)  //"[object Null]"

數(shù)組:返回[object Array]。

Object.prototype.toString.call([])  //"[object Array]"

函數(shù):返回[object Function]。

var f = function (){}
Object.prototype.toString.call(f)  //"[object Function]"

利用這個(gè)特性,可以寫出一個(gè)比typeof運(yùn)算符更準(zhǔn)確的類型判斷函數(shù)。

var type = function (o){
  var s = Object.prototype.toString.call(o);
  return s.match(/[object (.*?)]/)[1].toLowerCase();
};

type({}); // "object"
type([]); // "array"
type(3); // "number"
type(null); // "null"
type(); // "undefined"
type(/abcd/); // "regex"
type(new Date()); // "date"

未完待續(xù)

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/96062.html

相關(guān)文章

  • 做一名精致的JavaScripter 01JavaScript簡(jiǎn)介

    摘要:精致從細(xì)節(jié)做起。標(biāo)準(zhǔn)會(huì)在每年的月發(fā)布一次,作為當(dāng)年的正式版本,便是年發(fā)布的正式版本。支持情況各大瀏覽器對(duì)的支持情況瀏覽器支持情況對(duì)的支持情況支持情況。在瀏覽器中基于實(shí)現(xiàn)的已經(jīng)成為的重要組成部分。 精致從細(xì)節(jié)做起。前端的工作也有一段時(shí)間了,大大小小的前端框架都有接觸過,越是深入學(xué)習(xí)越是感覺之前的學(xué)習(xí)過于粗糙,基礎(chǔ)不夠扎實(shí),于是準(zhǔn)備近期把JavaScript的基礎(chǔ)知識(shí)點(diǎn)梳理一下,查缺補(bǔ)漏,...

    張巨偉 評(píng)論0 收藏0
  • day1 - JavaScript Drum Kit 中文指南

    摘要:中文指南作者簡(jiǎn)介是推出的一個(gè)天挑戰(zhàn)。頁(yè)面基礎(chǔ)布局標(biāo)簽定義鍵盤文本說(shuō)到技術(shù)概念上的特殊樣式時(shí),就要提到標(biāo)簽。主要代碼主要屬性有以下幾個(gè)中有一個(gè)樣式為,在本案例中,就是,是以中的為參照物,就是。 Day01 - JavaScript Drum Kit 中文指南 作者:?liyuechun 簡(jiǎn)介:JavaScript30 是 Wes Bos 推出的一個(gè) 30 天挑戰(zhàn)。項(xiàng)目免費(fèi)提供了 30 ...

    HackerShell 評(píng)論0 收藏0
  • JavaScript Quiz系列題集

    摘要:系列題集系列題集系列題集系列題集系列題集系列題集系列題集隨手記幾個(gè)題目先,權(quán)當(dāng)草稿,如果有朋友幫忙分析下原因,不勝感激,哈哈以前的文章地址是這樣的格式,現(xiàn)在變了 從畢業(yè)開始切圖接觸前端,慢慢轉(zhuǎn)向javascript開發(fā)...但是,感覺自己的javascript難當(dāng)大任,基礎(chǔ)薄弱。網(wǎng)上面試題集很多,設(shè)計(jì)HTML/CSS/JS,但其中的問題,如果不是自己親歷,沒有被難住,是不會(huì)有太深印象的...

    xinhaip 評(píng)論0 收藏0
  • JavaScript 30 - 一起做一次了不起的挑戰(zhàn)

    摘要:加入我們,一起挑戰(zhàn)吧掃碼申請(qǐng)加入全棧部落 JavaScript 30 - 一起做一次了不起的挑戰(zhàn) (Node+Vue+微信公眾號(hào)開發(fā))企業(yè)級(jí)產(chǎn)品全棧開發(fā)速成周末班首期班(10.28號(hào)正式開班,歡迎搶座) 在Github上看到了wesbos的一個(gè)Javascript30天挑戰(zhàn)的repo,旨在使用純JS來(lái)進(jìn)行練習(xí),不允許使用任何其他的庫(kù)和框架,該挑戰(zhàn)共30天,我會(huì)在這里復(fù)現(xiàn)這30天遇到的挑...

    1treeS 評(píng)論0 收藏0
  • JavaScript 闖關(guān)記

    摘要:對(duì)象數(shù)組初始化表達(dá)式,闖關(guān)記之上文檔對(duì)象模型是針對(duì)和文檔的一個(gè)。闖關(guān)記之?dāng)?shù)組數(shù)組是值的有序集合。數(shù)組是動(dòng)態(tài)的,根闖關(guān)記之語(yǔ)法的語(yǔ)法大量借鑒了及其他類語(yǔ)言如和的語(yǔ)法。 《JavaScript 闖關(guān)記》之 DOM(下) Element 類型 除了 Document 類型之外,Element 類型就要算是 Web 編程中最常用的類型了。Element 類型用于表現(xiàn) XML 或 HTML 元素...

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

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

0條評(píng)論

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