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

TypeOf這些知識點你了解嗎

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

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

代碼是這樣的:

<!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判斷值類型時,是個怎么機(jī)制呢?總結(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)文章

最新評論

安平县| 全椒县| 廉江市| 龙门县| 鄂托克前旗| 左贡县| 平罗县| 乐安县| 海淀区| 海兴县| 元朗区| 故城县| 义乌市| 楚雄市| 循化| 如东县| 华安县| 石城县| 廊坊市| 福海县| 全州县| 宿迁市| 化隆| 西畴县| 漯河市| 泸州市| 安康市| 蕉岭县| 疏勒县| 晋江市| 麻栗坡县| 砀山县| 拜城县| 穆棱市| 凉山| 长兴县| 乌鲁木齐市| 蒲江县| 榆林市| 屏东市| 潞城市|