43 道檢驗基礎的 JavaScript 面試題

2021-03-02 小生方勤


導讀

這兩天的GitHub Trending repositories被一個名叫 javascript-questions的項目霸榜了,項目中記錄了一些JavaScript題目。

文中有些點作者解釋的不太完整,為了更好的理解,我在文中添加了一些個人解釋。

倉庫地址:https://github.com/lydiahallie/javascript-questions

JavaScript 進階問題列表

我在我的Instagram上發布了每日JavaScript選擇題,我也會在這裡發布!

從基礎到高級:測試您對JavaScript的了解程度,刷新您的知識,或為您的編碼面試做好準備!💪 🚀我每周用新問題更新這個項目。

答案位於問題下方

1. 下面代碼的輸出是什麼?

function sayHi() {
  console.log(name);
  console.log(age);
  var name = "Lydia";
  let age = 21;
}

sayHi();

答案: D

在函數中,我們首先使用var關鍵字聲明了name變量。 這意味著變量在創建階段會被提升(JavaScript會在創建變量創建階段為其分配內存空間),默認值為undefined,直到我們實際執行到使用該變量的行。 我們還沒有為name變量賦值,所以它仍然保持undefined的值。

使用let關鍵字(和const)聲明的變量也會存在變量提升,但與var不同,初始化沒有被提升。 在我們聲明(初始化)它們之前,它們是不可訪問的。 這被稱為「暫時死區」。 當我們在聲明變量之前嘗試訪問變量時,JavaScript會拋出一個ReferenceError。

譯者註:

關於let的是否存在變量提升,我們何以用下面的例子來驗證:

let name = 'ConardLi'
{
  console.log(name) // Uncaught ReferenceError: name is not defined
  let name = 'code秘密花園'
}

let變量如果不存在變量提升,console.log(name)就會輸出ConardLi,結果卻拋出了ReferenceError,那麼這很好的說明了,let也存在變量提升,但是它存在一個「暫時死區」,在變量未初始化或賦值前不允許訪問。

變量的賦值可以分為三個階段:

創建變量,在內存中開闢空間

初始化變量,將變量初始化為undefined

真正賦值

關於let、var和function:

2. 下面代碼的輸出是什麼?

for (var i = 0; i < 3; i++) {
  setTimeout(() => console.log(i), 1);
}

for (let i = 0; i < 3; i++) {
  setTimeout(() => console.log(i), 1);
}

A: 0 1 2 and 0 1 2

B: 0 1 2 and 3 3 3

C: 3 3 3 and 0 1 2

答案: C

由於JavaScript中的事件執行機制,setTimeout函數真正被執行時,循環已經走完。 由於第一個循環中的變量i是使用var關鍵字聲明的,因此該值是全局的。 在循環期間,我們每次使用一元運算符++都會將i的值增加1。 因此在第一個例子中,當調用setTimeout函數時,i已經被賦值為3。

在第二個循環中,使用let關鍵字聲明變量i:使用let(和const)關鍵字聲明的變量是具有塊作用域的(塊是{}之間的任何東西)。 在每次迭代期間,i將被創建為一個新值,並且每個值都會存在於循環內的塊級作用域。

3. 下面代碼的輸出是什麼?

const shape = {
  radius: 10,
  diameter() {
    return this.radius * 2;
  },
  perimeter: () => 2 * Math.PI * this.radius
};

shape.diameter();
shape.perimeter();

答案: B

請注意,diameter是普通函數,而perimeter是箭頭函數。

對於箭頭函數,this關鍵字指向是它所在上下文(定義時的位置)的環境,與普通函數不同! 這意味著當我們調用perimeter時,它不是指向shape對象,而是指其定義時的環境(window)。沒有值radius屬性,返回undefined。

4. 下面代碼的輸出是什麼?

+true;
!"Lydia";

A: 1 and false

B: false and NaN

C: false and false

答案: A

一元加號會嘗試將boolean類型轉換為數字類型。 true被轉換為1,false被轉換為0。

字符串'Lydia'是一個真值。 我們實際上要問的是「這個真值是假的嗎?」。 這會返回false。

