“约见”面试官系列之常见面试题第十四篇之所有数据类型(建议收藏)
最近有很多人說數據類型是 6種。我怎么記得JS的數據類型有8種。最近發現好多人對JS的基礎不太了解。很多數據類型都沒有搞清楚。不BB,我就按我的理解寫一波筆記,每次看一波書我就感覺一次比一次多懂一點。來補下知識點。。。。
JS數據類型:基礎概念?
請注意:JS的數據類型有8種。
在ES5的時候,我們認知的數據類型確實是 6種:Number、String、Boolean、undefined、object、Null。
ES6 中新增了一種 Symbol?。這種類型的對象永不相等,即始創建的時候傳入相同的值,可以解決屬性名沖突的問題,做為標記。
谷歌67版本中還出現了一種 bigInt。是指安全存儲、操作大整數。(但是很多人不把這個做為一個類型)。
JS數據類型:JS 的數據類型有幾種?
? ? ?8種。Number、String、Boolean、Null、undefined、object、symbol、bigInt。
JS數據類型:Object 中包含了哪幾種類型?
? ? ? 其中包含了Data、function、Array等。這三種是常規用的。
JS數據類型:JS的基本類型和引用類型有哪些呢?
? ? 基本類型(單類型):除Object。?String、Number、boolean、null、undefined。
? ? 引用類型:object。里面包含的 function、Array、Date。
? ? 基本類型的實例:
? ? 引用類型的實例:
JS數據類型:JS 中 typeof 輸出分別是什么?
? ? { } 、[ ] 輸出 object。
? ? console.log( ) 輸出 function。
? ? 注意一點:NaN 是 Number 中的一種,非Number 。
| String | String | 字符串 |
| Number | Number | 數據類型 |
| Boolean | Boolean | 布爾型 |
| Undefined | Undefined | 沒有初始化、定義的值 |
| Null | Object | 不存在的對象 |
| NaN | Number | Number 中的特殊數值 |
| Object | Function | ? |
? ??1、假設: Number('as') == NaN ?
? ? ? ? ? ? 肯定是false, Number(‘as’) 輸出 NaN。
?? ??? ?? ?注)用 isNaN() 檢測是否是非數值型。
?? ??? ??? ?
?? ??? ?? ? 請注意這里 isNaN 幫我轉成 true 。?? ??? ?
?? ??? ?? ? 期間我一直在糾結?Number(‘as’) 輸出 NaN ?NaN == NaN 為什么是 false。其實?js 規定的NaN 不等于NaN。
? ? 2、假設:Number('123') == NaN ?
?? ?? ? 肯定是false,Number('123’) 輸出 123。
JS數據類型:如何判斷數據類型?
1、typeof 操作符(通用:上面有內容有講到)
2、toString ( )?? ?
? ? 作用:其他類型轉成 string 的方法
? ? 支持:number、boolean、string、object?
? ? 不支持:null 、undefined
?? ?
3、toLocaleString ( )
?? ?把數組轉成本地字符串??
?? ?
?
4、檢測數組類型的方法 ??? ?? ?
?? ? ①?instanceof ?操作符
??? ???? ?
? ? ②對象的 constructor 屬性
?? ???? ?? ?
? ? ??③?Array.isArray( ) 檢驗值是否為數組
??? ??? ?? ?
JS數據類型:null 和 undefined 有什么區別?
? ??Null 只有一個值,是 null。不存在的對象。
? ??Undefined 只有一個值,是undefined。沒有初始化。undefined 是從 null 中派生出來的。
? ? 簡單理解就是:undefined 是沒有定義的,null 是定義了但是為空。
JS數據類型:null 不存在的原因是什么?如何解決?
? ?不存在的原因是:
?? ??? ??? ?? ? 1、方法不存在
?? ??? ??? ?? ? 2、對象不存在
?? ??? ??? ?? ? 3、字符串變量不存在
?? ??? ??? ?? ? 4、接口類型對象沒初始化?
?? ?解決方法:
?? ??? ??? ?? ? 做判斷處理的時候,放在設定值的最前面
JS數據類型:== 和 === 有什么區別,什么場景下使用?
? ? == 表示相同。
?? ??? ??? ?比較的是物理地址,相當于比較兩個對象的?hashCode ,肯定不相等的。
?? ??? ?? ? 類型不同,值也可能相等。
? ? === 表示嚴格相同。
?? ??? ?? ? 例:同為 null/undefined ,相等。
? ? 簡單理解就是 == 就是先比較數據類型是否一樣。=== 類型不同直接就是 false。
JS數據類型:對象可以比較地?
? ? 對象是可以比較,遍歷比較key 和 value就行, Object.is(value1, value2)。
JS數據類型:總結
?? ?1、Undefined 類型
?? ?? ??只有一個值。在使用var 聲明變量但未對其加初始化時,這個變量就是undefined。
?? ?? ??
?? ?2、Null 類型
?? ??? ?只有一個值。null是表示一個空對象指針,這也是typeof操作符檢測 null 值時會返回 object 的原因。
?? ?3、Boolean 類型
?? ??? ?使用最多的一個類型,有兩個字面值,分別是true、false。true不一定等于1,false不一定等于0。
?? ??? ?boolean類型的字面值是區分大小寫的。True和False是標識符
? ?? ??? ?
?? ?4、Number 類型
?? ??? ?數字類型,表示數據的整數和浮點數。某些語言中也稱為“雙精度值”。
?
?? ?? ??var intNum = 55;十進制
?? ??? ?var num = 012;八進制
?? ?? ??var octalNum = 0x23;十六進制
?? ?5、String 類型
?? ??? ?字符串可以有單引號、雙引號表示。字符串是不可變的,一旦創建,值就不能改變
?? ??? ?要改變某個變量保存的字符串,首先要銷毀原來的字符串,然后于用另一個包含的字符串填充該變量。
?
? ?? ???
?
?? ?? ??注)toString()可以輸出二進制、八進制、十進制,十六進制。
????? ?? ??? ??null和undefined沒有toString()方法,用String函數不返回這兩個值的字面量。
?? ?6、Object 類型
?? ?? ??ECMAjavascript中的對象其實就是一組數據和功能的集合。對象可以通過執行new操作符后跟要創建的對象類型的名稱來創建。創建object類型的實例并為其添加屬性(或)方法,就可以自定義創建對象。
?? ??? ?如:var o = new Object( );
?? ??? ?object 的每個實例都有下列屬性和方法:
?? ??? ?constructor:保存著用于創建當前對象的函數。(構造函數)constructor就是object();
?? ?? ??hasOwnProperty(propertyName):用于檢查給定的當前屬性在當前對象實例中)而不是在實例原型中)是否存在。其中,作為參數的屬性名(propertyName)必須以字稚串形式指定(例如:o.hasOwnProperty(“name”))。
?? ??? ?isPrototypeOf(object):用于檢查傳入的對象是否是傳入對象原型。
?? ??? ?propertyIsEnumerable(propertyName):用于檢查給定屬性是否能夠用for-in語句。與hasOwnProperty()方法一樣,作為參數的屬性名必須以字符串形式指定。
?? ?? ??toLocaleString( ):返回對象的字符串表示,該字符串與執行環境的地區對應。
?? ??? ?toString( ):返回對象的字符串表示。
?? ??? ?valueOf( ):返回對象的字符串、數值或者布爾值表示。通常與toString( )方法的返回值得相同。
?? ??? ?ECMAJS中object是所有對象的基礎,因些所有對象都具有這些基本的屬性和方法。
?? ?7、 Symbol 類型
? ???? ?Symbol 類型的對象永遠不相等,即便創建的時候傳入相同的值。因此,可以用解決屬性名沖突的問題(適用于多少編碼),做為標記。
?? ??? ?這是 es6 新增的數據類型。?? ?
?? ?? ??
?? ?8、BigInt 類型
? ???? ?Javascript 中的任意精度整數,可以安全存儲和操作大整數。即始超出 Number 能夠表示的安全整數范圍。是 chrome 67中的新功能。
本面試題為前端常考面試題,后續有機會繼續完善。我是歌謠,一個沉迷于故事的講述者。
歡迎一起私信交流。
“睡服“面試官系列之各系列目錄匯總(建議學習收藏)?
總結
以上是生活随笔為你收集整理的“约见”面试官系列之常见面试题第十四篇之所有数据类型(建议收藏)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: App 上架 AppStore和证书的各
- 下一篇: 《“灯谜”系统--“定单”辅助产生系统》