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

基本數(shù)據(jù)類型:

  • String
  • Number
  • Boolean
  • Undefined
  • Null
  • Symbol
  • BigInt

對(duì)象類型

  • Object:任意對(duì)象
  • Array: 一種特別的對(duì)象(擁有數(shù)值下表院仿,內(nèi)部數(shù)據(jù)是有序的)
  • Function: 一種特別的對(duì)象(可以執(zhí)行)

判斷數(shù)據(jù)類型的方法

  • typeof
    • 返回?cái)?shù)據(jù)類型的字符串表達(dá)式(全小寫(xiě))
    • 無(wú)法區(qū)分object和null岔帽,object和array(都返回object)
  • instanceof
    • 判斷對(duì)象的具體類型
    • 用來(lái)判斷A是否為B的實(shí)例焚碌,表達(dá)式為:A instanceof B,如果A是B的實(shí)例痕囱,則返回true,否則返回false。instanceof檢測(cè)的是原型勋锤,內(nèi)部機(jī)制是通過(guò)判斷對(duì)象的原型鏈中是否有類型的原型
  • ===
    可以判斷undefined粱侣,null
  • Object.prototype.toString()
    Object.prototype.toString.call('') //[object String]最準(zhǔn)確的判斷方法
  • constructor
    • 當(dāng)一個(gè)函數(shù)F被定義時(shí)羊壹,JS引擎會(huì)為F添加prototype原型,然后在prototype上添加一個(gè)constructor屬性齐婴,并讓其指向F的引用油猫,F(xiàn)利用原型對(duì)象的constructor屬性引用了自身,當(dāng)F作為構(gòu)造函數(shù)創(chuàng)建對(duì)象時(shí)柠偶,原型上的constructor屬性被遺傳到了新創(chuàng)建的對(duì)象上情妖,從原型鏈角度講睬关,構(gòu)造函數(shù)F就是新對(duì)象的類型。這樣做的意義是毡证,讓對(duì)象誕生以后电爹,就具有可追溯的數(shù)據(jù)類型 ''.constructor == String //true

undefined和null的區(qū)別?

  • undefined代表定義未賦值
  • null定義并賦值了料睛,只是值為null

什么時(shí)候給變量賦值為null丐箩?

  • 初始賦值,表明將要賦值為對(duì)象
  • 結(jié)束前恤煞,讓對(duì)象成為垃圾對(duì)象(被垃圾回收器回收)

嚴(yán)格區(qū)別變量類型和數(shù)據(jù)類型雏蛮?

  • 數(shù)據(jù)的類型
    • 基本類型
    • 對(duì)象類型
  • 變量的類型(變量?jī)?nèi)存值的類型)
    • 基本類型:保存的就是基本類型的數(shù)據(jù)
    • 引用類型:保存的是地址值

數(shù)據(jù)的特點(diǎn)

  • 可傳遞
  • 可運(yùn)算

內(nèi)存中所有操作的目標(biāo):數(shù)據(jù)

  • 算術(shù)運(yùn)算
  • 邏輯運(yùn)算
  • 賦值
  • 運(yùn)行函數(shù)

什么是內(nèi)存?

  • 內(nèi)存條通電猴產(chǎn)生的可儲(chǔ)存數(shù)據(jù)的空間(臨時(shí)的)
  • 內(nèi)存產(chǎn)生和死亡:內(nèi)存條(電路板)->通電->產(chǎn)生內(nèi)存空間->存儲(chǔ)數(shù)據(jù)->處理數(shù)據(jù)->斷電->內(nèi)存空間和數(shù)據(jù)消失
  • 一塊小內(nèi)存的2個(gè)數(shù)據(jù)
    • 內(nèi)部存儲(chǔ)的數(shù)據(jù)
    • 地址值
  • 內(nèi)存分類
    • 棧: 全局變量/局部變量
    • 堆:對(duì)象

什么是變量

  • 可變化的量阱州,由變量名和變量值組成
  • 每個(gè)變量都對(duì)應(yīng)的一塊小內(nèi)存挑秉,變量名用來(lái)查找對(duì)應(yīng)的內(nèi)存,變量值就是內(nèi)存中保存的數(shù)據(jù)

內(nèi)存苔货,數(shù)據(jù)犀概,變量三者之間的關(guān)系

  • 內(nèi)存用來(lái)存儲(chǔ)數(shù)據(jù)的空間
  • 變量是內(nèi)存的標(biāo)識(shí)

var a = xxx,a內(nèi)存中到底保存的是什么夜惭?

  • xxx是基本數(shù)據(jù)姻灶,保存的就是這個(gè)數(shù)據(jù)
  • xxx是對(duì)象,保存的是對(duì)象的地址值
  • xxx是一個(gè)變量诈茧,保存的xxx的內(nèi)存內(nèi)容(可能是基本數(shù)據(jù)产喉,也可能是地址值)