5. 哪個選項是不正確的?

const bird = {
  size: "small"
};

const mouse = {
  name: "Mickey",
  small: true
};

A: mouse.bird.size

B: mouse[bird.size]

C: mouse[bird["size"]]

D: All of them are valid

答案: A

在JavaScript中,所有對象鍵都是字符串(除了Symbol)。儘管有時我們可能不會給定字符串類型,但它們總是被轉換為字符串。

JavaScript解釋語句。當我們使用方括號表示法時,它會看到第一個左括號[,然後繼續,直到找到右括號]。只有在那個時候,它才會對這個語句求值。

mouse [bird.size]:首先它會對bird.size求值,得到small。 mouse [「small」]返回true。

但是,使用點表示法,這不會發生。 mouse沒有名為bird的鍵,這意味著mouse.bird是undefined。 然後,我們使用點符號來詢問size:mouse.bird.size。 由於mouse.bird是undefined,我們實際上是在詢問undefined.size。 這是無效的,並將拋出Cannot read property "size" of undefined。

6. 下面代碼的輸出是什麼?

let c = { greeting: "Hey!" };
let d;

d = c;
c.greeting = "Hello";
console.log(d.greeting);

A: Hello

B: undefined

C: ReferenceError

D: TypeError

答案: A

在JavaScript中,當設置它們彼此相等時,所有對象都通過引用進行交互。

首先,變量c為對象保存一個值。 之後,我們將d指定為c與對象相同的引用。

更改一個對象時,可以更改所有對象。

7. 下面代碼的輸出是什麼?

let a = 3;
let b = new Number(3);
let c = 3;

console.log(a == b);
console.log(a === b);
console.log(b === c);

A: true false true

B: false false true

C: true false false

D: false true true

答案: C

new Number()是一個內置的函數構造函數。 雖然它看起來像一個數字,但它並不是一個真正的數字:它有一堆額外的功能,是一個對象。

當我們使用==運算符時,它只檢查它是否具有相同的值。 他們都有3的值,所以它返回true。

譯者註:==會引發隱式類型轉換,右側的對象類型會自動拆箱為Number類型。

然而,當我們使用===操作符時,類型和值都需要相等,new Number()不是一個數字,是一個對象類型。兩者都返回 false。

8. 下面代碼的輸出是什麼?

class Chameleon {
  static colorChange(newColor) {
    this.newColor = newColor;
  }

  constructor({ newColor = "green" } = {}) {
    this.newColor = newColor;
  }
}

const freddie = new Chameleon({ newColor: "purple" });
freddie.colorChange("orange");

A: orange

B: purple

C: green

D: TypeError

答案: D

colorChange方法是靜態的。 靜態方法僅在創建它們的構造函數中存在,並且不能傳遞給任何子級。 由於freddie是一個子級對象,函數不會傳遞,所以在freddie實例上不存在freddie方法:拋出TypeError。

9. 下面代碼的輸出是什麼?

let greeting;
greetign = {}; // Typo!
console.log(greetign);

答案: A

控制臺會輸出空對象,因為我們剛剛在全局對象上創建了一個空對象! 當我們錯誤地將greeting輸入為greetign時,JS解釋器實際上在瀏覽器中將其視為global.greetign = {}(或window.greetign = {})。

為了避免這種情況,我們可以使用「use strict」。 這可以確保在將變量賦值之前必須聲明變量。

10. 當我們這樣做時會發生什麼?

function bark() {
  console.log("Woof!");
}

bark.animal = "dog";

答案: A

這在JavaScript中是可能的,因為函數也是對象!(原始類型之外的所有東西都是對象)

函數是一種特殊類型的對象。您自己編寫的代碼並不是實際的函數。 該函數是具有屬性的對象,此屬性是可調用的。

11. 下面代碼的輸出是什麼?

function Person(firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}

const member = new Person("Lydia", "Hallie");
Person.getFullName = () => this.firstName + this.lastName;

console.log(member.getFullName());

A: TypeError

B: SyntaxError

