20 câu hỏi phỏng vấn Javascript dành cho Intern/Fresher

64727

Câu hỏi phỏng vấn Javascript dưới đây sẽ giúp bạn vượt qua được những câu hỏi của nhà tuyển dụng.

Giới thiệu

Theo một cuộc điều tra cách mạng ẩn danh mà mình tìm hiểu được thì trong cuộc sống có 2 thứ khó hiểu nhất. Đối với nam giới thì đó là phụ nữ, còn đối với lập trình viên thì đó hẳn là javascript rồi.

Javascript là ngôn ngữ không thể thiếu trong thời đại hiện nay. Dù bạn có học ngôn ngữ gì đi chăng nữa thì bạn vẫn cần phải biết về javascript.

Hôm nay mình xin chia sẻ một chút kiến thức về javascript, cụ thể là các câu hỏi phỏng vấn JavaScript mà nhà tuyển dụng thường sẽ hỏi bạn.

Bài viết này mình viết với mục đích dành cho các bạn Intern, Fresher trong quá trình đi phỏng vấn có thể tham khảo vì đây là những câu hỏi liên quan đến javascript mà rất dễ bị “sờ gáy”.

Bắt đầu nào!

  Tôi đã phỏng vấn ở Silicon valley như thế nào (Phần 1)

Câu hỏi phỏng vấn JavaScript dành cho Intern/ Fresher

#1. Javascript là gì?

#2. Các kiểu dữ liệu trong Javascript?

Ví dụ:

// String
var a = 'viblo';
// Number
var b = 3;
// Object
var c = { a: 1, b: '2' }
// Undefined
var d;
// Boolean
var e = 10 < 11;
// Array
var f = [1, 2, 3, 'z'];

#3. Hàm delete có chức năng gì?

Ví dụ:

var user = { name: 'Vu', age: 18 };
delete student.age;
console.log(student)

// => { name: 'Vu' }

#4. Phân biệt var, let và const?

Ví dụ:

// let
if (true) {
  let text = 'in if statement'
}
 
console.log(text) // undefinded

//const
const a = 'vu';
a = 'nguyen'; // Lỗi Identifier 'a' has already been declared

// var
var a = 'viblo';
if (true) {
  var a = 'viblo.asia';
  console.log(a); // 'viblo.asia'
}
console.log(a); // 'viblo.asia'

#5. Strict mode trong javascript là gì?

Ví dụ:

"use strict";
function foo(){
    var bar = 'viblo';
    return bar;
}

// Uncaught ReferenceError: bar is not defined
bar = 'asia';

#6. this trong javascript là gì?

Ví dụ:

var data = {
  name: "vu",
  age: 18,
  getName: function(){
      return this.name; // this = data;
  }
};

console.log(data.getName()) // 'vu'

#7. Khác nhau giữa undefined và null trong javascript?

Ví dụ:

var a;
console.log(typeof a) // undefined
console.log(typeof null) // object

#8. == và === khác nhau như thế nào?

Ví dụ:

var number1 = 1;
var number2 = '1';

console.log(number1 == number2) // true
console.log(number1 === number2) // false

#9. Thay đổi style/class của element?

Ví dụ:

document.getElementById("myId").style.backgroundColor = "red";
document.getElementById("myId").className = "newclass";
document.getElementByClass("myClass").className = "newclass";
document.getElementByTagsName("myTagsName").className = "newclass";

#10. Tại sao Math.max() nhỏ hơn Math.min()?

Ví dụ:

var infinity = 5

var value1 = Math.min(1)
var value2 = Math.min(1, infinity)
var value3 = Math.min(1, -infinity)

console.log(value1) // 1
console.log(value2) // 1
console.log(value3) // -5

#11. Closure trong javascript là gì?

Ví dụ:

const arr = [1, 2, 3, 4];

for (var i = 0; i < arr.length; i++) {
  setTimeout(function() {
    console.log(i);
  }, 10);
}

// 4 4 4 4

Lý do là bởi vì hàm setTimeout sẽ tạo ra 1 function (closure) có thể truy cập phạm vi bên ngoài nó, vòng loop sẽ chứa index i. Sau 10ms, hàm được thực thi và nó sẽ log ra giá trị của i, là giá trị cuối cùng của vòng lặp (4). Xem thêm JavaScript Closures là gì

#12. Hosting trong javascript là gì?

Ví dụ:

a = 'https://viblo.asia';
console.log("My website: ", a); // My website: https://viblo.asia
var domain;
console.log("My website: ", a); //  // My website: https://viblo.asia

#13. Phân biệt giữa Function Declaration và Function Expression

Ví dụ:

// Function Declaration:
function a(x,y,z) {
    // code here
}

// Function Expression
const a = function(x,y,z) {
    // code here
}

#14. Hàm Array.splice() và hàm Array.slice() khác nhau như thế nào ?

Ví dụ:

// Array.splice()
var language = ["php", "css", "html", "js"];
language.splice(1, 1, "python", "c#", "ios");
console.log(language) // ['php', 'python', 'c#', 'ios', 'html', 'js'];
// Array.slice()
var language = ["html", "js", "php", "c#", "python", "androi", "ios"];
var slice = language.slice(1, 4);
console.log(slice); // ['js(1)', 'php(2)', 'c#(3)']

#15. Spread Operator trong javascript ?

Ví dụ:

var topLane = ['zed', 'akali'];
var all = ['yasuo', 'rengar', ...topLane, 'đan trường'];
console.log(all) //  ['yasuo', 'rengar', 'zed', 'akali', 'đan trường']

#16. Anonymous function là gì ?

Ví dụ:

var anonymous = function(a, b) {
    return a + b;
};
console.log(anonymous(5, 10)); // 15
//Anonymous Function không có đối số
var anonymous = function() {
    return "Hello World";
};
console.log(anonymous()); // Hello World

(function(){
    console.log('viblo');
}).call(this) // viblo

#17. Tại sao 0.1 + 0.2 không bằng 0.3 ?

console.log(0.1 + 0.2) //0.30000000000000004

// Sử dụng toFixed()
var number = 0.1 + 0.2;
console.log(number.toFixed(2)) // 0.3

#18. Sự khác nhau giữa window.onload và onDocumentReady ?

#19. Kết quả của 1 + 2 + ‘3’ ?

#20. Promise trong javascript là gì ?

Hi vọng sau khi đọc xong bài này các bạn có thể nhớ thêm, học thêm một chút gì đó về javascript. Mong có thể giúp ích cho các bạn.

Đừng bỏ lỡ những bài viết hay về:

Xem thêm tuyển dụng JavaScript Developer trên TopDev

TopDev via viblo.asia