Vì JavaScript là một ngôn ngữ nhỏ như vậy, nhưng với độ phức tạp đáng kinh ngạc, bạn sẽ có thể hỏi những câu hỏi tương đối cơ bản và tìm hiểu xem chúng có thực sự tốt dựa trên câu trả lời của chúng không. Chẳng hạn, câu hỏi đầu tiên tiêu chuẩn của tôi để đánh giá phần còn lại của cuộc phỏng vấn là:
Trong JavaScript, sự khác biệt giữa var x = 1và là x = 1gì? Trả lời nhiều hay ít chi tiết khi bạn cảm thấy thoải mái.
Các lập trình viên Novice JS có thể có câu trả lời cơ bản về người địa phương và toàn cầu. Các anh chàng JS trung cấp chắc chắn nên có câu trả lời đó, và có lẽ nên đề cập đến phạm vi cấp hàm. Bất cứ ai tự gọi mình là một lập trình viên JS "tiên tiến" nên được chuẩn bị để nói về người dân địa phương, toàn cầu ngụ ý, windowđối tượng, phạm vi chức năng, cẩu khai báo và chuỗi phạm vi. Hơn nữa, tôi rất muốn nghe về [[DontDelete]], ưu tiên nâng cao (tham số so varvới function) và undefined.
Một câu hỏi hay khác là yêu cầu họ viết một sum()hàm chấp nhận bất kỳ số lượng đối số nào và trả về tổng của chúng. Sau đó, yêu cầu họ sử dụng hàm đó (không sửa đổi) để tổng hợp tất cả các giá trị trong một mảng. Họ nên viết một hàm trông như thế này:
function sum() {
var i, l, result = 0;
for (i = 0, l = arguments.length; i < l; i++) {
result += arguments[i];
}
return result;
}
sum(1,2,3); // 6
Và họ nên gọi nó trên mảng của bạn như thế này (bối cảnh applycó thể là bất cứ điều gì, tôi thường sử dụng nulltrong trường hợp đó):
var data = [1,2,3];
sum.apply(null, data); // 6
Nếu họ đã có những câu trả lời đó, có lẽ họ biết JavaScript của họ. Sau đó, bạn nên tiến hành hỏi họ về các công cụ không phải là JS như thử nghiệm, quy trình làm việc, kiểm soát phiên bản, v.v. để tìm hiểu xem họ có phải là một lập trình viên giỏi hay không .