이 console.log는 무엇을 출력합니까?

4456 단어 javascript
Pitayan | What do these console.log print out?에 원래 게시됨

더 나은 독서 경험을 위해 원래 사이트로 오십시오.


요즘 우리 팀의 기술 워크숍을 위해 작은 게임을 준비하고 있었습니다. JavaScript에 관한 몇 가지 기본적이고 까다로운 내용을 소개할 수 있는 좋은 기회라고 생각했습니다. 그래서 우리 팀원들에게 8가지 퀴즈를 냈습니다. 그리고 그들이 15분 안에 그것들을 풀 수 있기를 바랍니다. 결국, 모두 완료하는 데 20분 이상이 걸렸고 대부분 4-5개의 질문을 올바르게 풀 수 있었습니다.

간단한 테스트로 볼 수 있으며 각 퀴즈의 코드 끝에 답이 첨부되어 있습니다. 먼저 답변을 시도한 다음 답변을 살펴보십시오. 행운을 빕니다.

# 이 console.log는 무엇을 출력합니까?



# 1 -- Pavlov 박사에게는 개가 있습니다.




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)


1번에 대한 답변



프로토타입 체인에 대한 매우 기본적인 내용입니다.

// Output
true
true



# 2 -- "정렬"에 주의하세요




var arr = [5, 22, 14, 9];

console.log(arr.sort());


2번에 대한 답변



죄송합니다. [5, 9, 14, 22]가 아닙니다. 각 요소는 문자열로 변환된 후 UTF-16 값의 시퀀스를 비교합니다.

이것을 확인하십시오: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

// Output
[14, 22, 5, 9]


# 3 -- 폐쇄 및 이벤트 루프




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


3번에 대한 답



setTimout이 해당log 함수를 다음 매크로 작업 대기열에 넣기 때문에 3을 세 번 출력합니다.

// Output
3
3
3


# 4 -- 들여쓰기가 있습니다.




function createNewArray(item) {
  return
    [item]
}

console.log(createNewArray(0))


4번에 대한 답



이로 인해 오류가 발생합니다. 구분선과 들여쓰기를 함께 사용하여 값을 반환할 수 없습니다.

Uncaught SyntaxError: Invalid or unexpected token


# 5 -- "숫자" 안에 있는 것




const length = 4
const numbers = []
for (var i = 0; i < length; i++);{
  numbers.push(i + 1)
}

console.log(numbers)


5번에 대한 답변



이것은 한 쌍의 날카로운 눈이 필요합니다. 괄호와 중괄호 사이에 있는 세미콜론이 보이시나요?

// Output
[5]


# 6 -- 길이 없음




const clothes = ['shirt', 'socks', 'jacket', 'pants', 'hat']
clothes.length = 0

console.log(clothes[3])


3번에 대한 답변



이는 배열에서 모든 요소를 ​​제거하는 것과 같습니다.

// Output
undefined


# 7 -- 변수가 미쳤다




var a = 1
function output () {
    console.log(a)
    var a = 2
    console.log(a)
}
console.log(a)
output()
console.log(a)


7번에 대한 답



첫 번째 출력: 전역 사용var a
두 번째 출력: before 선언을 사용하는 function output()의 첫 번째 출력은 정의되지 않아야 합니다.

세 번째 출력: 선언 후 출력합니다. 특별한 것은 없습니다.

네 번째 출력: var afunction output()에 의해 변경되지 않았습니다.

// Output
1
undefined
2
1


# 8 -- 우발적인 선언이 있습니다.




function foo() {
    let a = b = 0
    a++
    return a
}

foo()
console.log(typeof a)
console.log(typeof b)


3번에 대한 답변


let a는 지역 변수입니다. typeof a가 선언되지 않은 변수를 확인하고 있습니다.
bfunction foo()에서 값이 할당되는 전역 변수입니다.

// Output
undefined
number


# 결국



읽어주셔서 정말 감사합니다! 모두 맞췄나요?

좋은 웹페이지 즐겨찾기