Xin chào, 

Dưới đây là 10 câu hỏi dành cho Junior dev và tất cả những ai đang sắp có hoặc chuẩn bị phỏng vấn, cùng xem là những gì nhé!

1. Làm thế nào để copy hay clone một mảng? 

Theo cách cổ điển, chúng ta sẽ sử dụng lệnh slice() như sau:

const newaaray= oldarray.slice();

Nhưng theo cách mới(sau khi ES6 ra đời), chúng ta có thể sao chép bằng SPREAD OPERATOR(Toán tử 3 chấm) như sau:

Const newarray = [...sheeps];

2. Tại sao chúng ta không dùng = để sao chép một mảng ? (new_variable = existing_array)

Bởi vì một mảng trong Javascript là giá trị tham chiếu. Khi ta dùng lệnh gán, thực chất chúng ta không tạo ra cái gì mới cả mà chúng ta tham chiếu (trỏ) biến đó tới cùng một vùng bộ nhớ với biến cũ.

3. Là thế nào để kiểm tra một biến hoặc giá trị có phải là kiểu số hay là không?

if(typeof variable === ‘number’ && !isNaN(variable))

Luôn nhớ rằng typeof variable ==='number' không thể đảm bảo rằng biến đó có phải kiểu số hay không vì giá trị NaN cũng là kiểu số.

4. +‘12’ trả về cái gì? 

Kết quả cho ra là giá trị kiểu số của 12 vì toán tử một ngôi (unary operator) sẽ cố gắng biến mọi giả trị kiểu chuỗi, đúng/sai và rỗng thành kiểu số. Xem thêm ví dụ như sau:

+‘-3’ gives -3
+’0xFF’  cho ra output 255
+‘false’  cho ra 0
+‘Infinity’ cho ra Infinity
+’infinity’ cho ra NaN
+’function’ cho ra NaN 

Tương tự với unary + operator

-‘-5’ gives 5
-true gives -1

Hoặc nếu nhà tuyển dụng muốn đánh đố bạn, họ cũng có thể hỏi:

Cái này cho ra cái gì

!!hello == true

Đáp án là true

5. Đoạn code sau hiển thị giá trị bao nhiêu?

 var x=9;
   x= x++;
  console.log(x);

Đáp án là 9.

6. Có những cách khác nhau nào để copy một đối tượng (object) sang một biến khác?

sao chép từ mainobj sang copyobj

let copyobj= Object.assign({}, mainobj);

Tuy nhiên đây chỉ là cách copy hời hợt

Mình không biết có còn cách nào khác không, để copy sâu sắc (deep copy) thì mình sử dụng stringify như sau:

let newObj = JSON.parse(JSON.stringify(obj));

8. Viết code để dịnh dạng array2 theo array1

array1 = [
        {Key:"name", value:"Pravin"},
        {key:"age", value:26},
        {key:"address", value:"Nepal"}
]

và trả ra kết quả như sau:

array2 = [
        {name:"Pravin"},
        {age:26},
        {address:"Nepal"}
]

Có nhiều cách để thực hiện. Ở đây mình sử dung map() cho mảng này:

let array1 = [
        {key:"name", value:"Pravin"},
        {key:"age", value:26},
        {key:"address", value:"Nepal"}
];

let array2 = array1.map(elem=>{
let temp_obj = {};
temp_obj[elem.key] =elem.value;
return temp_obj;
});

console.log(array2);

9. Tạo một hàm tên là filtername với tham số truyền vào gồm một mảng và một chuỗi để tìm kiếm

name =[‘Tommy’, ‘Romanu’, Pravin’, ‘Omar'];
filtername(name, 'om');

điều kiện: hàm trả về một mảng các phần tử có chứa 'om' bên trong
Trong trường hợp này phải trả về ['Tommy', 'Romanu', 'Omar'].

10. Làm thế nào để sao chép một đối tượng JSON?

Câu trả lời của mình vẫn là dùng stringify. Mình không biết có cách nào khác không, nếu có thì bạn hãy comment cho anh em biết nhé!

let old_json = old json ;
Let new = JSON.parse(JSON.stringify(old));

Bài viết được dịch từ đây, cám ơn bạn đã đọc 😚