JavaScript的資料型別(1)
今天開始,我們分成幾個部分來詳細聊聊JavaScript的資料型別----那些讓初學者混淆和崩潰的事兒。 (小步快跑,每天不寫多了,個人認為短平快的技術文章讓初學者更容易懂)
很多書上寫著:JavaScript是一種無型別的語言。這句話貌似對的,但實際上對初學者有著巨大的誤導!
漢語裡的『無』一般是沒有的意思,因此初學者以為JS中『沒有』資料型別,或者說資料型別不重要,殊不知JS中有資料型別,而且在程式設計中資料型別重要得很,你想避也避不開。而且,JS中偏偏對同一個變數可以賦予不同的資料型別,靈活得要命。試看下面程式碼:
var a=100; //此時a為number型別
a=true; //此時a為boolean型別
a="Hello,JavaScript!"; //此時a為string型別
a={}; //此時a為object型別
a=function(){} //此時a為function型別,也是屬於物件型別
以上都不會報錯,因此有不少初學者認為,JS中資料型別不那麼重要,隨便怎麼寫都行,坑來了。。。
先來談談JS中資料型別的分類,按全球JS頂尖專家Nicholas Zakas的說法,JS中資料型別分成兩大類:原始型別和引用型別:
(1)原始型別中的布林型別(計算機中最基本的不是0和1嗎?我們們就從布林型別開聊)
布林型別,它只有2個值:真值true,假值false. 看似很簡單,但別忘了,其它型別是可以轉換成布林型別的。轉換規則如下:
A.正零、負零、浮點零(0.0)、空字串、false本身、NaN、null、undefined 被轉換為假值(false)
B. 其它值被轉換為真值(true), 特別是物件---哪怕是空物件,也會被轉換成真值true
C. 如果x是要轉換成布林型別的值,就呼叫Boolean(x),(看清楚:前面沒有那個new , 不是new
Boolean(x), 這個話題很大,我們們後面仔細再說!)你也可以寫成:!!x 即可。
因此,嚴格講,你只能說,JS是一種弱型別的語言,不能說它是無型別的語言。 (不是我偏要咬文嚼字,搞技術工作實在是馬虎不得!記得嗎?小學時語文老師教導我們:語文學不好,其它科目會受影響,真的如此,誠不我欺也!)
相關文章
- JavaScript學習之資料型別(1)JavaScript資料型別
- javaScript的資料型別JavaScript資料型別
- JavaScript - 資料型別JavaScript資料型別
- JavaScript 資料型別JavaScript資料型別
- JavaScript資料型別JavaScript資料型別
- JavaScript: 資料型別JavaScript資料型別
- javascript中的資料型別JavaScript資料型別
- JavaScript的資料型別(2)JavaScript資料型別
- JavaScript的資料型別(3)JavaScript資料型別
- JavaScript的資料型別(4)JavaScript資料型別
- JavaScript基本資料型別JavaScript資料型別
- JavaScript判斷資料型別JavaScript資料型別
- JavaScript 資料型別轉換JavaScript資料型別
- JavaScript——資料型別詳解JavaScript資料型別
- javascript 資料型別檢測JavaScript資料型別
- javascript資料型別判斷JavaScript資料型別
- javascript資料型別轉換JavaScript資料型別
- javascript 資料型別判斷JavaScript資料型別
- JavaScript 基本資料型別(轉)JavaScript資料型別
- JavaScript有哪些資料型別?JavaScript資料型別
- JavaScript 基本資料型別和引用型別的區別詳解JavaScript資料型別
- JavaScript的資料型別及其檢測JavaScript資料型別
- 如何判斷JavaScript的資料型別?JavaScript資料型別
- JavaScript的資料型別如何判斷JavaScript資料型別
- Javascript 中的資料型別判斷JavaScript資料型別
- JavaScript中的資料型別-儲存差別JavaScript資料型別
- 前端進階系列(第1期):理解JavaScript資料型別前端JavaScript資料型別
- JavaScript 資料型別與型別判斷詳解JavaScript資料型別
- 【MySQL資料型別1之--數值型別】MySql資料型別
- JavaScript基本資料型別有哪些JavaScript資料型別
- 深入學習JavaScript資料型別JavaScript資料型別
- JavaScript 基本資料型別轉換JavaScript資料型別
- JavaScript資料型別及輸出JavaScript資料型別
- JavaScript獲取物件資料型別JavaScript物件資料型別
- 玩轉 JavaScript 之資料型別JavaScript資料型別
- 01.javascript之資料型別JavaScript資料型別
- javascript資料型別檢測方法JavaScript資料型別
- JavaScript資料型別與運算子JavaScript資料型別