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

資訊專欄INFORMATION COLUMN

JavaScript檢測數(shù)據(jù)類型

wemall / 1530人閱讀

摘要:操作符是確定一個變量是,還是的最佳工具引用來源高級程序設(shè)計(jì)圖靈程序設(shè)計(jì)叢書看下面例子,都檢測出來了,如果檢測的是一個對象或者就會會返回,如下看吧,一點(diǎn)區(qū)分度也沒有。

1.typeof
typeof 操作符是確定一個變量是StringNumberBoolean,還是undefined的最佳工具

引用來源:《JavaScript高級程序設(shè)計(jì)》圖靈程序設(shè)計(jì)叢書

看下面例子:

var s = "hello";
var num = 10;
var bool = true;
var und;

typeof s;    // "string"
typeof num;  // "number"
typeof bool; // "boolean"
typeof und;  // "undefined"
ok,都檢測出來了,but, 如果檢測的是一個對象或者null,就會會返回Object,如下:
var n = null;
var o = new Object();

typeof n; // "object"
typeof o; // "object"

看吧,一點(diǎn)區(qū)分度也沒有。

所以: 在檢測基本數(shù)據(jù)類型時,typeof很好用,

在檢測引用類型的值時,typeof的作用不大

2.instanceof
var o = new Object();
var arr = [];
var reg = /^abc$/

o instanceof Object   //true
arr instanceof Array  //true
reg instanceof RegExp //true

注意:使用instanceof操作符檢測基本數(shù)據(jù)類型的值時,都會返回false,盡管下面的例子看起來很矛盾

null instanceof Object // false
typeof null // "object"
3.Object.prototype.toString()

ECMA-262 規(guī)范中,toString方法是這樣定義的:

如果參數(shù)是未定義的值,則返回"[object Undefined]".

如果參數(shù)為null,則返回"[object Null]".

如果適用ToObject函數(shù)傳遞參數(shù),則返回對象.

如果參數(shù)為類,則返回包含對象的類.(Let class be the value of the [[Class]] internal property of O.)

返回一個由"[對象", 類, 和"]"拼接而成的字符串.

它可以返回引用類型更精準(zhǔn)的類型檢測
var o = new Object();
var arr = [];
var reg = /^abc$/

Object.prototype.toString.call(o) // "[object Object]"
Object.prototype.toString.call(arr) // "[object Array]"
Object.prototype.toString.call(reg) // "[object RegExp]"
通過函數(shù)封裝處理一下:
var type = function (o) {
    var s = Object.prototype.toString.call(o);
    return s.match(/[object (.*?)]/)[1];
}
type(o) // "Object"
type(reg) // "RegExp"
type(arr) // "Array"

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/103712.html

相關(guān)文章

  • JavaScript中的數(shù)據(jù)類型及其檢測

    摘要:中的數(shù)據(jù)類型及其檢測數(shù)據(jù)類型基本類型引用類型類型檢測只能檢測基本數(shù)據(jù)類型,對于還有一個用于檢測某個對象的原型鏈?zhǔn)欠癜硞€構(gòu)造函數(shù)的屬性適用于檢測對象,它是基于原型鏈運(yùn)作的屬性返回一個指向創(chuàng)建了該對象原型的函數(shù)引用,該屬性的值是哪個函數(shù)本身 JavaScript中的數(shù)據(jù)類型及其檢測 1. 數(shù)據(jù)類型 1.1 基本類型 Number String Boolean Null Undefin...

    Bryan 評論0 收藏0
  • javascript基礎(chǔ)篇:JS中的數(shù)據(jù)類型檢測專題

    摘要:用來檢測數(shù)據(jù)類型的運(yùn)算符語法雖然是基本數(shù)據(jù)類型值,但是它屬于空對象指針,檢測的結(jié)果是對象使用有自己的局限性,不能具體細(xì)分當(dāng)前的值是數(shù)組還是正則也就是不能細(xì)分對象類型的值先算檢測某一個實(shí)例是否屬于某各類的實(shí)例構(gòu)造函數(shù)使用檢測某個值是否屬于某 typeof 用來檢測數(shù)據(jù)類型的運(yùn)算符語法:typeof[value] typeof 12 //=>number typeof NaN //=>nu...

    Honwhy 評論0 收藏0
  • JavaScript檢測原始值、引用值、屬性

    摘要:檢測函數(shù)從技術(shù)上講,中的函數(shù)是引用類型,同樣存在構(gòu)造函數(shù),每個函數(shù)都是其實(shí)例,比如不好的寫法然而,這個方法亦不能跨幀使用,因?yàn)槊總€幀都有各自的構(gòu)造函數(shù),好在運(yùn)算符也是可以用于函數(shù)的,返回。 上周寫過一篇讀書筆記《編寫可維護(hù)的JavaScript》之編程實(shí)踐,其中 第8章 避免『空比較』是博主在工作中遇坑較多的雷區(qū),所以特此把該章節(jié)重新整理分享,希望大家不再坑隊(duì)友(>﹏<)。 在 Jav...

    劉德剛 評論0 收藏0
  • JavaScript數(shù)據(jù)類型及其檢測

    摘要:值的比較只進(jìn)行值的比較會進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換。只要在當(dāng)前實(shí)例的原型鏈上,我們用其檢測出來的結(jié)果都是。但檢測與不一樣,還可以處理基本數(shù)據(jù)類型的檢測。 showImg(https://segmentfault.com/img/remote/1460000016733921); 一、JavaScript有幾種類型的值? Javascript有兩種數(shù)據(jù)類型,分別是基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。其中...

    starsfun 評論0 收藏0
  • JavaScript數(shù)據(jù)類型及其檢測

    摘要:值的比較只進(jìn)行值的比較會進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換。只要在當(dāng)前實(shí)例的原型鏈上,我們用其檢測出來的結(jié)果都是。但檢測與不一樣,還可以處理基本數(shù)據(jù)類型的檢測。 showImg(https://segmentfault.com/img/remote/1460000016733921); 一、JavaScript有幾種類型的值? Javascript有兩種數(shù)據(jù)類型,分別是基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。其中...

    dingding199389 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<