最近在準(zhǔn)備面試的事情,正好在通過視頻學(xué)習(xí),將視頻中的一些知識(shí)點(diǎn)整理一下,寫出來做個(gè)備忘錄(雖然我自己還手動(dòng)寫了一份紙質(zhì)筆記),(/ω\)
知識(shí)點(diǎn)一、變量類型和計(jì)算
變量類型
值類型 和 引用類型
值類型:特點(diǎn)是每個(gè)變量都會(huì)存儲(chǔ)各自的值,不會(huì)相互影響。
var a =100;
var b = a;
a = 200;
console.log(b); // 100
這里用的是Number類型,字符串類型和布爾類型也一樣。
引用類型:特點(diǎn)是不同變量指針指向同一個(gè)對象,可以無限地?cái)U(kuò)展屬性,比如這里是age,還可以加name,加sex等等(引用類型包括數(shù)組、對象、函數(shù))

區(qū)別:

在值變量中,變量a、b各自分開占不同的內(nèi)存,互不影響。
引用變量中,變量a、b都指向同一個(gè)對象,改變b變量的值,會(huì)使得b變量指向的對象改變,因此a變量也同時(shí)發(fā)生變化。
為什么在引用變量中,var b = a; 不是將對象copy一份給b呢?因?yàn)橐妙愋褪强梢詿o限擴(kuò)展屬性的,如果a自己一份, 再copy給b一份,當(dāng)屬性很多的時(shí)候,那么這個(gè)內(nèi)存占用就很大了,而引用類型是為了讓類型共同空間,指向同一個(gè),這樣內(nèi)存只占用一處。
typeof 運(yùn)算符

一共六種類型,但是typeof只能區(qū)分值類型的詳細(xì)類型,無法區(qū)分引用類型的詳細(xì)類型,但可以區(qū)分出函數(shù)。
因?yàn)閿?shù)組就沒認(rèn)出來啊。
變量計(jì)算-強(qiáng)制類型轉(zhuǎn)換
1.字符串拼接

2.==運(yùn)算符

第一個(gè)是將100轉(zhuǎn)換成字符串
'100'進(jìn)行比較;第二個(gè)是把數(shù)字0轉(zhuǎn)換成
false,空字符也轉(zhuǎn)換成false,兩者比較相等,所以結(jié)果為true;第三個(gè)是將
null和undefined都轉(zhuǎn)換成false,再比較相同,所以結(jié)果為true。
3.if語句

這里面后兩種情況都發(fā)生了強(qiáng)制類型轉(zhuǎn)換。
b=100轉(zhuǎn)換成了true,執(zhí)行了d重新賦值的操作,所以d為30;
c=''轉(zhuǎn)換成了false,無法進(jìn)入if語句,所以不執(zhí)行里面的操作,d還是之前的30。
4.邏輯運(yùn)算符