C: Lydia Hallie

D: undefined undefined

答案: A

您不能像使用常規對象那樣向構造函數添加屬性。 如果要一次向所有對象添加功能,則必須使用原型。 所以在這種情況下應該這樣寫:

Person.prototype.getFullName = function () {
  return `${this.firstName} ${this.lastName}`;
}

這樣會使member.getFullName()是可用的,為什麼樣做是對的? 假設我們將此方法添加到構造函數本身。 也許不是每個Person實例都需要這種方法。這會浪費大量內存空間,因為它們仍然具有該屬性,這佔用了每個實例的內存空間。 相反,如果我們只將它添加到原型中,我們只需將它放在內存中的一個位置,但它們都可以訪問它!

12. 下面代碼的輸出是什麼?

function Person(firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}

const lydia = new Person("Lydia", "Hallie");
const sarah = Person("Sarah", "Smith");

console.log(lydia);
console.log(sarah);

A: Person {firstName: "Lydia", lastName: "Hallie"} and undefined

B: Person {firstName: "Lydia", lastName: "Hallie"} and Person {firstName: "Sarah", lastName: "Smith"}

C: Person {firstName: "Lydia", lastName: "Hallie"} and {}

D:Person {firstName: "Lydia", lastName: "Hallie"} and ReferenceError

答案: A

對於sarah,我們沒有使用new關鍵字。 使用new時,它指的是我們創建的新空對象。 但是,如果你不添加new它指的是全局對象!

我們指定了this.firstName等於'Sarah和this.lastName等於Smith。 我們實際做的是定義global.firstName ='Sarah'和global.lastName ='Smith。 sarah本身的返回值是undefined。

12. 事件傳播的三個階段是什麼??

A: 目標 > 捕獲 > 冒泡

B: 冒泡 > 目標 > 捕獲

C: 目標 > 冒泡 > 捕獲

D: 捕獲 > 目標 > 冒泡

答案: D

在捕獲階段,事件通過父元素向下傳遞到目標元素。 然後它到達目標元素,冒泡開始。

13. 所有對象都有原型.答案: B

基礎對象外,所有對象都有原型。 基礎對象可以訪問某些方法和屬性,例如.toString。 這就是您可以使用內置JavaScript方法的原因! 所有這些方法都可以在原型上找到。 雖然JavaScript無法直接在您的對象上找到它,但它會沿著原型鏈向下尋找並在那裡找到它,這使您可以訪問它。

譯者註:基礎對象指原型鏈終點的對象。基礎對象的原型是null。

14. 下面代碼的輸出是什麼?

function sum(a, b) {
  return a + b;
}

sum(1, "2");

A: NaN

B: TypeError

C: "12"

D: 3

答案: C

JavaScript是一種動態類型語言:我們沒有指定某些變量的類型。 在您不知情的情況下,值可以自動轉換為另一種類型,稱為隱式類型轉換。 強制從一種類型轉換為另一種類型。

在此示例中,JavaScript將數字1轉換為字符串,以使函數有意義並返回值。 在讓數字類型(1)和字符串類型('2')相加時,該數字被視為字符串。 我們可以連接像「Hello」+「World」這樣的字符串,所以這裡發生的是「1」+「2」返回「12」。

15. 下面代碼的輸出是什麼?

let number = 0;
console.log(number++);
console.log(++number);
console.log(number);

A: 1 1 2

B: 1 2 2

C: 0 2 2

D: 0 1 2

答案: C

後綴一元運算符++:

返回值(返回0)

增加值(數字現在是1)

前綴一元運算符++:

增加值(數字現在是2)

返回值(返回2)

所以返回0 2 2。

16. 下面代碼的輸出是什麼?

function getPersonInfo(one, two, three) {
  console.log(one);
  console.log(two);
  console.log(three);
}

const person = "Lydia";
const age = 21;

getPersonInfo`${person} is ${age} years old`;

A: Lydia 21 ["", "is", "years old"]

B: ["", "is", "years old"] Lydia 21

C: Lydia ["", "is", "years old"] 21

答案: B

如果使用標記的模板字符串,則第一個參數的值始終是字符串值的數組。 其餘參數獲取傳遞到模板字符串中的表達式的值!

17. 下面代碼的輸出是什麼?

function checkAge(data) {
  if (data === { age: 18 }) {
    console.log("You are an adult!");
  } else if (data == { age: 18 }) {
    console.log("You are still an adult.");
  } else {
    console.log(`Hmm.. You don't have an age I guess`);
  }
}

checkAge({ age: 18 });

答案: C

在比較相等性,原始類型通過它們的值進行比較,而對象通過它們的引用進行比較。JavaScript檢查對象是否具有對內存中相同位置的引用。

我們作為參數傳遞的對象和我們用於檢查相等性的對象在內存中位於不同位置,所以它們的引用是不同的。

這就是為什麼{ age: 18 } === { age: 18 }和 { age: 18 } == { age: 18 } 返回 false的原因。

18. 下面代碼的輸出是什麼?

function getAge(...args) {
  console.log(typeof args);
}

getAge(21);

A: "number"

B: "array"

C: "object"

D: "NaN"

答案: C

擴展運算符(... args)返回一個帶參數的數組。 數組是一個對象,因此typeof args返回object。

20. 下面代碼的輸出是什麼?

function getAge() {
  "use strict";
  age = 21;
  console.log(age);
}

getAge();

A: 21

B: undefined

C: ReferenceError

D: TypeError

答案: C

使用「use strict」,可以確保不會意外地聲明全局變量。 我們從未聲明變量age,因為我們使用`use strict',它會引發一個ReferenceError。 如果我們不使用「use strict」,它就會起作用,因為屬性age會被添加到全局對象中。

21. 下面代碼的輸出是什麼?

const sum = eval("10*10+5");

A: 105

B: "105"

C: TypeError

D: "10*10+5"

答案: A

eval會為字符串傳遞的代碼求值。 如果它是一個表達式,就像在這種情況下一樣,它會計算表達式。 表達式為10 * 10 + 5計算得到105。

22. cool_secret可以訪問多長時間?

sessionStorage.setItem("cool_secret", 123);

A:永遠,數據不會丟失。

B:用戶關閉選項卡時。

C:當用戶關閉整個瀏覽器時,不僅是選項卡。

D:用戶關閉計算機時。

答案: B

關閉選項卡後,將刪除存儲在sessionStorage中的數據。

如果使用localStorage,數據將永遠存在,除非例如調用localStorage.clear()。

23. 下面代碼的輸出是什麼?

var num = 8;
var num = 10;

console.log(num);

A: 8

B: 10

C: SyntaxError

D: ReferenceError

答案: B

使用var關鍵字,您可以用相同的名稱聲明多個變量。然後變量將保存最新的值。

您不能使用let或const來實現這一點,因為它們是塊作用域的。

24. 下面代碼的輸出是什麼?

const obj = { 1: "a", 2: "b", 3: "c" };
const set = new Set([1, 2, 3, 4, 5]);

obj.hasOwnProperty("1");
obj.hasOwnProperty(1);
set.has("1");
set.has(1);

A: false true false true

B: false true true true

C: true true false true

D: true true true true

答案: C

所有對象鍵(不包括Symbols)都會被存儲為字符串,即使你沒有給定字符串類型的鍵。 這就是為什麼obj.hasOwnProperty('1')也返回true。

上面的說法不適用於Set。 在我們的Set中沒有「1」:set.has('1')返回false。 它有數字類型1,set.has(1)返回true。

25. 下面代碼的輸出是什麼?

const obj = { a: "one", b: "two", a: "three" };
console.log(obj);

A: { a: "one", b: "two" }

B: { b: "two", a: "three" }

C: { a: "three", b: "two" }

D: SyntaxError

答案: C

如果對象有兩個具有相同名稱的鍵,則將替前面的鍵。它仍將處於第一個位置,但具有最後指定的值。

26. JavaScript全局執行上下文為你創建了兩個東西:全局對象和this關鍵字.答案: A

基本執行上下文是全局執行上下文:它是代碼中隨處可訪問的內容。

27. 下面代碼的輸出是什麼?

for (let i = 1; i < 5; i++) {
  if (i === 3) continue;
  console.log(i);
}

A: 1 2

B: 1 2 3

C: 1 2 4

D: 1 3 4

答案: C

如果某個條件返回true,則continue語句跳過迭代。

28. 下面代碼的輸出是什麼?

String.prototype.giveLydiaPizza = () => {
  return "Just give Lydia pizza already!";
};

const name = "Lydia";

name.giveLydiaPizza();

答案: A

String是一個內置的構造函數,我們可以為它添加屬性。 我剛給它的原型添加了一個方法。 原始類型的字符串自動轉換為字符串對象,由字符串原型函數生成。 因此,所有字符串(字符串對象)都可以訪問該方法!

譯者註:

當使用基本類型的字符串調用giveLydiaPizza時,實際上發生了下面的過程:

創建一個String的包裝類型實例

在實例上調用substring方法

銷毀實例

29. 下面代碼的輸出是什麼?

const a = {};
const b = { key: "b" };
const c = { key: "c" };

a[b] = 123;
a[c] = 456;

console.log(a[b]);

A: 123

B: 456

C: undefined

D: ReferenceError

答案: B

對象鍵自動轉換為字符串。我們試圖將一個對象設置為對象a的鍵,其值為123。

但是,當對象自動轉換為字符串化時,它變成了[Object object]。 所以我們在這裡說的是a["Object object"] = 123。 然後,我們可以嘗試再次做同樣的事情。 c對象同樣會發生隱式類型轉換。那麼,a["Object object"] = 456。

然後,我們列印a[b],它實際上是a["Object object"]。 我們將其設置為456,因此返回456。

30. 下面代碼的輸出是什麼?

const foo = () => console.log("First");
const bar = () => setTimeout(() => console.log("Second"));
const baz = () => console.log("Third");

bar();
foo();
baz();

A: First Second Third

B: First Third Second

C: Second First Third

D: Second Third First

答案: B

我們有一個setTimeout函數並首先調用它。 然而卻最後列印了它。

這是因為在瀏覽器中,我們不只有運行時引擎,我們還有一個叫做WebAPI的東西。WebAPI為我們提供了setTimeout函數,例如DOM。

將callback推送到WebAPI後,setTimeout函數本身(但不是回調!)從堆棧中彈出。

現在,調用foo,並列印First。

foo從堆棧彈出,baz被調用,並列印Third。

WebAPI不能只是在準備就緒時將內容添加到堆棧中。 相反,它將回調函數推送到一個稱為任務隊列的東西。

這是事件循環開始工作的地方。 事件循環查看堆棧和任務隊列。 如果堆棧為空,則會佔用隊列中的第一個內容並將其推送到堆棧中。

bar被調用,Second被列印,它從棧中彈出。

31. 單擊按鈕時event.target是什麼?

<div onclick="console.log('first div')">
  <div onclick="console.log('second div')">
    <button onclick="console.log('button')">
      Click!
    </button>
  </div>
</div>

A: div外部

B: div內部

C: button

D: 所有嵌套元素的數組.

答案: C

導致事件的最深嵌套元素是事件的目標。 你可以通過event.stopPropagation停止冒泡

32. 單擊下面的html片段列印的內容是什麼?

<div onclick="console.log('div')">
  <p onclick="console.log('p')">
    Click here!

</div>

A: p div

B: div p

C: p

D: div

答案: A

如果我們單擊p,我們會看到兩個日誌:p和div。在事件傳播期間,有三個階段:捕獲,目標和冒泡。 默認情況下,事件處理程序在冒泡階段執行(除非您將useCapture設置為true)。 它從最深的嵌套元素向外延伸。

33. 下面代碼的輸出是什麼?

const person = { name: "Lydia" };

function sayHi(age) {
  console.log(`${this.name} is ${age}`);
}

sayHi.call(person, 21);
sayHi.bind(person, 21);

答案: D

使用兩者,我們可以傳遞我們想要this關鍵字引用的對象。 但是,.call方法會立即執行!

.bind方法會返回函數的拷貝值,但帶有綁定的上下文! 它不會立即執行。

34. 下面代碼的輸出是什麼?

function sayHi() {
  return (() => 0)();
}

typeof sayHi();

A: "object"

B: "number"

C: "function"

D: "undefined"

答案: B

sayHi函數返回立即調用的函數(IIFE)的返回值。 該函數返回0,類型為數字。

僅供參考:只有7種內置類型:null,undefined,boolean,number,string,object和symbol。 function不是一個類型,因為函數是對象,它的類型是object。

35. 下面這些值哪些是假值?

0;
new Number(0);
("");
(" ");
new Boolean(false);
undefined;

A: 0, '', undefined

B: 0, new Number(0), '', new Boolean(false), undefined

C: 0, '', new Boolean(false), undefined

D: 所有都是假值

答案: A

JavaScript中只有6個假值:

undefined

null

NaN

0

'' (empty string)

false

函數構造函數,如new Number和new Boolean都是真值。

36. 下面代碼的輸出是什麼?

console.log(typeof typeof 1);

A: "number"

B: "string"

C: "object"

D: "undefined"

答案: B

typeof 1 返回 "number".
typeof "number" 返回 "string"

37. 下面代碼的輸出是什麼?

const numbers = [1, 2, 3];
numbers[10] = 11;
console.log(numbers);

A: [1, 2, 3, 7 x null, 11]

B: [1, 2, 3, 11]

C: [1, 2, 3, 7 x empty, 11]

D: SyntaxError

答案: C

When you set a value to an element in an array that exceeds the length of the array, JavaScript creates something called "empty slots". These actually have the value of undefined, but you will see something like:

當你為數組中的元素設置一個超過數組長度的值時,JavaScript會創建一個名為「空插槽」的東西。 這些位置的值實際上是undefined,但你會看到類似的東西:

[1, 2, 3, 7 x empty, 11]

這取決於你運行它的位置(每個瀏覽器有可能不同)。

38. 下面代碼的輸出是什麼?

(() => {
  let x, y;
  try {
    throw new Error();
  } catch (x) {
    (x = 1), (y = 2);
    console.log(x);
  }
  console.log(x);
  console.log(y);
})();

答案: A

catch塊接收參數x。當我們傳遞參數時,這與變量的x不同。這個變量x是屬於catch作用域的。

之後,我們將這個塊級作用域的變量設置為1,並設置變量y的值。 現在,我們列印塊級作用域的變量x,它等於1。

在catch塊之外,x仍然是undefined,而y是2。 當我們想在catch塊之外的console.log(x)時,它返回undefined,而y返回2。

39. JavaScript中的所有內容都是…

A:原始或對象

B:函數或對象

C:技巧問題!只有對象

D:數字或對象

答案: A

JavaScript只有原始類型和對象。

原始類型是boolean,null,undefined,bigint,number,string和symbol。

40. 下面代碼的輸出是什麼?

[[0, 1], [2, 3]].reduce(
  (acc, cur) => {
    return acc.concat(cur);
  },
  [1, 2]
);

A: [0, 1, 2, 3, 1, 2]

B: [6, 1, 2]

C: [1, 2, 0, 1, 2, 3]

D: [1, 2, 6]

答案: C

[1,2]是我們的初始值。 這是我們開始執行reduce函數的初始值,以及第一個acc的值。 在第一輪中,acc是[1,2],cur是[0,1]。 我們將它們連接起來,結果是[1,2,0,1]。

然後,acc的值為[1,2,0,1],cur的值為[2,3]。 我們將它們連接起來,得到[1,2,0,1,2,3]。

41. 下面代碼的輸出是什麼?

!!null;
!!"";
!!1;

A: false true false

B: false false true

C: false true true

D: true true false

答案: B

null是假值。 !null返回true。 !true返回false。

""是假值。 !""返回true。 !true返回false。

1是真值。 !1返回false。 !false返回true。

42. `setInterval`方法的返回值什麼?

setInterval(() => console.log("Hi"), 1000);

A:一個唯一的id

B:指定的毫秒數

C:傳遞的函數

D:undefined

答案: A

它返回一個唯一的id。 此id可用於使用clearInterval()函數清除該定時器。

43. What does this return?

[..."Lydia"];

A: ["L", "y", "d", "i", "a"]

B: ["Lydia"]

C: [[], "Lydia"]

D: [["L", "y", "d", "i", "a"]]

答案: A

字符串是可迭代的。 擴展運算符將迭代的每個字符映射到一個元素。

相關焦點

  • 你應該知道25道JavaScript面試題
    這題可以參考我以前的文章 湯姆大叔的6道javascript編程題題解 中的最後一題,理論上此題更簡單,因為它沒要求能擴展(比如 sum(2)(3)(4)),甚至可以這樣:function sum(x) { if (arguments.length == 2) { return arguments[0] + arguments[1];
  • 長達兩個月的面經,50道python開發常見基礎面試題!
    轉眼已經5月份,學員們經過三金四銀求職季積累了大量的面經,在小U的反覆催促下終於讓python將這兩個月面試常見題整理下來,不要以為你記憶力很好,這道題太奇葩了你絕對不會忘,事實證明記憶力是靠不住,話不多說來看看學員們整理的python面試題!小U 還會不斷催促學員們將新遇到的問題記錄下來。
  • 40道+JavaScript基礎面試題(附答案
    關注前端潮咖,每日精選好文潮前端的面試題系列已經開始發布了!
  • 「Spring 全家桶」70 道高頻面試題
    」的題目外,剩下針對實際工作的題目就屬於真正的本事了,熱門技術的細節和難點成為了面試時主要考察的內容。這裡說「天方夜譚」並不是說算法沒用,不切實際,而是想說算法平時其實很少用到,甚至面試官都對自己出的算法題一知半解。這裡總結了 70 道 Spring 相關面試題,有的很基礎,有的很細節,大家可以評估一下自己掌握的情況。
  • 2020山東事業單位面試熱點題100道
    您現在的位置:首頁 > 事業單位 > 閱讀資料 > 面試 > 2020山東事業單位面試熱點題100道 2019-12-27 11:43:15| 來源:山東中公教育
  • iOS 面試之道:117 道 iOS 面試題全解析
    因為這一系列的因素,促使我有強烈願望改變技術書出版流程和售賣方式,大致七八個月前道長和巧哥跟我聊到計劃從面試的角度寫一本系統的 iOS 技術書籍時候,我們一拍即合,有了今天的這次合作。好了,接下來該認真聊下今天的主角《iOS 面試之道》了。
  • 這10個JavaScript面試題,看看你會幾個?
    英文| https://medium.com/javascript-in-plain-english/10-javascript-interview-questions-for
  • 你必須要知道的JavaScript數據結構與面試題解答
    JavaScript中的數據結構:面試複習(地址:https://www.educative.io/courses/data-structures-in-javascript-an-interview-refresher)對於許多開發人員和程式設計師而言,數據結構對於破解編程面試至關重要。有關數據結構的問題是現代編程開發面試中的基礎。實際上,對於你的應聘能力和入門級職位,有很多話要說。
  • 7 個沙雕又帶有陷阱的 JS 面試題
    在 JS 面試中,經常會看到一些簡單而又沙雕的題目,這些題目包含一些陷阱,但這些在我們規範的編碼下或者業務中基本不會出現。有些面試官就是這樣,不專注於制定代碼的標準和規範上,卻用不規範的代碼去檢驗別人是否細心。這魔幻的世界就是一個攀比優越感的,我能考你,我就是比你優越,真實。來看看這 7 個沙雕題目是哪些。1.
  • 2020河北省考面試幾道題
    2020河北省考面試幾道題?2020河北省考查詢入口已經開放,現在面試無疑牽動著每一名考生的心,已經有很多考生詢問面試相關問題,為了幫助各位考生備考面試,衡水人事考試網特整理河北公務員面試相關資訊,供各位考生參考。
  • 答對這40道經典web前端面試題,想不拿到offer都難!
    想成功就業web前端工程師,想要能高薪就業,那麼除了好的web前端技能以外,還得有好的面試技巧,如果提前就了解更多企業的面試要求及面試題目,那麼可以讓我們的面試成功的機率大大的提高。今天小編就整理了一些經典的web前端面試題,希望可以祝大家一臂之力。一、HTML常見題目01、Doctype作用?嚴格模式與混雜模式如何區分?它們有何意義?02、HTML5為什麼只需要寫?
  • Python爬蟲基礎:常用HTML標籤和Javascript入門
    1  HTML基礎大部分HTML標籤是閉合的,由開始標籤和結束標籤構成
  • 2019 最新 200 道 Java 面試題
    ,我做了大量的「功課」,首先我研究了幾乎所有大廠的面試題,還和負責招聘工作的幾個朋友,詳細的探討了 Java 面試所要涉及的知識點,於是就有了今天大家看到的這 200 多道面試題。原因二:節省招聘雙方彼此的時間,有些來公司面試人,無論是有幾年工作經驗的還是剛畢業的,就連這些最基礎的面試題都搞不定,這確實讓人很遺憾。常言道「一屋不掃何以掃天下」,也是同樣的道理,如果連基礎的概念都搞不明白,又怎麼讓面試官相信你能寫出高質量的程序呢?與其浪費彼此的時間,還不如花點時間把自己的基礎知識掌握牢固。
  • 40道+JavaScript基礎面試題(附答案)
    javascript 代碼中的"use strict";是什麼意思 ? 使用它區別是什麼?除了正常模式運行外,ECMAscript添加了第二種運行模式:「嚴格模式」。
  • 50道JavaScript基礎面試題(附答案)
    18 javascript 代碼中的"use strict";是什麼意思 ? 使用它區別是什麼?
  • 挑戰小學數學壓軸題:1道題檢驗學生數學思維能力,建議家長收藏
    在這個階段,小學生會學習到一些基礎的數學知識,例如,數字、單位、長度、圖形等等。相對來說,這個階段的知識點並不是很難理解,絕大多數小學生學起來比較的輕鬆,然而,真正到了解決數學題的時候,往往卻並不是那麼簡單。相信不少家長和學生都有過這樣的感受:明明課本上的內容都會,但是一到解答數學題的時候卻不知道該如何下手。
  • jQuery經典面試題及答案精選
    本文整理了一些關於jQuery的經典面試題及答案,分享給正要面試Web開發崗位的同學。問題:jQuery的美元符號$有什麼作用?回答:這正是jQuery選擇器上場的時候了,代碼如下:<script language="javascript" type="text/javascript"> $("*").css("border", "2px dotted red"); </script>
  • JavaScript 基礎語法
    5 變量(標識符)6 JavaScript基本數據類型7 課程小結8 課後練習1 回顧JavaScript的基本組成JavaScript = ECMAScript + DOM + BOM;今天我們要講解的就是ECMAScript中的部分基礎語法
  • 500道Java 必備面試題答案(過後即刪)
    其實,很多面試者在搜集面試資料的時候都踩過一些「坑」,你是不是也遇到過:免費搜索的面試題,內容不全面,這就算了,有時候答案都不準確;很多培訓機構提供的面試寶典內容雖然不少,但深度不夠,且面試題過於老舊脫離了企業實際需要;還有很多付費的面試題存在濫竽充數,提供了很多沒有價值的面試題,錢花了,乾貨沒學到;
  • 北大校長實名推薦複試 基礎面試沒有英文題
    整個面試仍延續去年的方式,分為學科基礎面試、綜合面試及體質測試,部分學生還要隨機抽查筆試。  不同的是,這次學科基礎面試未用英文題。記者查詢發現,北京已有中國人民大學附屬中學、景山學校等7所中學的18名學生被推薦。  部分學生隨機抽查筆試  昨日7時30分許,有考生集體走入北京大學文史樓,迎接2014年「校長推薦制」複試。