黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 職業(yè)指南 面試前必看的經(jīng)典JS常見面試題

面試前必看的經(jīng)典JS常見面試題

更新時間:2022-12-27 14:57:29 來源:動力節(jié)點 瀏覽1466次

1. JS 有哪些數(shù)據(jù)類型?

根據(jù) JavaScript 中的變量類型傳遞方式,分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型兩大類七種。

基本數(shù)據(jù)類型包括Undefined、Null、Boolean、Number、String、Symbol (ES6新增)六種。 引用數(shù)據(jù)類型只有Object一種,主要包括對象、數(shù)組和函數(shù)。

判斷數(shù)據(jù)類型采用typeof操作符,有兩種語法:

typeof 123;//語法一
typeof("123");//語法二
(1)typeof(null)返回object;
(2)null == undefined返回true,因為undefined派生自null;
(3)null === undefined返回false。

2. 基本數(shù)據(jù)類型和引用數(shù)據(jù)類型有什么區(qū)別?

(1)兩者作為函數(shù)的參數(shù)進行傳遞時:

基本數(shù)據(jù)類型傳入的是數(shù)據(jù)的副本,原數(shù)據(jù)的更改不會影響傳入后的數(shù)據(jù)。

引用數(shù)據(jù)類型傳入的是數(shù)據(jù)的引用地址,原數(shù)據(jù)的更改會影響傳入后的數(shù)據(jù)。

(2)兩者在內(nèi)存中的存儲位置:

基本數(shù)據(jù)類型存儲在棧中。

引用數(shù)據(jù)類型在棧中存儲了指針,該指針指向的數(shù)據(jù)實體存儲在堆中。

3. 判斷數(shù)據(jù)類型的方法有哪些?

(1)利用typeof可以判斷數(shù)據(jù)的類型;

(2)A instanceof B可以用來判斷A是否為B的實例,但它不能檢測 null 和 undefined;

(3)B.constructor == A可以判斷A是否為B的原型,但constructor檢測 Object與instanceof不一樣,還可以處理基本數(shù)據(jù)類型的檢測。不過函數(shù)的 constructor 是不穩(wěn)定的,這個主要體現(xiàn)在把類的原型進行重寫,在重寫的過程中很有可能出現(xiàn)把之前的constructor給覆蓋了,這樣檢測出來的結(jié)果就是不準確的。

(4)Object.prototype.toString.call()。Object.prototype.toString.call() 是最準確最常用的方式。

4. 淺拷貝與深拷貝有何區(qū)別?如何實現(xiàn)?

淺拷貝只復制指向某個對象的指針,而不復制對象本身。

淺拷貝的實現(xiàn)方式有:(1)Object.assign():需注意的是目標對象只有一層的時候,是深拷貝; (2)擴展運算符;

深拷貝就是在拷貝數(shù)據(jù)的時候,將數(shù)據(jù)的所有引用結(jié)構(gòu)都拷貝一份。

深拷貝的實現(xiàn)方式有: (1)手寫遍歷遞歸賦值; (2)結(jié)合使用JSON.parse()和0JSON.stringify()方法。

5. var、let、const的區(qū)別是什么?

var、let、const都是用于聲明變量或函數(shù)的關鍵字。其區(qū)別在于:

  var let const
作用域 函數(shù)作用域 塊級作用域 塊級作用域
作用域內(nèi)聲明提升 無(時性死區(qū))
是否可重復聲明
是否可重復賦值 否(量)
初始化時是否必需賦值

6. 什么是執(zhí)行上下文和執(zhí)行棧?

變量或函數(shù)的執(zhí)行上下文,決定了它們的行為以及可以訪問哪些數(shù)據(jù)。

每個上下文都有一個關聯(lián)的變量對象,而這個上下文中定義的所有變量和函數(shù)都存在于這個對象上(如DOM中全局上下文關聯(lián)的便是window對象)。

每個函數(shù)調(diào)用都有自己的上下文。當代碼執(zhí)行流進入函數(shù)時,函數(shù)的上下文被推到一個執(zhí)行棧中。

在函數(shù)執(zhí)行完之后,執(zhí)行棧會彈出該函數(shù)上下文,在其上的所有變量和函數(shù)都會被銷毀,并將控制權(quán)返還給之前的執(zhí)行上下文。 JS的執(zhí)行流就是通過這個執(zhí)行棧進行控制的。

7. 什么是作用域和作用域鏈?

作用域可以理解為一個獨立的地盤,可以理解為標識符所能生效的范圍。

作用域最大的用處就是隔離變量,不同作用域下同名變量不會有沖突。

ES6中有全局作用域、函數(shù)作用域和塊級作用域三層概念。

當一個變量在當前塊級作用域中未被定義時,會向父級作用域(創(chuàng)建該函數(shù)的那個父級作用域)尋找。如果父級仍未找到,就會再一層一層向上尋找,直到找到全局作用域為止。這種一層一層的關系,就是作用域鏈 。

8. 什么是原型、原型鏈?

原型:JS聲明構(gòu)造函數(shù)(用來實例化對象的函數(shù))時,會在內(nèi)存中創(chuàng)建一個對應的對象,這個對象就是原函數(shù)的原型。構(gòu)造函數(shù)默認有一個prototype屬性,prototype的值指向函數(shù)的原型。同時原型中也有一個constructor屬性,constructor的值指向原函數(shù)。

通過構(gòu)造函數(shù)實例化出來的對象,并不具有prototype屬性,其默認有一個__proto__屬性,proto的值指向構(gòu)造函數(shù)的原型對象。在原型對象上添加或修改的屬性,在所有實例化出的對象上都可共享。

js常見面試題

當在實例化的對象中訪問一個屬性時,首先會在該對象內(nèi)部尋找,如找不到,則會向其proto指向的原型中尋找,如仍找不到,則繼續(xù)向原型中proto指向的上級原型中尋找,直至找到或Object.prototype為止,這種鏈狀過程即為原型鏈。

以上就是“面試前必看的經(jīng)典JS常見面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關內(nèi)容,可以關注動力節(jié)點Java官網(wǎng)。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 女人被男人扒开狂躁视频 | 日韩免费在线播放 | 寡妇一级a毛片免费播放 | 多人伦交性欧美在线观看 | 久久婷婷一区二区三区 | 深夜福利在线免费观看 | 男女午夜爽爽 | 免费的黄视频 | 伦理在线观看 | 天天摸天天躁天天添天天爽 | 91大片淫黄大片.在线天堂 | 亚欧在线免费观看 | 天天透天天操 | 美女黄网站全是免费网址 | 欧美日韩国产综合在线小说 | 国产精品不卡在线观看 | 欧美97久久人人模人人爽人人喊 | 中文字幕日韩专区精品系列 | 欧美激情在线精品video | 爆操欧美| 免费看黄视频网站 | 亚洲综合色秘密影院秘密影院 | 久草热视频在线观看 | 一区二区三区四区欧美 | 你懂的网站在线观看 | 国产黄色小视频网站 | 国产日韩欧美久久久 | 一级做a爰视频免费观看2019 | 亚洲啊啊 | 婷婷久操 | 中文在线日韩 | 欧美aav | 成人网免费观看 | 97久久人人做人人爽人人澡 | 在线视频日韩欧美 | 亚洲欧美久久一区二区 | 青春草在线免费视频 | 久久香蕉国产线看观看亚洲片 | 草草影院在线观看视频 | 国产福利麻豆精品一区 | 国产欧美日韩中文字幕 |