国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

TypeOf這些知識點你了解嗎

2024-05-06 16:28:51
字體:
來源:轉載
供稿:網友

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

代碼是這樣的:

<!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調試器會打印什么呢?

請看,效果圖

 

為什么會出現這個結果呢?

首先分析上圖中的兩個null

 

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

什么是預解析(hoisting)呢?

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

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

c||null是一個道理。

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

是的,倘若我們去使用一個未定義的變量,瀏覽器是會報錯的。

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

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

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

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

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

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

5、 對于函數類型而言,typeof返回function

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


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安西县| 万年县| 蓬安县| 金坛市| 乌拉特前旗| 弋阳县| 临海市| 邢台市| 当阳市| 高要市| 杂多县| 中宁县| 资中县| 荥经县| 邵阳县| 昌宁县| 夏津县| 巴楚县| 鸡东县| 黎川县| 崇州市| 和硕县| 扶沟县| 鹤庆县| 宜兰市| 兴国县| 卢氏县| 民乐县| 察哈| 张家口市| 钦州市| 秀山| 洱源县| 利津县| 泰宁县| 石嘴山市| 新巴尔虎右旗| 建平县| 江门市| 肥乡县| 佛坪县|