JS | 面試的知識點梳理(一)

最近在準備面試的事情,正好在通過視頻學習,將視頻中的一些知識點整理一下,寫出來做個備忘錄(雖然我自己還手動寫了一份紙質筆記),(/ω\)

知識點一、變量類型和計算

變量類型

值類型 和 引用類型

值類型:特點是每個變量都會存儲各自的值,不會相互影響。

var a =100;
var b = a;
a = 200;
console.log(b);    //  100

這里用的是Number類型,字符串類型和布爾類型也一樣。


引用類型:特點是不同變量指針指向同一個對象,可以無限地擴展屬性,比如這里是age,還可以加name,加sex等等(引用類型包括數組、對象、函數)

引用類型

區(qū)別:

值變量與引用變量的區(qū)別

在值變量中,變量a、b各自分開占不同的內存,互不影響。
引用變量中,變量ab都指向同一個對象,改變b變量的值,會使得b變量指向的對象改變,因此a變量也同時發(fā)生變化。


為什么在引用變量中,var b = a; 不是將對象copy一份給b呢?因為引用類型是可以無限擴展屬性的,如果a自己一份, 再copyb一份,當屬性很多的時候,那么這個內存占用就很大了,而引用類型是為了讓類型共同空間,指向同一個,這樣內存只占用一處。

typeof 運算符

typeof運算符

一共六種類型,但是typeof只能區(qū)分值類型的詳細類型,無法區(qū)分引用類型的詳細類型,但可以區(qū)分出函數。
因為數組就沒認出來啊。

變量計算-強制類型轉換

1.字符串拼接

字符串拼接

2.==運算符

==運算符

第一個是將100轉換成字符串'100'進行比較;
第二個是把數字0轉換成false,空字符也轉換成false,兩者比較相等,所以結果為true;
第三個是將nullundefined都轉換成false,再比較相同,所以結果為true。

3.if語句

if語句

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

4.邏輯運算符

邏輯運算符
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容