這10個JavaScript面試題,看看你會幾個?

2021-03-02 web前端開發
英文| https://medium.com/javascript-in-plain-english/10-javascript-interview-questions-for-2020-697b40de9480的JavaScript正在成為世界上最受歡迎的程式語言。隨著對JS開發人員的需求增長,你必須為此做好準備。以下是你夢寐以求的十大JavaScript的基礎面試題。1,var和let有什麼區別?儘管這似乎很容易,但您不會相信我因為沒有回答這個問題而不得不拒絕多少候選人。區別在於範圍等級。var是功能範圍的,但let(和const)是塊範圍的。要了解差異,請查看以下示例:
function doStuff() {    let a = 5;  var b = 5;    console.log(a + b); }
doStuff(); console.log(a); console.log(b);
function doMoreStuff() { if (2 + 2 === 4) { var a = 5; let b = 5; } console.log(a); console.log(b); }
doMoreStuff();
for (let i = 0; i < 5; i++) { setTimeout(() => console.log(i), 100);}
for (var j = 0; j < 5; j++) { setTimeout(() => console.log(j), 100);}

2,==和===有什麼區別?如果您的答案是「 ==按值比較,===也按類型比較」,那是不正確的。JS引擎的理解方式,==允許強制類型和===允許。類型強制是解釋器的自動類型轉換。這是JS中最令人驚奇的原因([] ==![]確實如此)。您可以在以下代碼段中觀察到差異:
5 == '5'; 5 === '5'; 
1 == true; 1 > false; 0 === false;
'true' == true; 'true' === true;

