這篇文章主要介紹了javascript六種數據類型以及特殊注意點,有需要的朋友可以參考一下
在js中常見的六種數據類型:String類型、Null類型、Number類型、Boolean類型、Object類型。 1、typeof的注意點 涉及到數據類型,不免會提到,操作符 typeof。要注意: 1、typeof是操作符,不是方法。雖然我們經常使用typeof()的方式獲取對象的數據類型。 2、對 null 取typeof 是 object(這是因為null是 空的對象引用),對函數取 typeof 是 function 代碼如下: alert(typeof null); //返回 object function demo(){ alert('demo'); } alert(typeof demo); //返回 function 2、為各種數據類型的對象變量設置初始值 注意,如果Object類型的 對象變量開始不知道賦值什麼,不要 var demo={};最好是 設置成null; 代碼如下: var d2=null; d2={'key':"shit"}; var d3='';//字符串 默認 var d4=0; //Number 類型 初始值設置為0 var d5=null; //對object 類型設置初始默認值 3、undefined 和null 的區別和注意點 1、如果用 “==” 進行比較,他們是相等的,因為比較的是值 2、區分他們有兩種方法(他們的核心都是比較他們的 數據類型) 1)使用typeof 將他們區分開 2)使用全等“===” :比較的是 值和 數據類型,只有全都相同 才返回 true 代碼如下: alert(undefined == null); //true alert(typeof undefined == typeof null); //false alert(undefined === null); //true 4、Boolean的注意點 1、true 和 1 比較是相同,false 和 0 比較是相同(是 “==” 比較),因為內部會實現 數據類型的 轉化,將true 轉換成1,將false 轉換成0. js 內部有很多數據類型的自動轉換,這是大家一定要注意的。後面還會提到很多。 但是使用“===” 就不相等了,因為 他們的數據類型是不等的。 2、顯示轉換成Boolean,使用Boolean()方法顯示轉換,需要注意的是各種數據類型,什麼時候轉換成true 什麼時候轉換成 false 1)String類型,只要不是 空字符串 都會 轉換成 true 2)Number類型,只要不是 0 ,即使是 負數,都會轉換成 true 3)Object類型,只要 不是 null 類型,都會轉換成true 4)Undefined類型,都會轉換成 false 我就不做演示,大家可以自己動手試一下。 3、(***)if() 語句的 () 內部就是調用了 Boolean函數 5、Number類型注意點 1、float類型 不能做精准運算 代碼如下: alert(0.1+0.2);//返回 0.300000000000000004 2、 支持 科學計數法 運算 3、NaN(Not a Number) 1)var d=0/0; 注意:在js 裡 是不會報錯的,而是返回 NaN 2)可以通過Number.NaN 來獲取 3)NaN和 任何 對象做運算都會返回 NaN 4)isNaN()判斷是不是 NaN 代碼如下: alert(isNaN(NaN));//true alert(isNaN(12));//false alert(isNaN('123'));//false:因為 字符串類型 的數字 可以自動轉換成 數字 alert(isNaN('lew'));//true alert(isNaN(false));//(*)false:因為 bool 值 可以轉換成數字,true變1,,false 變 0 5)isNaN()內部執行原理:同樣適用於對象。實現原理:首相調用對象的valueOf()方法,如果能轉換成數字就直接做判斷;如果不能就再調用toString()方法,然後測試返回值。 valueOf()內部調用了toObject()方法,兩個方法的 內部執行的原理:如下圖: