8 Javascript quiz that may confuse you
source link: https://pitayan.com/posts/8-javascript-quiz-that-may-confuse-you
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
8 Javascript quiz that may confuse you
May 2nd, 2022 • 1 min readThese days, I was preparing a small game for our team's tech workshop. Thought it'd be a good opportunity of introducing the some fundamental and tricky stuffs around JavaScript. So I made 8 quiz to our team members. And hope they could solve them within 15 min. Eventually, it took all of them over 20 minutes to complete and most of them could solve 4-5 questions correctly.
You can take it as just a small test, each quiz has answer attached to the end of the code. Try to answer them first and then look at the answers. Good luck.
#What do these console.log print out?
#No. 1 -- Doctor Pavlov has a dog
function Animal(){
this.type = "animal"
}
function Dog(){
this.name = "dog"
}
Dog.prototype = new Animal()
var PavlovPet = new Dog();
console.log(PavlovPet.__proto__ === Dog.prototype)
console.log(Dog.prototype.__proto__ === Animal.prototype)
Answer for No. 1
#No. 2 -- Be careful with the "sort"
var arr = [5, 22, 14, 9];
console.log(arr.sort());
Answer for No. 2
#No. 3 -- Closure and event loop
for (var i = 0; i < 3; i++) {
const log = () => {
console.log(i)
}
setTimeout(log, 100)
}
Answer for No. 3
#No. 4 -- There's indentation
function createNewArray(item) {
return
[item]
}
console.log(createNewArray(0))
Answer for No. 4
#No. 5 -- What's inside the "numbers"
const length = 4
const numbers = []
for (var i = 0; i < length; i++);{
numbers.push(i + 1)
}
console.log(numbers)
Answer for No. 5
#No. 6 -- No length
const clothes = ['shirt', 'socks', 'jacket', 'pants', 'hat']
clothes.length = 0
console.log(clothes[3])
Answer for No. 6
#No. 7 -- Variable went crazy
var a = 1
function output () {
console.log(a)
var a = 2
console.log(a)
}
console.log(a)
output()
console.log(a)
Answer for No. 7
#No. 8 -- There's an accidental declaration
function foo() {
let a = b = 0
a++
return a
}
foo()
console.log(typeof a)
console.log(typeof b)
Answer for No. 8
#In the end
Thanks so much for reading! Have you got them all correct?
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK