日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

“约见”面试官系列之常见面试题第十四篇之所有数据类型(建议收藏)

發(fā)布時間:2023/12/10 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 “约见”面试官系列之常见面试题第十四篇之所有数据类型(建议收藏) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近有很多人說數(shù)據(jù)類型是 6種。我怎么記得JS的數(shù)據(jù)類型有8種。最近發(fā)現(xiàn)好多人對JS的基礎(chǔ)不太了解。很多數(shù)據(jù)類型都沒有搞清楚。不BB,我就按我的理解寫一波筆記,每次看一波書我就感覺一次比一次多懂一點。來補下知識點。。。。

JS數(shù)據(jù)類型:基礎(chǔ)概念?

請注意:JS的數(shù)據(jù)類型有8種。

在ES5的時候,我們認(rèn)知的數(shù)據(jù)類型確實是 6種:Number、String、Boolean、undefined、object、Null。

ES6 中新增了一種 Symbol?。這種類型的對象永不相等,即始創(chuàng)建的時候傳入相同的值,可以解決屬性名沖突的問題,做為標(biāo)記。

谷歌67版本中還出現(xiàn)了一種 bigInt。是指安全存儲、操作大整數(shù)。(但是很多人不把這個做為一個類型)。

JS數(shù)據(jù)類型:JS 的數(shù)據(jù)類型有幾種?

? ? ?8種。Number、String、Boolean、Null、undefined、object、symbol、bigInt。

JS數(shù)據(jù)類型:Object 中包含了哪幾種類型?

? ? ? 其中包含了Data、function、Array等。這三種是常規(guī)用的。

JS數(shù)據(jù)類型:JS的基本類型和引用類型有哪些呢?

? ? 基本類型(單類型):除Object。?String、Number、boolean、null、undefined。

? ? 引用類型:object。里面包含的 function、Array、Date。

? ? 基本類型的實例:

? ? 引用類型的實例:

JS數(shù)據(jù)類型:JS 中 typeof 輸出分別是什么?

? ? { } 、[ ] 輸出 object。

? ? console.log( ) 輸出 function。

? ? 注意一點:NaN 是 Number 中的一種,非Number 。

String

String

字符串

Number

Number

數(shù)據(jù)類型

Boolean

Boolean

布爾型

Undefined

Undefined

沒有初始化、定義的值

Null

Object

不存在的對象

NaN

Number

Number 中的特殊數(shù)值

Object

Function

?

? ??1、假設(shè): Number('as') == NaN ?

? ? ? ? ? ? 肯定是false, Number(‘a(chǎn)s’) 輸出 NaN。

?? ??? ?? ?注)用 isNaN() 檢測是否是非數(shù)值型。

?? ??? ??? ?

?? ??? ?? ? 請注意這里 isNaN 幫我轉(zhuǎn)成 true 。?? ??? ?

?? ??? ?? ? 期間我一直在糾結(jié)?Number(‘a(chǎn)s’) 輸出 NaN ?NaN == NaN 為什么是 false。其實?js 規(guī)定的NaN 不等于NaN。

? ? 2、假設(shè):Number('123') == NaN ?

?? ?? ? 肯定是false,Number('123’) 輸出 123。

JS數(shù)據(jù)類型:如何判斷數(shù)據(jù)類型?

1、typeof 操作符(通用:上面有內(nèi)容有講到)

2、toString ( )?? ?

? ? 作用:其他類型轉(zhuǎn)成 string 的方法

? ? 支持:number、boolean、string、object?

? ? 不支持:null 、undefined

?? ?

3、toLocaleString ( )

?? ?把數(shù)組轉(zhuǎn)成本地字符串??

?? ?

?

4、檢測數(shù)組類型的方法 ??? ?? ?

?? ? ①?instanceof ?操作符

??? ???? ?

? ? ②對象的 constructor 屬性

?? ???? ?? ?

? ? ??③?Array.isArray( ) 檢驗值是否為數(shù)組

??? ??? ?? ?

JS數(shù)據(jù)類型:null 和 undefined 有什么區(qū)別?

? ??Null 只有一個值,是 null。不存在的對象。

? ??Undefined 只有一個值,是undefined。沒有初始化。undefined 是從 null 中派生出來的。

? ? 簡單理解就是:undefined 是沒有定義的,null 是定義了但是為空。

JS數(shù)據(jù)類型:null 不存在的原因是什么?如何解決?

? ?不存在的原因是:

?? ??? ??? ?? ? 1、方法不存在

?? ??? ??? ?? ? 2、對象不存在

?? ??? ??? ?? ? 3、字符串變量不存在

?? ??? ??? ?? ? 4、接口類型對象沒初始化?

?? ?解決方法:

?? ??? ??? ?? ? 做判斷處理的時候,放在設(shè)定值的最前面

JS數(shù)據(jù)類型:== 和 === 有什么區(qū)別,什么場景下使用?

? ? == 表示相同。

?? ??? ??? ?比較的是物理地址,相當(dāng)于比較兩個對象的?hashCode ,肯定不相等的。

?? ??? ?? ? 類型不同,值也可能相等。

? ? === 表示嚴(yán)格相同。

?? ??? ?? ? 例:同為 null/undefined ,相等。

? ? 簡單理解就是 == 就是先比較數(shù)據(jù)類型是否一樣。=== 類型不同直接就是 false。

JS數(shù)據(jù)類型:對象可以比較地?

? ? 對象是可以比較,遍歷比較key 和 value就行, Object.is(value1, value2)。

JS數(shù)據(jù)類型:總結(jié)

?? ?1、Undefined 類型

?? ?? ??只有一個值。在使用var 聲明變量但未對其加初始化時,這個變量就是undefined。

?? ?? ??

?? ?2、Null 類型

?? ??? ?只有一個值。null是表示一個空對象指針,這也是typeof操作符檢測 null 值時會返回 object 的原因。

?? ?3、Boolean 類型

?? ??? ?使用最多的一個類型,有兩個字面值,分別是true、false。true不一定等于1,false不一定等于0。

?? ??? ?boolean類型的字面值是區(qū)分大小寫的。True和False是標(biāo)識符

? ?? ??? ?

?? ?4、Number 類型

?? ??? ?數(shù)字類型,表示數(shù)據(jù)的整數(shù)和浮點數(shù)。某些語言中也稱為“雙精度值”。

?

?? ?? ??var intNum = 55;十進制

?? ??? ?var num = 012;八進制

?? ?? ??var octalNum = 0x23;十六進制

?? ?5、String 類型

?? ??? ?字符串可以有單引號、雙引號表示。字符串是不可變的,一旦創(chuàng)建,值就不能改變

?? ??? ?要改變某個變量保存的字符串,首先要銷毀原來的字符串,然后于用另一個包含的字符串填充該變量。

?

? ?? ???

?

?? ?? ??注)toString()可以輸出二進制、八進制、十進制,十六進制。

????? ?? ??? ??null和undefined沒有toString()方法,用String函數(shù)不返回這兩個值的字面量。

?? ?6、Object 類型

?? ?? ??ECMAjavascript中的對象其實就是一組數(shù)據(jù)和功能的集合。對象可以通過執(zhí)行new操作符后跟要創(chuàng)建的對象類型的名稱來創(chuàng)建。創(chuàng)建object類型的實例并為其添加屬性(或)方法,就可以自定義創(chuàng)建對象。

?? ??? ?如:var o = new Object( );

?? ??? ?object 的每個實例都有下列屬性和方法:

?? ??? ?constructor:保存著用于創(chuàng)建當(dāng)前對象的函數(shù)。(構(gòu)造函數(shù))constructor就是object();

?? ?? ??hasOwnProperty(propertyName):用于檢查給定的當(dāng)前屬性在當(dāng)前對象實例中)而不是在實例原型中)是否存在。其中,作為參數(shù)的屬性名(propertyName)必須以字稚串形式指定(例如:o.hasOwnProperty(“name”))。

?? ??? ?isPrototypeOf(object):用于檢查傳入的對象是否是傳入對象原型。

?? ??? ?propertyIsEnumerable(propertyName):用于檢查給定屬性是否能夠用for-in語句。與hasOwnProperty()方法一樣,作為參數(shù)的屬性名必須以字符串形式指定。

?? ?? ??toLocaleString( ):返回對象的字符串表示,該字符串與執(zhí)行環(huán)境的地區(qū)對應(yīng)。

?? ??? ?toString( ):返回對象的字符串表示。

?? ??? ?valueOf( ):返回對象的字符串、數(shù)值或者布爾值表示。通常與toString( )方法的返回值得相同。

?? ??? ?ECMAJS中object是所有對象的基礎(chǔ),因些所有對象都具有這些基本的屬性和方法。

?? ?7、 Symbol 類型

? ???? ?Symbol 類型的對象永遠不相等,即便創(chuàng)建的時候傳入相同的值。因此,可以用解決屬性名沖突的問題(適用于多少編碼),做為標(biāo)記。

?? ??? ?這是 es6 新增的數(shù)據(jù)類型。?? ?

?? ?? ??

?? ?8、BigInt 類型

? ???? ?Javascript 中的任意精度整數(shù),可以安全存儲和操作大整數(shù)。即始超出 Number 能夠表示的安全整數(shù)范圍。是 chrome 67中的新功能。

本面試題為前端常考面試題,后續(xù)有機會繼續(xù)完善。我是歌謠,一個沉迷于故事的講述者。

歡迎一起私信交流。

“睡服“面試官系列之各系列目錄匯總(建議學(xué)習(xí)收藏)?

總結(jié)

以上是生活随笔為你收集整理的“约见”面试官系列之常见面试题第十四篇之所有数据类型(建议收藏)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。