var a = {age: 12}
var b = a
a = {name: 'Bob',age: 13}
b.age = 14
console.log(b.age,a.name,a.age) // 14 Bob 13
a = {name: 'Bob',age: 13}
function fn(obj) {
  obj = {age: 15}
}
fn(a)
console.log(a.age) //13
//因?yàn)閯傞_(kāi)始a指向{age:13}的內(nèi)存空間,在fn函數(shù)中敢会,obj被賦值a曾沈,故它一開(kāi)始也指向了{(lán)age:13}的內(nèi)存空間,但后面又重新定義了obj鸥昏, obj = {age: 15}塞俱,此時(shí)obj不再指向{age:13},而是指向{age: 15}±艨澹現(xiàn)在obj和a指向的不是同一塊內(nèi)存空間

在js調(diào)用函數(shù)時(shí)傳遞變量參數(shù)時(shí)障涯,是值傳遞還是引用傳遞?

  • 都是值(基本/地址值)傳遞

js引擎如何管理內(nèi)存膳汪?

  • 內(nèi)存生命周期
    • 分配小內(nèi)存空間唯蝶,得到它的使用權(quán)
    • 存儲(chǔ)數(shù)據(jù),可以反復(fù)進(jìn)行操作
    • 釋放小內(nèi)存空間
  • 釋放內(nèi)存
    • 局部變量:函數(shù)執(zhí)行完自動(dòng)釋放
    • 對(duì)象:成為垃圾對(duì)象->垃圾回收器回收

什么是對(duì)象

  • 多個(gè)數(shù)據(jù)的封裝體
  • 用來(lái)保存多個(gè)數(shù)據(jù)的容器
  • 一個(gè)對(duì)象代表現(xiàn)實(shí)中的一個(gè)事物

為什么要用對(duì)象遗嗽?

  • 統(tǒng)一管理多個(gè)數(shù)據(jù)

對(duì)象的組成

  • 屬性:屬性名(字符串)和屬性值(任意)組成
  • 方法:一種特別的屬性(屬性值是函數(shù))

什么時(shí)候必須使用['屬性名']的方式粘我?

  • 屬性名包含特殊字符: - 空格
  • 屬性名不確定

什么是函數(shù)

  • 實(shí)現(xiàn)特定功能的n條語(yǔ)句的封裝體
  • 只有函數(shù)是可以執(zhí)行的,其它類型的數(shù)據(jù)不能執(zhí)行

為什么要用函數(shù)

  • 提高代碼復(fù)用
  • 便于閱讀交流

如何調(diào)用(執(zhí)行)函數(shù)

  • test():直接調(diào)用
  • obj.test():通過(guò)對(duì)象調(diào)用
  • new test():new調(diào)用
  • test.call/apply(obj):臨時(shí)讓test成為obj的方法進(jìn)行調(diào)用

什么是回調(diào)函數(shù)

  • 自己定義的且沒(méi)有調(diào)用但最終該函數(shù)執(zhí)行了

常見(jiàn)的回調(diào)函數(shù)

  • dom事件回調(diào)函數(shù)
document.getElementById('btn').onclick = function() {
  ...
}
  • 定時(shí)器回調(diào)函數(shù)
  • ajax請(qǐng)求回調(diào)函數(shù)
  • 生命周期回調(diào)函數(shù)

this是什么媳谁?

  • 任何函數(shù)本質(zhì)上都是通過(guò)某個(gè)對(duì)象來(lái)調(diào)用的涂滴,如果沒(méi)有直接指定就是window
  • 所有函數(shù)內(nèi)部都有一個(gè)變量this
  • 它的值是調(diào)用函數(shù)的當(dāng)前對(duì)象

如何確定this?

  • test(): window
  • p.test(): p
  • new test(): 新創(chuàng)建的對(duì)象(該構(gòu)造函數(shù)創(chuàng)建出來(lái)的實(shí)例對(duì)象)
  • p.call(obj): obj
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末晴音,一起剝皮案震驚了整個(gè)濱河市柔纵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锤躁,老刑警劉巖搁料,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異系羞,居然都是意外死亡郭计,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)椒振,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)昭伸,“玉大人,你說(shuō)我怎么就攤上這事澎迎÷睿” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵夹供,是天一觀的道長(zhǎng)灵份。 經(jīng)常有香客問(wèn)我,道長(zhǎng)哮洽,這世上最難降的妖魔是什么填渠? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮鸟辅,結(jié)果婚禮上氛什,老公的妹妹穿的比我還像新娘。我一直安慰自己匪凉,他們只是感情好屉更,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般坦敌。 火紅的嫁衣襯著肌膚如雪趟卸。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天萨脑,我揣著相機(jī)與錄音,去河邊找鬼饺饭。 笑死渤早,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瘫俊。 我是一名探鬼主播鹊杖,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼悴灵,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了骂蓖?” 一聲冷哼從身側(cè)響起积瞒,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎登下,沒(méi)想到半個(gè)月后茫孔,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡被芳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年缰贝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畔濒。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡剩晴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出侵状,到底是詐尸還是另有隱情李破,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布壹将,位于F島的核電站嗤攻,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏诽俯。R本人自食惡果不足惜妇菱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望暴区。 院中可真熱鬧闯团,春花似錦、人聲如沸仙粱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)伐割。三九已至候味,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間隔心,已是汗流浹背白群。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留硬霍,地道東北人帜慢。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親粱玲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子躬柬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348