大家好逮走,我是IT修真院武漢第10期學(xué)員鸠蚪,一枚正直、純潔师溅、善良的前端程序員茅信。
今天給大家分享一下,修真院官網(wǎng)JS任務(wù)-2险胰,深度思考的知識點(diǎn)——JavaScript數(shù)據(jù)類型及常用方法汹押。
1.背景介紹
JavaScript 是一種弱類型或者說動態(tài)語言。這意味著你不用提前聲明變量的類型起便,在程序運(yùn)行過程中棚贾,類型會被自動確定。這也意味著你可以使用同一個變量保存不同類型的數(shù)據(jù):
2.知識剖析
原始類型
undefined:
undefined類型就一個值——undefined榆综。在使用var申明變量時未對其初始化妙痹,那這個變量就是undefined。
Null:
Null類型也只有一個值——null鼻疮。它表示一個空對象怯伊,一般用于確定要聲明一個變量為對象,但是這個對象目前還不存在判沟。
boolean:
Boolean類型是ECMAScript中使用的最多的一種類型耿芹,該類型有兩個字面值:true和false。
轉(zhuǎn)換方法:Boolean()
Number:
Number類型用來表示整數(shù)跟浮點(diǎn)數(shù)挪哄,還有一個特殊的數(shù)值NaN(非數(shù)值)吧秕。
數(shù)值轉(zhuǎn)換:
有三種方法:Number()、parseInt()和parseFloat()
由于Number()函數(shù)在轉(zhuǎn)換字符串的時候比較復(fù)雜迹炼,而且還不合理砸彬。因此在處理整數(shù)時更常用的是parseInt()颠毙。
parseInt(string, radix)函數(shù),將字符串轉(zhuǎn)換為整數(shù)類型的數(shù)值砂碉。它有以下規(guī)則:
????????忽略字符串前面的空格蛀蜜,直至找到第一個非空字符。
????????如果第一個字符不是數(shù)字符號或者負(fù)號增蹭,返回NaN滴某。
????????如果第一個字符是數(shù)字,則繼續(xù)解析直至字符串解析完畢或者遇到一個非數(shù)字符號為止滋迈。
????????如果上步解析的結(jié)果以0開頭壮池,則將其當(dāng)作八進(jìn)制來解析;如果以0x開頭杀怠,則將其當(dāng)作十六進(jìn)制來解析椰憋。
????????如果指定radix參數(shù),則以radix為基數(shù)進(jìn)行解析赔退。
string:
String類型用來表示所有用雙引號引起來的數(shù)據(jù)橙依,管它以前是什么妖魔鬼怪。
轉(zhuǎn)換字符串:
toString(radix)方法硕旗。除undefined和null之外的所有類型的值都具有toString()方法窗骑,其作用是返回對象的字符串表示。
object類型
在 Javascript 里漆枚,對象可以被看作是一組屬性的集合创译。用對象字面量語法來定義一個對象時,會自動初始化一組屬性墙基。(也就是說软族,你定義一個var a = "Hello",那么a本身就會有a.substring這個方法残制,以及a.length這個屬性立砸,以及其它;如果你定義了一個對象初茶,vara= {}颗祝,那么a就會自動有a.hasOwnProperty及a.constructor等屬性和方法。)而后恼布,這些屬性還可以被增減螺戳。屬性的值可以是任意類型,包括具有復(fù)雜數(shù)據(jù)結(jié)構(gòu)的對象折汞。屬性使用鍵來標(biāo)識倔幼,它的鍵值可以是一個字符串或者符號值(Symbol)。
3.常見問題
4.解決方案
5.編碼實(shí)戰(zhàn)
6.擴(kuò)展思考
有哪些方法可以判斷數(shù)據(jù)類型字支?
????????typeof: 返回的是string類型 判斷基本數(shù)據(jù)類型:string凤藏、number、boolean堕伪、function揖庄、undefined類型,對數(shù)組、對象欠雌、null類型都統(tǒng)統(tǒng)打印的是object類型蹄梢。
????????instanceof: 返回的是boolean類型(可判斷數(shù)組類型) 判斷依據(jù):檢測對象的原型鏈上是否有構(gòu)造函數(shù)的prototype屬性。
????????constructor: 返回的是boolean類型(可判斷數(shù)組類型)任何一個對象都有constructor屬性富俄,指向創(chuàng)建這個對象的構(gòu)造函數(shù)禁炒。
????????Object.prototype.toString.call: 方法比較通用,但是繁瑣霍比。
7.參考文獻(xiàn)
Javascript數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)
《JavaScript高級程序設(shè)計》
8.更多討論
詳情請看:
問:undefined跟null的區(qū)別幕袱?
答:變量為undefined時,在后面定義可以是任何類型悠瞬,這樣就可能會帶來安全的問題们豌,而將變量賦值為null時就可以避免很多漏洞,也讓代碼更優(yōu)雅浅妆。
問:ECMAScript6新添了什么類型望迎?
答:symbol類型,也屬于基本類型凌外,可以是符號辩尊。。康辑。很奇怪摄欲。
問:師兄你為什么這么博學(xué)多才?
答:要包結(jié)業(yè)疮薇?視頻遠(yuǎn)程教學(xué)蒿涎?3w+工資?抱歉惦辛,請繞道劳秋。我們,只鍛煉你的學(xué)習(xí)能力胖齐,等待你的只有大量全等級真實(shí)項(xiàng)目玻淑,IT修真院 ,給你不一樣的編程體驗(yàn)~在這里呀伙,你甚至可以看到全棧妹子补履。