3,「 this」關鍵字是什麼意思?您可能很想回答這個問題,它指向類體內的類實例,而不是對。首先,JS中的類是語法糖,不會釋放任何新功能。此關鍵字在任何函數中均可用,並指向包含此函數的對象。通過一個示例可能更容易理解:
const myObject = {  a: 'b',  b: 'c',  doStuff: function() {    // Here, this refers to myObject    console.log(this.a + this.b);  }}
myObject.doStuff(); // bc
// BUT:const anotherObject = { a: 'abacaba', b: '!'};anotherObject.doStuff = myObject.doStuff;anotherObject.doStuff(); // abacaba!
// Arrow functions do not have their own this and refer to the outer one:const arrowObject = { a: 'b', // here, this refers to the root function (file itself), which has no idea about a doMoreStuff: () => console.log(this.a)};
arrowObject.doMoreStuff(); // undefined

4,什麼是構造函數?JS中的構造函數也不是與類相關的函數,並且與此關鍵字緊密相關。使用新關鍵字調用構造函數,並返回任何此值。請注意,在構造函數this中,函數並不指向外部對象,,甚至使用佔位符對象:
function Car(name, make) {        this.name = name;  this.make = make;  }
const myCar = new Car('Outback', 'Subaru');console.log(myCar.name);

5,如何將基於某些的函數轉換為基於Promise的函數?解決問題更多的是練習,但至少是你必須知道。某些函數只是你打算在以後調用的簡單函數。當你必須等待某些事情(例如來自API的響應)時,通常會使用它們。但是,基於根本函數的代碼太複雜了,這就是為什麼約會Promises函數的原因。我不在這裡討論,但是如果你現在知道承諾是什麼,請查看本文(地址https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)。在下一個示例中,要求你將getData數據函數轉換為諾言:
function getData(callback, errorCallback) {  try {        callback(result)  } catch (e) {    errorCallback(e);  }}
getData(result => console.log(result), error => console.error(error));

function getDataAsync() { return new Promise((resolve, reject) => { getData(resolve, reject); });}
getDataAsync() .then(result => console.log(result)) .catch(error => console.error(error));

async functoin main() { const result = await getDataAsync(); console.log(result);}

無極構造函數接受一個回調,該回調接收兩個函數:決心和拒絕在回調內部,你可以執行耗時的任務,並根據結果調用。`決心`或`reject`。6,NaN === NaN?簡而言之,NaN代表「不是數字」,僅因為一個值不是數字,而另一個值不是數字並不意味著這些變量。缺點是您無法真正檢查變量是否正在使用NaN使用myVariable === NaN。您可以使用該Number.isNaN功能或myVariable!== myVariable進行檢查。7、0.1 + 0.2 === 0.3?假。這個技巧完全適用於JS:在任何語言的浮點運算中都很常見。它與CPU處理浮點數的方式有關。實際值0.1 + 0.2到0.300000001並檢查是否,你將編寫Math.abs (0.3-(0.2 + 0.1))<= EPS,其中EPS是一個任意小的值(例如0.00001)。8,JS中的原始數據類型是什麼?JS中的原始數據類型是不是對象且沒有方法的數據。這是JS中的原始數據類型的列表:9,什麼是「嚴格」模式?在JS中,您可以通過「使用嚴格」;在文件的開頭放置嚴格的模式。嚴格模式可以在代碼中進行更嚴格的錯誤檢查,以便調試更加容易。例如,此代碼段可在常規JS中使用,但不嚴格:
x = 'abacaba'; 
delete x;
function(x1, x1) {}

10,該代碼的輸出是什麼?
function abacaba() {    return    {      a: 'b'    }}
console.log(abacaba());

undefined。發生這種情況是因為JS將在第2行的「返回」之後插入分號,變為第3-5行認為作用域而不是對象定義。在此之後,感謝你的閱讀,也希望今天的文章對你有所幫助,祝你在面試中一切順利!

相關焦點

  • JavaScript面試的10個經典面試題
    JavaScript面試的10個經典面試題 工程師3 發表於 2018-04-20 15:50:00 對大部分公司來說,招聘技術人員這種事情,管理層就應該放手交給技術團隊,只有他們才能夠準確地判斷應聘者的技術實力
  • 10道棘手的Java面試題,看看你能答對幾個?
    作者:DD編輯部來源:程序猿DD昨晚看了幾個老外分享的面試題
  • 44個 Javascript變態題,你遇到過幾個? 帶有題解析
    回調函數接受四個參數 previousValue, currentValue, currentIndex, array需要注意的是 If the array is empty and no initialValue was provided, TypeError would be thrown.所以第二個表達式會報異常.
  • 10大常見JavaScript代碼錯誤淺析,看看你遇到幾個?
    前言如今,javascript是一門非常火的語言,尤其是作為前端開發,你必須對它了如指掌。我們在開發調試的時候,它也經常會報錯,下面我們就來具體看看常見的10個錯誤。Uncaught TypeError: Cannot read property如果你是一名 JavaScript 開發者,對這個錯誤可能已經熟視無睹。在 Chrome 裡讀取未定義對象的屬性或調用未定義對象的方法時就會發生這個錯誤,在 Chrome 開發者控制臺可以很容易地重現這個錯誤。
  • 7 個沙雕又帶有陷阱的 JS 面試題
    在 JS 面試中,經常會看到一些簡單而又沙雕的題目,這些題目包含一些陷阱,但這些在我們規範的編碼下或者業務中基本不會出現。有些面試官就是這樣,不專注於制定代碼的標準和規範上,卻用不規範的代碼去檢驗別人是否細心。這魔幻的世界就是一個攀比優越感的,我能考你,我就是比你優越,真實。來看看這 7 個沙雕題目是哪些。1.
  • 拿過BAT offer的Java架構師總結京東面試題,看看你能答對幾個?
    今天我們就來看看曾經拿到過百度,阿里,騰訊offer的Java高級架構師總結的京東Java面試題,大家看看會做幾個?之前也發過很多面試題的文章,網友們私信我一個也不會,希望我能夠提供下答案。不多說我們直接進入正題,京東Java面試題!
  • 你必須要知道的JavaScript數據結構與面試題解答
    也許你只是從數據結構入手,或者你已經編碼多年,只需要複習一下。今天,我們將帶你了解JS開發人員都需要知道的7個JavaScript數據結構。高層數據結構是用於存儲和組織數據的技術,這些數據使修改,導航和訪問變得更加容易。數據結構決定了如何收集數據,我們可以用來訪問數據的功能以及數據之間的關係。數據結構幾乎用於計算機科學和編程的所有領域,從作業系統到基本的編碼再到人工智慧。
  • 你應該知道25道JavaScript面試題
    這題可以參考我以前的文章 湯姆大叔的6道javascript編程題題解 中的最後一題,理論上此題更簡單,因為它沒要求能擴展(比如 sum(2)(3)(4)),甚至可以這樣:function sum(x) { if (arguments.length == 2) { return arguments[0] + arguments[1];
  • 阿里螞蟻金服Java程式設計師面試的11個問題,你會幾個呢?
    在分享螞蟻金服Java程式設計師面經前,不妨來看下Java程式設計師面試時要注意3大要點:0、重視基礎在面試之前,有必要將基礎的知識點重新過一遍,比如並發優缺點、內存可見性、鎖、同步、線程池框架等。比如面向對象基本知識,這幾乎是面試必考的,比如什麼是類,繼承,多態等等。面向對象的特徵:抽象、繼承、封裝、多態常見算法的應用,包括算法基礎和Java編程實現。總結一般是進行分類總結,善於抓重點,以便抓住面試官痛點。
  • 12 個 GitHub 上超火的 JavaScript 奇技淫巧項目,找到寫 JavaScript 的靈感!
    公眾號:前端GitHub,專注於挖掘 GitHub 上優秀的前端開源項目,並以專題的形式推薦,每專題大概 10 個好項目,每周會有一到三篇精華文章推送。已經推薦了 面試項目、css奇技淫巧項目、代碼規範項目、數據結構與算法項目、管理後臺模板、前端必備在線工具 等專題的近 100 個優秀項目了。
  • 「秒殺」面試官,你只差這10道Python面試題
    哎呀!不多說了!胡陽老師就要來了,趕緊先看看這 10 道面試題。所以,所有的問題基本上都會圍繞著工作內容來展開,但最終還是會落到具體的技術點上。不知道你有沒有自己思考下對應問題的答案。這十個問題可能只是面試的開始,要知道技術類的面試要是聊的嗨了,聊一兩個小時是常事兒。所以,如果你在面試,這十個問題你要怎麼來答呢?Q1:PEP8是什麼?
  • 答對這40道經典web前端面試題,想不拿到offer都難!
    想成功就業web前端工程師,想要能高薪就業,那麼除了好的web前端技能以外,還得有好的面試技巧,如果提前就了解更多企業的面試要求及面試題目,那麼可以讓我們的面試成功的機率大大的提高。今天小編就整理了一些經典的web前端面試題,希望可以祝大家一臂之力。一、HTML常見題目01、Doctype作用?嚴格模式與混雜模式如何區分?它們有何意義?02、HTML5為什麼只需要寫?
  • 牛津面試題來了!!快來看看你可以答幾題
    也十分重要而說到面試大家是不是會想到:「為什麼選我們這所學校?」小編也盤點了一些其他學院的面試題目,來看看你能不能回答吧:生物學「Why do some habitats support higher biodiversity than others?」為什麼許多動物都有條紋?
  • 2021國考面試備考:這10個面試細節要做到
    【導讀】華圖國家公務員考試網同步華圖教育公眾號發布:2021國考面試備考:這10個面試細節要做到,詳細信息請閱讀下文!如果你講著講著突然忘記說什麼,看看關鍵詞有助於烣復記憶。當然,如果遇到不提供稿紙的的情況,那就只能靠自己了。   3.一定不能冷場,即答題中長時間停頓   越冷場,考生可能越緊張,考場氣氛也不太好。確實沒話說,先念念題目都可以,再談談平時背下的可能與考題有關的內容,哪怕跑點兒題,也會緩和一下緊張的情緒。
  • 你有必要知道的 25 個 JavaScript 面試題
    ES6 引入了Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER這兩個常量,用來表示這個範圍的上下限,並提供了 Number.isSafeInteger() 來判斷整數是否是安全型整數。10、在下面的代碼中,數字 1-4 會以什麼順序輸出?為什麼會這樣輸出?
  • 探秘JavaScript中的六個字符
    and +這六個符號寫一些神奇的代碼。如果你現在不是在手機,你可以打開瀏覽器的控制臺,你可以將任何代碼示例粘貼到控制臺,並且代碼值為true。讓我們從最基本的開始,要記住一些黃金規則:!後面跟的字符會被轉換成布爾值+後面跟的字符會被轉換成數值[]後面跟的字符會被轉換成字符串來看下面的例子:!
  • 10個Objective-C基礎面試題,iOS面試必備
    如果你準備去面試一個iOS開發崗位,那麼本文也許可以幫助你提前準備一些iOS面試題,這些面試題都是 Objective-C基礎面試題,一起來看看。1、#import和#include的區別,@class代表什麼?
  • 新手程式設計師進階之路:10個學習網站,告訴你刷題怎麼選擇?
    對於新手、進階的程式設計師來說,刷題能夠讓你的編程能力會得到一個質的飛躍。但也不能盲目刷題,發現自身最薄弱的環節,才能學以致用,以下推薦滿足你任何面試和學習需求。
  • jQuery經典面試題及答案精選
    jQuery是一款非常流行的Javascript框架,如果你想要從事Web前端開發這個崗位,那麼jQuery是你必須掌握而且能夠熟練應用的一門技術
  • 10個經典的Java面試題集合
    這裡有10個經典的Java面試題,也為大家列出了答案。這是Java開發人員面試經常容易遇到的問題,相信你了解和掌握之後一定會有所提高。