+1

ReferenceError vs undefined errors trong JS

Disclaim: Fresher forever

Ok, let go...
Một cách vắn tắt, undefined errors không thực sự là error, mà là một kiểu dữ liệu trong JS, là khi một biến được khai báo nhưng chưa được gán dữ liệu thì sẽ có kiểu là undefined
Ví dụ như

let a;
console.log(a);  // undefined

Một số case khác bạn có thể gặp giá trị này là với một hàm không định nghĩa rõ giá trị trả về (trong python sẽ là None hehe), hoặc khi bạn muốn lấy giá trị một thuộc tính của đối tượng mà thuộc tính này chưa tồn tại (obj.some_prop)

Còn về ReferenceError , thì là khi bạn truy cập một biến chưa được khai báo (let, const, var, tự search thêm nha) hoặc không tồn tại trong scope hiện tại (lại tự search ha), mấy case hay gặp là

  1. Biến chưa được khai báo
console.log(x);  // ReferenceError: x is not defined
  1. Variable Hoist (đẩy lên vị trí cao hơn, hiểu ha, search thêm nha)
console.log(y);  // ReferenceError: y is not defined
let y = 5;
  1. Block scope với letconst
if (true) {
    let z = 10;
}
console.log(z);  // ReferenceError: z is not defined
  1. Strict mode (không cho phép ngầm định nghĩa biến global)
'use strict';
a = 5;  // ReferenceError: a is not defined

Hết rồi ...


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí