Xin chào, tôi mới ở JavaScript Tôi chỉ muốn hỏi liệu có thể nhận được giá trị bên trong một hàm không?
Mã mẫu
function a[]{
var sample = "hello world"
};
Sau đó, tôi sẽ đi đến bối cảnh toàn cầu và có được biến sample
sample2 = sample
console.log[sample2];
Và khi tôi console.log Sample2 thì giá trị của Sample2 phải là "Hello World", vui lòng chia sẻ kiến thức của bạn, tôi muốn tìm hiểu thêm trong JavaScript Cảm ơn trước
Hỏi ngày 21 tháng 10 năm 2016 lúc 9:21Oct 21, 2016 at 9:21
1
Giống như bất kỳ ngôn ngữ lập trình nào khác, tất cả những gì bạn cần làm là trả về giá trị mà bạn cần truy cập. Vì vậy, bạn có thể làm cho chức năng của bạn trả về giá trị biến và cách đó bạn có thể truy cập nó. Hoặc làm cho nó trả về một đối tượng có thêm các hàm phụ mà bạn có thể trả về giá trị
Vì vậy, theo cách tiếp cận đầu tiên,
function a[] {
var sample = "hello world";
return sample;
}
var sample2 = a[];
console.log[sample2]; //This prints hello world
Hoặc, bạn có thể sử dụng phương pháp thứ hai, nơi bạn có thể thay đổi biến riêng tư bằng cách hiển thị các chức năng thứ cấp như
function a[] {
var sample = "hello world";
return {
get : function [] {
return sample;
},
set : function [val] {
sample = val;
}
}
}
//Now you can call the get function and set function separately
var sample2 = new a[];
console.log[sample2.get[]]; // This prints hello world
sample2.set['Force is within you']; //This alters the value of private variable sample
console.log[sample2.get[]]; // This prints Force is within you
Hy vọng điều này giải quyết sự nghi ngờ của bạn.
Đã trả lời ngày 21 tháng 10 năm 2016 lúc 9:37Oct 21, 2016 at 9:37
Akhil Arjunakhil ArjunAkhil Arjun
1.1277 Huy hiệu bạc12 Huy hiệu đồng7 silver badges12 bronze badges
Có nhiều cách để làm điều này và cho đến nay, cách tốt nhất là khai báo các biến của bạn bên ngoài hàm, sau đó gán chúng bên trong hàm.
var sample;
var myname;
function a[] {
sample = "Hello World";
myname = "Solly M";
}
console.log[sample];
console.log[myname];
Đã trả lời ngày 21 tháng 10 năm 2016 lúc 9:28Oct 21, 2016 at 9:28
RealsollymrealsollymRealSollyM
1.4801 Huy hiệu vàng21 Huy hiệu bạc34 Huy hiệu đồng1 gold badge21 silver badges34 bronze badges
Cách tốt nhất để làm điều này là để chức năng trả về một giá trị
function a[]{
var sample = "hello world";
return sample;
}
sample2 = a[];
console.log[sample2];
Đã trả lời ngày 21 tháng 10 năm 2016 lúc 9:23Oct 21, 2016 at 9:23
Frazrasfrazrasfrazras
5.4084 Huy hiệu vàng29 Huy hiệu bạc40 Huy hiệu đồng4 gold badges29 silver badges40 bronze badges
Tất cả các trình duyệt hiện đại hỗ trợ chạy JavaScript trong "Chế độ nghiêm ngặt".
Bạn sẽ tìm hiểu thêm về cách sử dụng chế độ nghiêm ngặt trong một chương sau của hướng dẫn này.
- Trong "Chế độ nghiêm ngặt", các biến không được khai báo không tự động toàn cầu.
- Các biến toàn cầu trong HTML
- Với JavaScript, phạm vi toàn cầu là môi trường JavaScript.
Phạm vi khối
Trước ES6 [2015], JavaScript chỉ có phạm vi và phạm vi chức năng toàn cầu.Global Scope and Function Scope.
ES6 đã giới thiệu hai từ khóa JavaScript mới quan trọng: let
và const
.
Hai từ khóa này cung cấp phạm vi khối trong JavaScript.Block Scope in JavaScript.
Các biến được khai báo bên trong một khối {} không thể được truy cập từ bên ngoài khối:
Thí dụ
{& nbsp; & nbsp; Let x = 2; } // x không thể được sử dụng ở đây
let x = 2;
}
// x can NOT be used here
Các biến được khai báo với từ khóa var
không thể có phạm vi khối.
Các biến được khai báo bên trong một khối {} có thể được truy cập từ bên ngoài khối.
Thí dụ
{& nbsp; & nbsp; Let x = 2; } // x không thể được sử dụng ở đây
var x = 2;
}
// x CAN be used here
Các biến được khai báo với từ khóa var
không thể có phạm vi khối.
Các biến được khai báo bên trong một khối {} có thể được truy cập từ bên ngoài khối. LOCAL to the function.
Thí dụ
{& nbsp; & nbsp; Let x = 2; } // x không thể được sử dụng ở đây
Các biến được khai báo với từ khóa var
không thể có phạm vi khối.
let carName = "Volvo";
// code here CAN use carName
}
Các biến được khai báo bên trong một khối {} có thể được truy cập từ bên ngoài khối.
{& nbsp; & nbsp; var x = 2; } // x có thể được sử dụng ở đây
Phạm vi địa phươngFunction Scope:
Các biến được khai báo trong hàm JavaScript, trở thành cục bộ cho hàm.
// Mã ở đây không thể sử dụng Carname
hàm myFunction [] {& nbsp; & nbsp; let carname = "volvo"; & nbsp; // Mã ở đây có thể sử dụng carname}
// Mã ở đây không thể sử dụng Carname
Hãy tự mình thử »
Các biến cục bộ có phạm vi chức năng:
Chúng chỉ có thể được truy cập từ bên trong chức năng.
Vì các biến cục bộ chỉ được nhận ra bên trong các hàm của chúng, các biến có cùng tên có thể được sử dụng trong các chức năng khác nhau.Function Scope:
Các biến cục bộ được tạo khi một hàm bắt đầu và xóa khi hàm được hoàn thành.
var carName = "Volvo"; // Function Scope
}
Phạm vi chức năng
let carName = "Volvo"; // Function Scope
}
JavaScript có phạm vi chức năng: Mỗi hàm tạo ra một phạm vi mới.
const carName = "Volvo"; // Function Scope
}
Các biến được xác định bên trong một hàm không thể truy cập [có thể nhìn thấy] từ bên ngoài hàm.
Các biến được khai báo với var
, let
và const
khá giống nhau khi được khai báo bên trong một hàm.GLOBAL.
Thí dụ
{& nbsp; & nbsp; Let x = 2; } // x không thể được sử dụng ở đây
// code here can use carName
Các biến được khai báo với từ khóa var
không thể có phạm vi khối.
// code here can also use carName
}
{& nbsp; & nbsp; var x = 2; } // x có thể được sử dụng ở đây
Phạm vi địa phươngGlobal Scope:
Các biến được khai báo trong hàm JavaScript, trở thành cục bộ cho hàm.
// Mã ở đây không thể sử dụng Carname
hàm myFunction [] {& nbsp; & nbsp; let carname = "volvo"; & nbsp; // Mã ở đây có thể sử dụng carname}Globally [outside any function] have Global Scope.
// Mã ở đây không thể sử dụng Carname variables can be accessed from anywhere in a JavaScript program.
Hãy tự mình thử »
Các biến cục bộ có phạm vi chức năng:Global Scope:
Chúng chỉ có thể được truy cập từ bên trong chức năng.
Vì các biến cục bộ chỉ được nhận ra bên trong các hàm của chúng, các biến có cùng tên có thể được sử dụng trong các chức năng khác nhau.
Các biến cục bộ được tạo khi một hàm bắt đầu và xóa khi hàm được hoàn thành.
Phạm vi chức năng
JavaScript có phạm vi chức năng: Mỗi hàm tạo ra một phạm vi mới.
Các biến được xác định bên trong một hàm không thể truy cập [có thể nhìn thấy] từ bên ngoài hàm.
Các biến được khai báo với var
, let
và const
khá giống nhau khi được khai báo bên trong một hàm.
Tất cả đều có phạm vi chức năng:GLOBAL variable.
hàm myFunction [] {& nbsp; var carname = "volvo"; & nbsp; & nbsp; // Phạm vi chức năng}
Thí dụ
hàm myFunction [] {& nbsp; Đặt carname = "Volvo"; & nbsp; & nbsp; // Phạm vi chức năng}
hàm myFunction [] {& nbsp; const carname = "volvo"; & nbsp; & nbsp; // Phạm vi chức năng}
Các biến JavaScript toàn cầu
carName = "Volvo";
}
{& nbsp; & nbsp; var x = 2; } // x có thể được sử dụng ở đây
Phạm vi địa phương
Các biến được khai báo trong hàm JavaScript, trở thành cục bộ cho hàm.
// Mã ở đây không thể sử dụng Carname
hàm myFunction [] {& nbsp; & nbsp; let carname = "volvo"; & nbsp; // Mã ở đây có thể sử dụng carname}
// Mã ở đây không thể sử dụng Carname
Hãy tự mình thử »
Các biến cục bộ có phạm vi chức năng:
Chúng chỉ có thể được truy cập từ bên trong chức năng.
Vì các biến cục bộ chỉ được nhận ra bên trong các hàm của chúng, các biến có cùng tên có thể được sử dụng trong các chức năng khác nhau.
Thí dụ
Các biến cục bộ được tạo khi một hàm bắt đầu và xóa khi hàm được hoàn thành.
// code here can not use window.carName
{& nbsp; & nbsp; var x = 2; } // x có thể được sử dụng ở đây
Phạm vi địa phương
Các biến được khai báo trong hàm JavaScript, trở thành cục bộ cho hàm.
// Mã ở đây không thể sử dụng Carname
Any function, including the window
object, can overwrite your global variables and functions.
hàm myFunction [] {& nbsp; & nbsp; let carname = "volvo"; & nbsp; // Mã ở đây có thể sử dụng carname}
// Mã ở đây không thể sử dụng Carname
Hãy tự mình thử »
Các biến cục bộ có phạm vi chức năng:
Chúng chỉ có thể được truy cập từ bên trong chức năng.
Vì các biến cục bộ chỉ được nhận ra bên trong các hàm của chúng, các biến có cùng tên có thể được sử dụng trong các chức năng khác nhau.