Hãy tưởng tượng tình huống sau – bạn có một đầu vào đơn giản và một nút. Khi người dùng nhập vào đầu vào và nhấn nút, văn bản từ đầu vào sẽ được ghi vào bảng điều khiển
Đây là những gì bạn có cho đến nay
Search
function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
Nhưng khi bạn tải trang, bạn sẽ thấy Uncaught ReferenceError: test is not defined
trong bảng điều khiển
Điều gì đang xảy ra ở đây và tại sao bạn không thể truy cập biến
function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
0 bên ngoài function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
1?Phạm vi trong JavaScript
Lý do bạn không thể truy cập
function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
0 bên ngoài function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
1 là do phạm vi. Một cách khác để mô tả phạm vi là bối cảnhBởi vì
function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
0 đã được xác định hoặc tạo ra trong function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
1, nên nó chỉ khả dụng trong ngữ cảnh hoặc phạm vi của chính function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
1. Cố gắng đăng nhập function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
0 bên ngoài function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
1 sẽ gây ra lỗiMột cách khác để nói rằng biến
function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
0 nằm trong phạm vi chức năng và chỉ có thể được ghi lại từ bên trong function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
1Một cách dễ dàng để khắc phục điều này là ghi nhật ký
function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
0 từ bên trong function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
1. Sau đó, bất cứ khi nào nhấn nút, giá trị hiện tại của đầu vào sẽ được ghi vào bảng điều khiểnfunction myFunction[] {
const test = document.getElementById["search"].value;
console.log[test];
}
Bạn có thể đọc thêm về phạm vi trong JavaScript tại đây. Giới thiệu về phạm vi trong JavaScript
Cách truy cập một biến bên ngoài một hàm
Mặc dù không thể truy cập trực tiếp vào một biến phạm vi chức năng từ bên ngoài chức năng mà nó được xác định, nhưng có một số cách để sử dụng giá trị của
function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
0 trong suốt phần còn lại của chương trìnhLưu trữ giá trị của function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
0 dưới dạng biến toàn cục
function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
Phạm vi toàn cầu là mức cao nhất trong chương trình của bạn, bên ngoài tất cả các chức năng khác. Các biến trong phạm vi toàn cầu có sẵn trong suốt phần còn lại của chương trình của bạn
Vì vậy, một cách dễ dàng để cung cấp
function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
0 ở mọi nơi là lưu nó dưới dạng biến toàn cục. Ví dụlet test = '';
function myFunction[] {
test = document.getElementById["search"].value;
}
function myOtherFunction[] {
console.log[test];
}
Sau đó, bạn sẽ có thể truy cập giá trị của
function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
0 khi function myFunction[] {
const test = document.getElementById["search"].value;
console.log[test];
}
4 được gọi. Nhưng điều này giả định rằng đầu vào đã có một số văn bản trong đó và function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
1, giá trị được đặt là function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
0, được gọi trước function myFunction[] {
const test = document.getElementById["search"].value;
console.log[test];
}
4Đó là nơi mà sự hiểu biết vững chắc về JavaScript không đồng bộ có ích. Đọc thêm về nó trong bài viết này. Sự phát triển của JavaScript không đồng bộ. Từ Gọi lại, đến Lời hứa, đến Không đồng bộ/Đang chờ
Trả về bài kiểm tra từ chức năng
Một cách khác để bạn có thể truy cập
function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
0 từ bên ngoài chức năng ban đầu mà nó được xác định là chỉ cần trả về nó từ chức năng đó. Sau đó, khi bạn gọi nó từ chức năng khác, bạn sẽ có quyền truy cập vào function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
0Sau đó, bạn có thể tạo một nút khác để nối giá trị của
function myFunction[] {
const test = document.getElementById["search"].value;
}
console.log[test];
0 vào trang và đính kèm function myFunction[] {
const test = document.getElementById["search"].value;
console.log[test];
}
4 vào nút đóVí dụ
Search
Append
function myFunction[] {
const test = document.getElementById["search"].value;
return test;
}
function myOtherFunction[] {
const myDiv = document.getElementById["alpha"];
myDiv.innerText = myFunction[];
}
Và đây là hành động
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
Nếu bài viết này hữu ích, hãy tweet nó
Học cách viết mã miễn phí. Chương trình giảng dạy mã 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
Phương thức “getElementById[]” truy cập một phần tử có Id được chỉ định. Phương pháp này có thể được áp dụng để truy cập id của các trường nhập và các nút để nhận và đặt giá trị văn bản
cú pháp
tài liệu. getElementById[ elementID ]
Ở đây, “elementID” đề cập đến Id được chỉ định của một phần tử
Ví dụ dưới đây giải thích khái niệm được thảo luận
Ví dụ
Đầu tiên, bao gồm hai trường loại đầu vào và các nút riêng biệt để nhận và đặt giá trị văn bản đầu vào với sự kiện “ title” sẽ truy cập các chức năng đã chỉ định.