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

TypeOf這些知識點你了解嗎

 更新時間:2016年02月21日 17:17:22   投稿:mrr  
昨天給同事一起玩耍,同事給我出了一道代碼題目,是關(guān)于typeof的,感覺挺好玩的,在此分享給大家,順便鞏固下自己對typeof知識點的總結(jié)

昨天給同事一起玩耍,同事給我出了一道代碼題目,是關(guān)于typeof的,感覺挺好玩的,在此分享給大家,順便鞏固下自己對typeof知識點的總結(jié)。如有不對,請給予指出,共同進步。

代碼是這樣的:

<!DOCTYPE html>
<head>
<title>typeof</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
<script>
var a= a||null; 
var b= c||null; 
var c= typeof f;
console.log(a);
console.log(b);
console.log(c);
</script>
</body>
</html>

那么,你說運行該代碼,chrome調(diào)試器會打印什么呢?

請看,效果圖


為什么會出現(xiàn)這個結(jié)果呢?

首先分析上圖中的兩個null


因為Javascript在執(zhí)行代碼之前,會先預(yù)解析(hoisting)。

什么是預(yù)解析(hoisting)呢?

就是在JavaScript中,你可以在函數(shù)的任何位置聲明多個var語句,它們就像在函數(shù)的頂部聲明一樣發(fā)揮作用,且會給var聲明的變量賦予一個undefined的初始值。這種行為我們稱之為預(yù)解析(hoisting)。

所以呢,在執(zhí)行以上代碼前,Javascript會首先將所有的var變量(a,b,c)預(yù)解析(hoisting),當(dāng)執(zhí)行a||null時,a是undefined的,又因為是||運算,所以結(jié)果就是null咯。

c||null是一個道理。

再來看看,為什么typeof f會是undefined呢?f都沒定義,不應(yīng)該會報錯嗎?

是的,倘若我們?nèi)ナ褂靡粋€未定義的變量,瀏覽器是會報錯的。

但是,當(dāng)用typeof去判斷一個未定義的變量,將返回undefined。

那typeof判斷值類型時,是個怎么機制呢?總結(jié)如下:

1、 對于數(shù)字類型的值,typeof會返回number,注意:NaN也是一個數(shù)字類型,因為它在JavaScript中代表的是特殊非數(shù)字值。

2、 對于字符串類型的值,typeof會返回string。

3、 對于布爾類型的值,typeof會返回boolean。

4、 對于對象,數(shù)組,null而言,typeof會返回object

5、 對于函數(shù)類型而言,typeof返回function

6、 如果運算數(shù)沒有定義(不存在或未賦值),將會返回undefined。

相關(guān)文章

最新評論

翼城县| 富平县| 高青县| 山西省| 建湖县| 潮安县| 浦城县| 台前县| 重庆市| 武义县| 怀集县| 宜川县| 什邡市| 巴中市| 虞城县| 平远县| 介休市| 右玉县| 贵州省| 武陟县| 新民市| 黔江区| 唐海县| 武汉市| 舒城县| 休宁县| 通化市| 惠来县| 台湾省| 辰溪县| 庆安县| 龙陵县| 莫力| 福贡县| 永康市| 龙山县| 尼玛县| 宁强县| 鄂尔多斯市| 景泰县| 夏河县|