7

8 Javascript quiz that may confuse you

 2 years ago
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 read

These 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?


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK