Tolong jangan menipu ?
Konsep dalam soalan ini adalah yang saya temui dalam kod pengeluaran. Matlamat kuiz ini adalah untuk menguji pengetahuan JavaScript yang relevan dan penting.
Apakah yang akan dilog ke konsol?
const user = { name: "Alice", isBanned: false, pricing: 'premium', isSubscribedTo: function(channel) { return channel === "JavaScript"; }, getName: function() { return this.name; }, getStatus: function() { const status = () => { return `Name: ${this.getName()}, Banned: ${this.isBanned}`; }; return status(); } }; const channel = "JavaScript"; const getName = user.getName; const getStatus = user.getStatus; console.log(user.getStatus()); console.log(getName()); console.log(getStatus());
Jawapan:
Apakah yang akan dilog ke konsol?
function createCounter() { let count = 0; return function() { count++; console.log(count); } } const counter1 = createCounter(); const counter2 = createCounter(); counter1(); counter1(); counter2();
Jawapan:
Apakah yang akan dilog ke konsol?
console.log('Start'); setTimeout(() => console.log('Timeout 1'), 0); Promise.resolve().then(() => console.log('Promise 1')); setTimeout(() => console.log('Timeout 2'), 0); Promise.resolve().then(() => console.log('Promise 2')); console.log('End')
Jawapan:
Apakah yang akan dilog ke konsol?
function Animal(name) { this.name = name; } Dog.prototype.speak = function() { console.log(`${this.name} makes a sound.`); } function Dog(name) { Animal.call(this, name); } Dog.prototype.constructor = Dog; const dog = new Dog('Rex'); dog.speak(); console.log(dog instanceof Dog); console.log(dog instanceof Animal);
Apakah yang akan dilog untuk setiap panggilan?
function displayUserInfo({ name = "Guest", role = "User" } = {}) { console.log(`Name: ${name}, Role: ${role}`); } displayUserInfo(); displayUserInfo({}); displayUserInfo({ name: "Alice" }); displayUserInfo(null);
Apakah yang akan dilog ke konsol?
const funcs = []; for (var i = 0; i < 3; i++) { funcs.push(function() { console.log(i); }); } for (let j = 0; j < 3; j++) { funcs.push(function() { console.log(j); }); } funcs.forEach(func => func());
document.body.innerHTML = ` <div id="outer"> Outer <div id="middle"> Middle <button id="inner">Inner</button> </div> </div> `; const outer = document.getElementById('outer'); const middle = document.getElementById('middle'); const inner = document.getElementById('inner'); outer.addEventListener('click', () => console.log('Outer Bubble'), false); outer.addEventListener('click', () => console.log('Outer Capture'), true); middle.addEventListener('click', (e) => { console.log('Middle Bubble'); }, false); middle.addEventListener('click', () => console.log('Middle Capture'), true); inner.addEventListener('click', () => console.log('Inner Bubble'), false); inner.addEventListener('click', (e) => { console.log('Inner Capture'); }, true); inner.click();
Anda boleh mengesahkan ini sendiri dengan menampal kod ke dalam konsol alat pembangun.
Jawapan yang betul ialah B.
Penjelasan: log panggilan user.getStatus() "Nama: Alice, Diharamkan: palsu" kerana status fungsi anak panah mengakses ini dengan betul dalam skop lampirannya. Walau bagaimanapun, getName() log undefined kerana ia kehilangan konteks ini apabila ditugaskan kepada pembolehubah kendiri, membawa kepada getStatus() juga log undefined untuk kedua-dua nama dan isBanned.
Jawapan yang betul ialah B.
Penjelasan: counter1 dan counter2 masing-masing mempunyai pembolehubah kiraan tersendiri kerana setiap panggilan untuk createCounter() mencipta penutupan baharu. Oleh itu, kaunter1 mencatatkan 1 dan 2 pada dua panggilan pertamanya, dan kaunter2 mencatatkan 1 pada panggilan pertamanya.
Jawapan yang betul ialah B.
Penjelasan: Console.log segerak memanggil log "Mula" dan "Tamat" dahulu. Promise mempunyai keutamaan yang lebih tinggi daripada setTimeout dalam gelung acara, jadi "Promise 1" dan "Promise 2" dilog seterusnya, diikuti dengan "Timeout 1" dan "Timeout 2".
Jawapan yang betul ialah A.
Penjelasan: Jadi yang ini agak rumit. Kaedah bercakap ditakrifkan dengan betul pada Dog.prototype, anjing ialah contoh Anjing.
Di dalam pembina Anjing, baris ini memanggil pembina Haiwan dengan konteks semasa ini dan hujah nama. Ini secara berkesan menetapkan sifat nama pada tika Anjing yang baru dibuat.
Sekarang katakan kodnya seperti ini:
// Code before... Dog.prototype = Object.create(Animal.prototype); Dog.prototype.constructor = Dog; // Code after...
Maka jawapan yang betul ialah B).
Nota sampingan: Jika anda ingin mengesahkannya sendiri, anda perlu menampalnya ke dalam penyemak imbas (dan bukan LLM yang mendapat jawapan dengan salah).
Output yang betul ialah:
Jawapan: 3, 3, 3, 0, 1, 2
Penjelasan: Gelung pertama menggunakan var, yang mempunyai skop fungsi, jadi semua fungsi dalam separuh pertama tatasusunan menutup pada i yang sama, iaitu 3 pada penghujung gelung. Gelung kedua menggunakan let, yang mempunyai skop blok, jadi setiap fungsi pada separuh kedua ditutup pada nilai j yang berbeza (0, 1, 2), menghasilkan output: 3, 3, 3, 0, 1, 2.
Jawapan yang betul ialah D.
Penjelasan:
Contoh ini menunjukkan kitaran hayat penuh peristiwa. Anda boleh menghentikan penyebaran dengan memanggil fungsi stopImmediatePropagation atau stopPropagation.
Atas ialah kandungan terperinci Anda Layak Menggunakan JavaScript Jika Anda Boleh Menjawab uestions Ini dengan Betul. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!