Rumah > hujung hadapan web > tutorial js > Kongsi 12 soalan temu bual untuk mengetahui sama ada anda memahami JavaScript!

Kongsi 12 soalan temu bual untuk mengetahui sama ada anda memahami JavaScript!

青灯夜游
Lepaskan: 2022-09-15 13:02:21
ke hadapan
1793 orang telah melayarinya

Adakah anda tahu JavaScript? Artikel berikut akan berkongsi dengan anda 12 soalan temuduga JavaScript Cuba 12 soalan temuduga ini dan lihat jika anda boleh menjawab semuanya dengan betul.

Kongsi 12 soalan temu bual untuk mengetahui sama ada anda memahami JavaScript!

JavaScript ialah teknologi asas yang harus dikuasai oleh setiap pembangun bahagian hadapan, tetapi sering kali, anda mungkin tidak memahami JavaScript sepenuhnya.

Terdapat dua cara yang sangat mudah untuk menguji tahap teknikal seseorang, melihat kod yang dia tulis atau biarkan dia melihat kod yang ditulis oleh orang lain.

Saya telah meringkaskan beberapa soalan kod yang boleh menguji pemahaman anda tentang JavaScript Anda boleh mencubanya dan lihat jika anda boleh menjawab semuanya dengan betul. Jika anda menjawab semua soalan dengan betul, anda akan dianggap mengetahui beberapa JavaScript.

Soalan 1

Cuba teka outputnya:

const person = { name: '代码与野兽' }
Object.defineProperty(person, 'age', { value: 18 })

console.log(person.age)
console.log(Object.keys(person))
Salin selepas log masuk

Output:

18
['name']
Salin selepas log masuk

Analisis:
Ramai orang cenderung tersilap output kedua kerana sifat yang ditakrifkan menggunakan defineProperty tidak boleh dikira secara lalai.

Soalan kedua

Cuba teka outputnya:

const name = '代码与野兽'
age = 18

console.log(delete name)
console.log(delete age)
console.log(typeof age)
Salin selepas log masuk

Output:

false
true
"undefined"
Salin selepas log masuk

Analisis:
Salah pertama adalah kerana padam hanya boleh memadamkan atribut pada objek, dan nama bukan atribut, jadi pemadaman gagal.
Yang kedua benar adalah kerana kami tidak menggunakan sebarang pengisytiharan untuk mencipta pembolehubah Ia akan dianggap sebagai pembolehubah global dan dipasang pada objek tetingkap, yang bersamaan dengan memadamkan window.age, jadi pemadaman berjaya.
Yang ketiga tidak ditentukan adalah kerana umur telah dipadamkan.

Soalan 3

Cuba teka outputnya:

let person = { name: '代码与野兽' }
const members = [person]
person = null
console.log(members)
Salin selepas log masuk

Output:

[{
  name: "代码与野兽"
}]
Salin selepas log masuk

Analisis:
Ramai orang akan berfikir bahawa hasil output sepatutnya [null], tetapi kami hanya menetapkan rujukan baharu kepada pembolehubah orang, dan rujukan sebelumnya masih dalam ahli.
Ringkasnya, { name: 'Code and Beast' } Objek ini wujud dalam ruang ingatan tertentu, dengan mengandaikan alamatnya ialah X201. Logiknya lebih kurang seperti berikut:

let person = X201
const members = [X201]
persion = null
Salin selepas log masuk

Soalan 4

Cubalah teka outputnya:

function SuperHero() {
  this.make = '代码与野兽'
  return { make: '野兽与代码'}
}

const mySuperhero = new SuperHero()
console.log(mySuperhero)
Salin selepas log masuk

Output:

{
  make: "野兽与代码"
}
Salin selepas log masuk

Parsing:
Jika pembina akhirnya mengembalikan objek, semua sifat yang ditetapkan sebelum ini akan menjadi tidak sah.

Soalan 5

Cuba teka outputnya:

const name = '代码与野兽'
console.log(name.padStart(14))
console.log(name.padStart(2))
Salin selepas log masuk

Output:

"         代码与野兽"
"代码与野兽"
Salin selepas log masuk

Penghuraian:
Kaedah padStart boleh mengisi ruang pada permulaan rentetan.
Parameter ialah jumlah panjang rentetan baharu Jika panjang ini lebih pendek daripada panjang rentetan asal, ia tidak akan berlapik.

Soalan 6

Cuba teka outputnya:

console.log(parseInt("7"))
console.log(parseInt("7*6"))
console.log(parseInt("7Din"))
Salin selepas log masuk

Output:

7
7
7
Salin selepas log masuk

Penghuraian:
Jika parameter parseInt ialah gabungan rentetan dan nombor, maka ia akan menyemak dari awal sehingga ia mencecah kedudukan di mana jenis data salah, jika ia sebelum kedudukan di mana jenis data salah adalah nombor yang sah, ia akan mengembalikan nombor tersebut.

Soalan 7

Cuba teka outputnya:

[1, 2, 3, 4].reduce((x, y) => console.log(x, y))
Salin selepas log masuk

Output:

1
2
undefined
3
undefined
4
Salin selepas log masuk

Analisis:
Jika kita tidak melepasi nilai awal untuk mengurangkan, maka x akan menjadi nilai pertama tatasusunan dan y akan menjadi nilai kedua tatasusunan.

Soalan 8

Cuba teka outputnya:

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

const superHero = '代码与野兽'
const age = 1000

getUserInfo`${superHero} 是 ${age} 岁`
getUserInfo`hello`
Salin selepas log masuk

Output:

["", " 是 ", " 岁"]
"代码与野兽"
1000
["hello"]
undefined
undefined
Salin selepas log masuk

Analisis:
Apabila kami menggunakan sintaks rentetan templat untuk memanggil fungsi, parameter pertama sentiasa tatasusunan rentetan berpecah. Parameter selebihnya ialah nilai ungkapan templat.

Soalan 9

Cuba teka outputnya:

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

Output:

1
undefined
2
Salin selepas log masuk

Analisis:
Apabila mengakses x dalam tangkapan, parameter diakses, bukan pembolehubah luaran x.

Soalan 10

Cuba teka outputnya:

class Clazz {}

console.log(typeof Clazz)
Salin selepas log masuk

Output:

"function"
Salin selepas log masuk

解析:
在 JavaScript 中,Class 也是 function。

第十一题

尝试推测它的输出:

const arr = [7, 1, 4, 3, 2];
for (const elem of arr) {
  setTimeout(() => console.log(elem), elem);
}
Salin selepas log masuk

输出:

1
2
3
4
7
Salin selepas log masuk

解析:
没什么好解释的......

第十二题

尝试推测它的输出:

const foo = { bar: 1 };
with(foo) {
  var bar = 2
};
console.log(foo.bar);
Salin selepas log masuk

输出:

2
Salin selepas log masuk

解析:

with 的对象会作为 global 对象。在 with 使用 var 等价于 window.[xxx]。而这时 foo 就是那个 window。

【相关推荐:javascript学习教程

Atas ialah kandungan terperinci Kongsi 12 soalan temu bual untuk mengetahui sama ada anda memahami JavaScript!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:juejin.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan