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

引用類型
區(qū)別:

值變量與引用變量的區(qū)別
在值變量中,變量a、b各自分開占不同的內存,互不影響。
引用變量中,變量a、b都指向同一個對象,改變b變量的值,會使得b變量指向的對象改變,因此a變量也同時發(fā)生變化。
為什么在引用變量中,var b = a; 不是將對象copy一份給b呢?因為引用類型是可以無限擴展屬性的,如果a自己一份, 再copy給b一份,當屬性很多的時候,那么這個內存占用就很大了,而引用類型是為了讓類型共同空間,指向同一個,這樣內存只占用一處。
typeof 運算符

typeof運算符
一共六種類型,但是typeof只能區(qū)分值類型的詳細類型,無法區(qū)分引用類型的詳細類型,但可以區(qū)分出函數。
因為數組就沒認出來啊。
變量計算-強制類型轉換
1.字符串拼接

字符串拼接
2.==運算符

==運算符
第一個是將100轉換成字符串
'100'進行比較;第二個是把數字0轉換成
false,空字符也轉換成false,兩者比較相等,所以結果為true;第三個是將
null和undefined都轉換成false,再比較相同,所以結果為true。
3.if語句

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

邏輯運算符