Javascript Questions: Bạn đáp án đúng được mấy câu?

Nội dung bài viết

Tôi biết trở thành developer giỏi không liên quan gì mấy đến các câu hỏi thế này, nhưng đa số nó đến từ các bài test phỏng vấn của các công ty nước ngoài mà đa số là những câu hỏi kỳ lạ. 

Trong bài trước chúng ta vừa thảo luận một đề tài rất hot về "JavaScript Async/Await: Sai Lầm Trong Cách Sử Dụng?". Và hôm qua chúng tôi nhận được rất nhiều câu hỏi về javascript, nhất là về kỹ thuật trong ECMA. Cho nên, chính vì vậy hôm nay chúng ta sẽ đi vào những câu hỏi thuộc kỹ thuật ECMA nhiều hơn.

Tham gia cùng chúng tôi:

Facebook: Cộng đồng lập trình javascript

Facebook Thảo luận về Javascript, ReactJS, VueJS, AngularJS Việt Nam

Trong bài viết này, chúng tôi đã tham khảo được và đưa ra 10 bài tập dựa trên nhiều yếu tố. Và chúng tôi biết các bạn sẽ có thể mất công tìm kiếm, nhưng có nhất thiết như vậy không? Các bạn hãy tự suy nghĩ ít nhất một vài câu trong bài viết này. Nếu các bạn không hiểu ở trường hợp nào, thì chính chỗ đó các bạn đang yếu thật sự. Và khi biết mình đang thiếu kiến thức gì thì bổ sung quá đơn giản phải không? 

OK, let's go! Các bạn có thể trả lời trong comment của bài viết or trên page Cộng đồng lập trình javascript

#0 Tricky Function Call

var result = (function(a) {
  return a*a;
}(5.5));
console.log(result);

What is the output in the console? 

#1 Fat Arrow + Declaration Overlap

const b = [1, 2, 3];
const f = (a, ...b) => a + b;

console.log(f(1));

What is the output in the console? 

#2 Variable and Function Names Overlap

let f = (...f) => f;
console.log(f(10));

f = (...f) => f.reduce(f => f);
console.log(f(10));

function ff() {
  return arguments;
}
console.log(ff(10));

f = f => f;
console.log(f(10));

What is the output in the console? 

#3 Variable Scope

var foo = 10;
bar = 3;
(function () {
  var foo = 2;
  bar = 1;
}())
bar = bar + foo;
console.log(bar);

What is the output in the console?

#4 Global + Local

var x = 5;

(function () {
    console.log(x);
    var x = 10;
    console.log(x); 
})();

What is the output in the console? 

#5 Chained Assignment

(function(){
  var a = b = 3;
})();

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

What is the output in the console? 

#6 Auto Semicolon

function foo1() {
  return {
    bar: 'bar',
  };
}

function foo2() {
  return
  {
    'bar';
  }
}

console.log(foo1());
console.log(foo2());

What is the output in the console?

#7 Javascript Number

console.log(0.1 + 0.2);
console.log(0.1 + 0.2 === 0.3);
console.log(9007199254740993 === 9007199254740992);

What is the output in the console? 

#8 Object Keys

const a = {},
    b = {c:'b'},
    c = {b:'c'};

a[b] = 111;
a[c] = 333;

console.log(a[b]);

What is the output in the console? 

#9 setTimeout Loops

for (var i = 0; i < 5; i++) {
  setTimeout(function() { console.log(i); }, i * 1000 );
}

for (let i = 0; i < 5; i++) {
  setTimeout(function() { console.log(i); }, i * 1000 );
}

What is the output in the console? 

#10 Chained Relationals

console.log(1 < 2 < 2);
console.log(3 > 2 > 1);

What is the output in the console? 

### Suggest

Tham gia cùng chúng tôi:

Facebook: Cộng đồng lập trình javascript

Facebook Thảo luận về Javascript, ReactJS, VueJS, AngularJS Việt Nam

Javascript có nhiều trap trong nhiều cuộc phỏng vấn, vì vậy trừ khi bạn chuẩn bị cho chúng hoặc đã ghi nhớ các thông số kỹ thuật về ECMA. Bạn có thể thất bại nhưng chỉ thất bại trong một số điểm đúng không? Hay là toàn bộ. Developers cố gắng xem kỹ và phát hiện điểm nào mà mình chưa hiểu nhiều hay hầu như chưa biết gì? Thì từ đó xác định lại kiến thức của mình xem bị hổng chỗ nào. 

Và từ đó có các bạn có thể bổ sung thêm kiến thức của mình cho chắc chắn nhé.