最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript知識點總結(六)之JavaScript判斷變量數(shù)據(jù)類型

 更新時間:2016年05月31日 14:27:42   作者:孤傲蒼狼  
這篇文章主要介紹了JavaScript知識點總結(六)之JavaScript判斷變量數(shù)據(jù)類型的相關資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下

最近做了一個項目,其中有關于js判斷數(shù)據(jù)類型的處理,在網(wǎng)上搜了相關資料,并且親自測試了各種數(shù)據(jù)類型的判斷,絕對安全。下面小編把具體內(nèi)容總結分享給大家,大家參考下!

一、JS中的數(shù)據(jù)類型

   1.數(shù)值型(Number):包括整數(shù)、浮點數(shù)。

   2.布爾型(Boolean)

   3.字符串型(String)

   4.對象(Object)

   5.數(shù)組(Array)

   6.空值(Null)

   7.未定義(Undefined)

二、判斷一個變量的數(shù)據(jù)類型

1.數(shù)值型(number)

  比較常用的判斷方法是:

function isNumber(val){
return typeof val === 'number';
} 

  但有些情況就不行,比如:

var a;
alert(isNumber(parseInt(a))); 

  這里彈出來的是true,如下圖所示:


  但實際上變量a是NaN,它是不能用于數(shù)值運算的。

  所以上面的函數(shù)可以修改為:

function isNumber(val){
return typeof val === 'number' && isFinite(val);
} 

修改了之后,彈出來的就是false,如下圖所示:

  順便介紹一下JavaScript isFinite() 函數(shù),isFinite() 函數(shù)用于檢查其參數(shù)是否是無窮大,如果 number 是有限數(shù)字(或可轉換為有限數(shù)字),那么返回 true。否則,如果 number 是 NaN(非數(shù)字),或者是正、負無窮大的數(shù),則返回 false。

2.布爾型(boolean)

  布爾類型的判斷比較簡單,可以用如下的方法進行判斷:

/*
判斷變量val是不是布爾類型
*/
function isBooleanType(val) {
return typeof val ==="boolean";
} 

測試代碼:

<script type="text/javascript">
/*
判斷變量val是不是布爾類型
*/
function isBooleanType(val) {
return typeof val ==="boolean";
}
var a;
var b = false;
alert("變量a是布爾類型的判斷結果是:"+isBooleanType(a));
alert("變量b是布爾類型的判斷結果是:"+isBooleanType(b));
</script> 

運行結果:

3. 字符串(String)

  字符串類型的判斷比較簡單,可以用如下的方法進行判斷:

/*
判斷變量是不是字符串類型
*/
function isStringType(val) {
return typeof val === "string";
} 

測試代碼:

<script type="text/javascript">
/*
判斷變量是不是字符串類型
*/
function isStringType(val) {
return typeof val === "string";
}
var a;
var s = "strType";
alert("變量a是字符串類型的判斷結果是:"+isStringType(a));
alert("變量s是字符串類型的判斷結果是:"+isStringType(s));
</script> 

運行結果:


4.未定義(Undefined)

  未定義的判斷比較簡單,可以用如下的方法進行判斷:

/*
判斷變量是不是Undefined
*/
function isUndefined(val) {
return typeof val === "undefined";
}

測試代碼:

<script type="text/javascript">
var a;//a是undefined
var s = "strType";
/*
判斷變量是不是Undefined
*/
function isUndefined(val) {
return typeof val === "undefined";
}
alert("變量a是Undefined的判斷結果是:"+isUndefined(a));
alert("變量s是Undefined的判斷結果是:"+isUndefined(s));
</script> 

運行結果:


5.對象(Object)

  由于當變量是空值Null時,typeof也會返回object,所以Object不能直接用 typeof 判斷。

應該這樣:

function isObj(str){
if(str === null || typeof str === 'undefined'){
return false;
}
return typeof str === 'object';
} 

測試代碼:

<script type="text/javascript">
/*
判斷變量是不是Object類型
*/
function isObj(str){
if(str === null || typeof str === 'undefined'){
return false;
}
return typeof str === 'object';
}
var a;
var b = null;
var c = "str";
var d = {};
var e = new Object();
alert("b的值是null,typeof b ==='object'的判斷結果是:"+(typeof b ==='object'));
alert("變量a是Object類型的判斷結果是:"+isObj(a));//false
alert("變量b是Object類型的判斷結果是:"+isObj(b));//false
alert("變量c是Object類型的判斷結果是:"+isObj(c));//false
alert("變量d是Object類型的判斷結果是:"+isObj(d));//true
alert("變量e是Object類型的判斷結果是:"+isObj(e));//true
</script> 

運行結果:


6.空值(Null)

  判斷空值用 val === null 即可

function isNull(val){
return val === null;
}

測試代碼:

/*
判斷變量是不是null
*/
function isNull(val){
return val === null;
}
/*測試變量*/
var a;
var b = null;
var c = "str";
//彈出運行結果
alert("變量a是null的判斷結果是:"+isNull(a));//false
alert("變量b是null類型的判斷結果是:"+isNull(b));//true
alert("變量c是null類型的判斷結果是:"+isNull(c));//false 

運行結果:


7.數(shù)組(Array)

  數(shù)組類型不可用typeof來判斷。因為當變量是數(shù)組類型是,typeof會返回object。

  這里有兩種方法判斷數(shù)組類型:

/*判斷變量arr是不是數(shù)組
方法一
*/
function isArray(arr) {
return Object.prototype.toString.apply(arr) === '[object Array]';
}
/*判斷變量arr是不是數(shù)組
方法二
*/
function isArray(arr) {
if(arr === null || typeof arr === 'undefined'){
return false;
}
return arr.constructor === Array;
}

測試代碼:

<script type="text/javascript">
/*判斷變量arr是不是數(shù)組
方法一
*/
function isArray(arr) {
return Object.prototype.toString.apply(arr) === '[object Array]';
}
/*判斷變量arr是不是數(shù)組
方法二
*/
function isArray(arr) {
if(arr === null || typeof arr === 'undefined'){
return false;
}
return arr.constructor === Array;
}
//測試變量
var a = null;
var b = "";
var c ;
var arr = [,,];
var arr = new Array();
//打印測試結果
document.write("arr變量是數(shù)組類型,typeof arr === 'object'的結果是:"+(typeof arr === 'object'));
document.write("<br/>");
document.write("------------------------------------------------------------------------------------------------");
document.write("<br/>");
document.write("使用isArray方法判斷結果如下:");
document.write("<br/>");
document.write("------------------------------------------------------------------------------------------------");
document.write("<br/>");
document.write("變量a是數(shù)組類型的判斷結果是:"+isArray(a));
document.write("<br/>");
document.write("變量b是數(shù)組類型的判斷結果是:"+isArray(b));
document.write("<br/>");
document.write("變量c是數(shù)組類型的判斷結果是:"+isArray(c));
document.write("<br/>");
document.write("變量arr是數(shù)組類型的判斷結果是:"+isArray(arr));
document.write("<br/>");
document.write("變量arr是數(shù)組類型的判斷結果是:"+isArray(arr));
document.write("<br/>");
document.write("------------------------------------------------------------------------------------------------");
document.write("<br/>");
document.write("使用isArray方法判斷結果如下:");
document.write("<br/>");
document.write("------------------------------------------------------------------------------------------------");
document.write("<br/>");
document.write("變量a是數(shù)組類型的判斷結果是:"+isArray(a));
document.write("<br/>");
document.write("變量b是數(shù)組類型的判斷結果是:"+isArray(b));
document.write("<br/>");
document.write("變量c是數(shù)組類型的判斷結果是:"+isArray(c));
document.write("<br/>");
document.write("變量arr是數(shù)組類型的判斷結果是:"+isArray(arr));
document.write("<br/>");
document.write("變量arr是數(shù)組類型的判斷結果是:"+isArray(arr));
document.write("<br/>");
</script> 

運行結果:

  

以上內(nèi)容是小編給大家介紹的JavaScript知識點總結(六)之JavaScript判斷變量數(shù)據(jù)類型的相關知識,希望對大家有所幫助,如果大家想了解更多內(nèi)容敬請關注腳本之家網(wǎng)站!

相關文章

  • 談談JavaScript中function多重理解

    談談JavaScript中function多重理解

    Function是javascript里最常用的一個概念,javascript里的function是最容易入手的一個功能,但它也是javascript最難理解最難掌握的一個概念,接下來通過本篇文章給大家介紹javascript中的function多重理解,小伙伴們一起來學習吧
    2015-08-08
  • js實現(xiàn)一個逐步遞增的數(shù)字動畫

    js實現(xiàn)一個逐步遞增的數(shù)字動畫

    可視化大屏項目使用最多的組件就是數(shù)字組件,本文主要介紹了js實現(xiàn)一個逐步遞增的數(shù)字動畫,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • javascript中break,continue和return語句用法小結

    javascript中break,continue和return語句用法小結

    break,continue和return這三個語句的用法新手們經(jīng)常弄混淆,至少在我學習c語言的時候經(jīng)常把它們的用法給搞錯。不過現(xiàn)在好了,我已徹底搞清楚它們之間的用法
    2012-05-05
  • Bootstrap輸入框組件使用詳解

    Bootstrap輸入框組件使用詳解

    這篇文章主要為大家詳細介紹了Bootstrap輸入框組件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • js實現(xiàn)遍歷含有input的table實例

    js實現(xiàn)遍歷含有input的table實例

    這篇文章主要介紹了js實現(xiàn)遍歷含有input的table方法,結合實例形式分析了jsp讀取數(shù)據(jù)庫動態(tài)生成table及JavaScript遍歷table的相關技巧,需要的朋友可以參考下
    2015-12-12
  • SyntaxHighlighter代碼加色使用方法

    SyntaxHighlighter代碼加色使用方法

    原名:SyntaxHighlighter,是一款用于web頁面的代碼著色工具,可以用來著色多種語言,可以是HTML,CSS,Javascript,還可以是C,JAVA等編程語言。最早見于Yahoo的YUI,當時還屬于自由軟件,最近打開官方網(wǎng)站發(fā)現(xiàn)已被goolge收編。
    2008-09-09
  • Egg Vue SSR 服務端渲染數(shù)據(jù)請求與asyncData

    Egg Vue SSR 服務端渲染數(shù)據(jù)請求與asyncData

    這篇文章主要介紹了Egg Vue SSR 服務端渲染數(shù)據(jù)請求與asyncData,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • 使用apifm-wxapi快速開發(fā)小程序過程詳解

    使用apifm-wxapi快速開發(fā)小程序過程詳解

    這篇文章主要介紹了使用apifm-wxapi快速開發(fā)小程序過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • JavaScript查看代碼運行效率console.time()與console.timeEnd()用法

    JavaScript查看代碼運行效率console.time()與console.timeEnd()用法

    今天小編就為大家分享一篇關于JavaScript查看代碼運行效率console.time()與console.timeEnd()用法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 淺談javascript中的instanceof和typeof

    淺談javascript中的instanceof和typeof

    這篇文章主要簡單介紹了javascript中的instanceof和typeof的相關資料,需要的朋友可以參考下
    2015-02-02

最新評論

岐山县| 南漳县| 盖州市| 南陵县| 建湖县| 梁平县| 古浪县| 招远市| 靖边县| 香港 | 平江县| 乐陵市| 平谷区| 讷河市| 柘荣县| 岐山县| 图木舒克市| 铜梁县| 叙永县| 昆明市| 中山市| 玉山县| 巴东县| 孝昌县| 莆田市| 青冈县| 延长县| 开封市| 兴隆县| 灵台县| 南开区| 寿阳县| 凤庆县| 阿拉善右旗| 屯留县| 广宁县| 阿拉善左旗| 广西| 辛集市| 徐闻县| 罗源县|