Tôi sẽ lập luận rằng trong trường hợp này,
let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
2 nên được trả lại.Nếu bạn xem xét câu hỏi từ quan điểm khoa học máy tính lý thuyết thì không được xác định được sử dụng để chỉ ra sự không kết thúc/ không tính toán [nghĩa là trình giữ chỗ cho một điểm không xác định
let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
3 của một chức năng một phần let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
4 thường được viết let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
5].non-termination/ non-computability [i.e. the placeholder for an undefined point let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
3 of a partial function let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
4 which is often written
let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
5]. Tuy nhiên,
let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
6 dường như có thể tính toán thẻ tiếp theo [nếu nó tồn tại] và cũng có thể tính toán nếu không có thẻ tiếp theo. Nói cách khác, hàm là tổng số vì nó chấm dứt cho mọi đầu vào.Điều đó đang được nói, một kết thúc tín hiệu giá trị đặc biệt mà không có kết quả có ý nghĩa [nghĩa là "không có thẻ tôi có thể trả lại cho đầu vào này"] là bắt buộc và điều này đối với tôi là
let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
2 không phải let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
8.special value signalling termination without meaningful result [i.e. "there's no card I can return for
this input"] is required and this for me is let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
2 not let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
8. NOTES:
Bạn có thể thấy một số hỗ trợ cho đối số này trong một số ngôn ngữ được đánh máy khác cũng như việc chấm dứt mà không có kết quả có ý nghĩa được thể hiện bằng cách sử dụng một loại tùy chọn [đôi khi còn được gọi là loại vô hiệu]. Một ví dụ cho điều này là có thể là ở Haskell.
Mặt khác, tất nhiên chúng tôi không biết
let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
8 trong JavaScript thực sự có nghĩa là gì. Vì vậy, sự tương tự với không xác định là một chút tiền. Hơn nữa, vì chúng tôi luôn muốn làm việc với tổng số các chức năng, số tiền này để nói "không bao giờ trả lại let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
8 từ một hàm". Điều này dường như hơi nghiêm ngặt, vì nó sẽ giới hạn việc sử dụng let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
8 đối với các thuộc tính/ biến chưa được đặt.Cuối cùng, sở thích cá nhân của tôi là không bao giờ trả lại
let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
8 nơi tôi có thể trả lại let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
2 và tôi cũng sẽ lập luận rằng đây là quy ước mã hóa tốt hơn [bởi vì trong số những thứ khác let myArr = [12, 33, 44];
console.log[myArr[7]]; // undefined
4 ngắn hơn let myArr = [12, 33, 44];
console.log[myArr[7]]; // undefined
5]. Một biến không xác định hoặc bất cứ điều gì không có giá trị sẽ luôn trả về "không xác định" trong JavaScript. Điều này không giống như NULL, mặc dù thực tế là cả hai đều ngụ ý một trạng thái trống. Thông thường bạn sẽ gán một giá trị cho một biến sau khi bạn khai báo nó, nhưng điều này không phải lúc nào cũng đúng. Khi một biến được khai báo hoặc khởi tạo nhưng không có giá trị nào được gán cho nó, JavaScript sẽ tự động hiển thị "không xác định". Có vẻ như thế này: Ngoài ra, khi bạn thử truy cập các giá trị trong, ví dụ, một mảng hoặc đối tượng không tồn tại, nó sẽ ném let myStr;
console.log[myStr]; // undefined
8.let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
Đây là một ví dụ khác:
let myArr = [12, 33, 44];
console.log[myArr[7]]; // undefined
Trong bài viết này, bạn sẽ tìm hiểu các phương pháp và phương pháp khác nhau mà bạn có thể sử dụng để biết liệu một biến là
let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
8 trong JavaScript. Điều này là cần thiết nếu bạn muốn tránh các lỗi ném mã của mình khi thực hiện một thao tác với một biến không xác định.Trong trường hợp bạn đang vội, đây là ba phương pháp tiêu chuẩn có thể giúp bạn kiểm tra xem một biến là
let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
8 trong JavaScript:if[myStr === undefined]{}
if[typeof myArr[7] === "undefined"]{}
if[user.hobby === void 0]{}
Bây giờ, hãy giải thích từng phương pháp chi tiết hơn.
Cách kiểm tra xem một biến không được xác định trong JavaScript với so sánh trực tiếp
Một trong những phương pháp đầu tiên xuất hiện trong đầu là so sánh trực tiếp. Đây là nơi bạn so sánh đầu ra để xem nó có trả về
let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
8 không. Bạn có thể dễ dàng làm điều này theo cách sau:let user = {
name: "John Doe",
age: 14
};
if [user.hobby === undefined] {
console.log["This is undefined"];
}
Điều này cũng hoạt động cho các mảng như bạn có thể thấy dưới đây:
let scores = [12, 34, 66, 78];
if [scores[10] === undefined] {
console.log["This is undefined"];
}
Và nó chắc chắn cũng hoạt động cho các biến khác:
let name;
if [name === undefined] {
console.log["This is undefined"];
}
Cách kiểm tra xem một biến không được xác định trong JavaScript với if[myStr === undefined]{}
if[typeof myArr[7] === "undefined"]{}
if[user.hobby === void 0]{}
0
if[myStr === undefined]{}
if[typeof myArr[7] === "undefined"]{}
if[user.hobby === void 0]{}
Chúng tôi cũng có thể sử dụng loại biến để kiểm tra xem nó có phải là
let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
8 không. May mắn cho chúng tôi không xác định là một kiểu dữ liệu cho một giá trị không xác định như bạn có thể thấy bên dưới:let name;
console.log[typeof name]; // "undefined"
Với điều này, bây giờ chúng ta có thể sử dụng kiểu dữ liệu để kiểm tra không xác định cho tất cả các loại dữ liệu như chúng ta đã thấy ở trên. Đây là những gì kiểm tra sẽ trông như thế nào đối với cả ba kịch bản chúng tôi đã xem xét:
________số 8Cách kiểm tra xem một biến không được xác định trong JavaScript với toán tử if[myStr === undefined]{}
if[typeof myArr[7] === "undefined"]{}
if[user.hobby === void 0]{}
2
if[myStr === undefined]{}
if[typeof myArr[7] === "undefined"]{}
if[user.hobby === void 0]{}
Toán tử
if[myStr === undefined]{}
if[typeof myArr[7] === "undefined"]{}
if[user.hobby === void 0]{}
3 thường được sử dụng để có được giá trị nguyên thủy let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
8. Bạn có thể làm điều này bằng cách sử dụng "if[myStr === undefined]{}
if[typeof myArr[7] === "undefined"]{}
if[user.hobby === void 0]{}
5" tương tự như "if[myStr === undefined]{}
if[typeof myArr[7] === "undefined"]{}
if[user.hobby === void 0]{}
6" như bạn có thể thấy bên dưới:console.log[void 0]; // undefined
console.log[void[0]]; // undefined
Theo nghĩa thực tế, điều này hoạt động như so sánh trực tiếp [mà chúng ta đã thấy trước đây]. Nhưng chúng tôi sẽ thay thế không xác định bằng
if[myStr === undefined]{}
if[typeof myArr[7] === "undefined"]{}
if[user.hobby === void 0]{}
5 hoặc if[myStr === undefined]{}
if[typeof myArr[7] === "undefined"]{}
if[user.hobby === void 0]{}
6 như đã thấy dưới đây: let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
0Hoặc như thế này:
let user = {
name: "John Doe",
age: 14
};
console.log[user.hobby]; // undefined
1Sự kết luận
Trong bài viết này, chúng tôi đã học cách kiểm tra xem một biến không được xác định và điều gì khiến một biến không được xác định.
Chúng tôi cũng đã học ba phương pháp chúng tôi có thể sử dụng để kiểm tra xem một biến không được xác định. Tất cả các phương pháp hoạt động hoàn hảo. Chọn phương pháp ưa thích của bạn là hoàn toàn tùy thuộc vào bạn.
Có mã hóa vui vẻ!
Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu