Tôi có một trang tôi đang xây dựng và giải pháp của chúng tôi cho một vấn đề liên quan đến việc gói một số mã bên trong một hàm sau đó gọi đó là khi được yêu cầu.
Bây giờ trang đang phát triển và mỗi mục có chức năng riêng. Theo D. Crockford, mỗi chức năng đều được đặt trong một var vì vậy:
function functionName[]{}
tương đương với:
var var1 = functionName[]{}
Vì vậy, bây giờ chúng tôi có rất nhiều vars trong trang [tôi cũng đã viết chúng cụ thể ở định dạng sau vì ông Crockford quảng bá] và tôi đang lo lắng điều này tạo ra quá nhiều biến [không chắc điều này sẽ gây ra bất kỳ vấn đề nào, hiệu suất hoặc nếu không] . Tôi đang nghĩ đến việc tạo một đối tượng duy nhất theo nghĩa đen và thêm từng hàm làm giá trị vào một khóa. Điều này tôi nghĩ sẽ làm giảm tất cả các vars này vào một đơn vị có thể quản lý được và giảm số lượng biến tôi đang sử dụng [và tránh bất kỳ vấn đề tiềm năng nào] - hay nó sẽ?
Thanks!
Đã hỏi ngày 26 tháng 3 năm 2014 lúc 16:26Mar 26, 2014 at 16:26
11
Từ khóa VAR thực sự đang được sử dụng để quản lý phạm vi biến. Không sử dụng từ khóa VAR làm cho biến trở thành một biến toàn cầu. Bộ nhớ bị chiếm bởi các biến được xóa khi biến không được sử dụng nữa. Hầu hết các trình duyệt hiện đại chứa một bộ thu gom rác chịu trách nhiệm giải phóng các không gian không sử dụng. Vì vậy, đề xuất rằng sử dụng từ khóa VAR trong các khối sẽ làm cho trình thông dịch JS của bạn tìm kiếm ít hơn cho biến, nếu không nó sẽ tìm kiếm toàn bộ tài liệu để có được giá trị.
Đã trả lời ngày 26 tháng 3 năm 2014 lúc 16:38Mar 26, 2014 at 16:38
RezarezaReza
2.7244 huy hiệu vàng26 Huy hiệu bạc37 Huy hiệu đồng4 gold badges26 silver badges37 bronze badges
3
Về mặt hiệu suất Không thành vấn đề, bạn có thể sử dụng nhiều biến như bạn muốn, hiệu suất chỉ bị ảnh hưởng bởi các tác vụ được thực hiện trong hàm.
Đã trả lời ngày 26 tháng 3 năm 2014 lúc 16:31Mar 26, 2014 at 16:31
Khi bạn tiếp tục tăng các biến, giới hạn heap được đặt bởi động cơ JS có liên quan sẽ được phát huy.
Đối với EG - V8 Engine dường như đã đặt thành 1,4 GB
Nếu bạn đã từng hết đó, đã đến lúc bạn kiểm tra mã & ngừng đổ lỗi cho JS.
Trên một lưu ý nghiêm túc, từ quan điểm thực tế, đó là một giới hạn rất lớn, cho bạn biết rằng bạn không cần phải lo lắng về nó rất nhiều.
Bên cạnh khu phố thân thiện của bạn, GC sẽ luôn tiếp tục dọn dẹp và đảm bảo bạn sống xa hoa với các biến số.
Đã trả lời ngày 26 tháng 3 năm 2014 lúc 16:45Mar 26, 2014 at 16:45
loxxyloxxyloxxy
12.8k2 Huy hiệu vàng24 Huy hiệu bạc54 Huy hiệu đồng2 gold badges24 silver badges54 bronze badges
5
Đóng gói mã của bạn trong không gian tên là một ý tưởng tốt nhưng bạn sẽ không lưu bộ nhớ hoặc tăng hiệu suất theo cách đó. Từ quan điểm hiệu suất, cả hai cách bạn đã thể hiện đều giống nhau. Tuy nhiên, có một quy ước để tránh NameClashing dựa trên miền được hoàn nguyên - hãy tưởng tượng một lib js được tạo ra cho như vậy:
There is a convention to avoid nameclashing however based on reverted domain - imagine a JS lib made for SO:
// The following two lines are to protect namespace from overwriting and allow to
// extend them easily
if [!com] var com = {};
if [!com.stackoverflow] com.stackoverflow = {};
com.stackoverflow.renderSomething = function[]{
// Some very clever code here
};
Không có gì khác bạn có thể đạt được theo cách này nhưng thật đáng để tổ chức mã của bạn theo cách này.
Và chỉ để làm rõ:
function functionName[]{};
gần như giống nhưalmost the same as
var functionName = function[]{};
Almost
bởi vì ở dạng đầu tiên functionName
được xác định ở parse-time
và hình thức sau xác định functionName
tại run-time
.
Đã trả lời ngày 26 tháng 3 năm 2014 lúc 16:39Mar 26, 2014 at 16:39
ElmovankielmoelmovankielmoElmoVanKielmo
10,4K2 Huy hiệu vàng 30 Huy hiệu bạc45 Huy hiệu Đồng2 gold badges30 silver badges45 bronze badges
2
4 Cách để khai báo biến JavaScript:
- Sử dụng
0var var1 = functionName[]{}
- Sử dụng
1var var1 = functionName[]{}
- Sử dụng
2var var1 = functionName[]{}
- Không sử dụng gì
Biến là gì?
Các biến là các thùng chứa để lưu trữ dữ liệu [lưu trữ giá trị dữ liệu].
Trong ví dụ này,
var var1 = functionName[]{}
3, var var1 = functionName[]{}
4 và var var1 = functionName[]{}
5, là các biến, được khai báo với từ khóa var var1 = functionName[]{}
0:Trong ví dụ này,
var var1 = functionName[]{}
3, var var1 = functionName[]{}
4 và var var1 = functionName[]{}
5, là các biến, được khai báo với từ khóa var var1 = functionName[]{}
1:Trong ví dụ này,
var var1 = functionName[]{}
3, var var1 = functionName[]{}
4 và var var1 = functionName[]{}
5, là các biến không được khai báo:Từ tất cả các ví dụ trên, bạn có thể đoán:
- x lưu trữ giá trị 5
- y lưu trữ giá trị 6
- Z lưu trữ giá trị 11
Khi nào nên sử dụng JavaScript var?
Luôn khai báo các biến JavaScript với ____ 10, ________ 11, hoặc
var var1 = functionName[]{}
2.Từ khóa
var var1 = functionName[]{}
0 được sử dụng trong tất cả các mã JavaScript từ năm 1995 đến 2015.Các từ khóa
var var1 = functionName[]{}
1 và var var1 = functionName[]{}
2 đã được thêm vào JavaScript vào năm 2015.Nếu bạn muốn mã của mình chạy trong các trình duyệt cũ hơn, bạn phải sử dụng ____10.
Khi nào nên sử dụng JavaScript Const?
Nếu bạn muốn một quy tắc chung: Luôn khai báo các biến có
var var1 = functionName[]{}
2.Nếu bạn nghĩ rằng giá trị của biến có thể thay đổi, hãy sử dụng
var var1 = functionName[]{}
1.Trong ví dụ này,
function functionName[]{};
3, function functionName[]{};
4 và function functionName[]{};
5, là các biến:Thí dụ
const price1 = 5; const price2 = 6; Đặt tổng = giá1 + giá2;
const price2 = 6;
let total = price1 + price2;
Hãy tự mình thử »
Hai biến
function functionName[]{};
3 và function functionName[]{};
4 được khai báo với từ khóa var var1 = functionName[]{}
2.Đây là những giá trị không đổi và không thể thay đổi.
Biến
function functionName[]{};
5 được khai báo với từ khóa var var1 = functionName[]{}
1.Đây là một giá trị có thể được thay đổi.
Giống như đại số
Giống như trong đại số, các biến giữ giá trị:
Giống như trong đại số, các biến được sử dụng trong các biểu thức:
Từ ví dụ trên, bạn có thể đoán rằng tổng số được tính là 11.
Ghi chú
Biến là container để lưu trữ giá trị.
Định danh JavaScript
Tất cả các biến JavaScript phải được xác định với các tên duy nhất.variables must be identified with unique names.
Những tên độc đáo này được gọi là định danh.identifiers.
Định danh có thể là tên ngắn [như X và Y] hoặc tên mô tả hơn [Age, Sum, TotalVolume].
Các quy tắc chung để xây dựng tên cho các biến [định danh duy nhất] là:
- Tên có thể chứa các chữ cái, chữ số, dấu gạch dưới và dấu hiệu đô la.
- Tên phải bắt đầu bằng một lá thư.
- Tên cũng có thể bắt đầu với $ và _ [nhưng chúng tôi sẽ không sử dụng nó trong hướng dẫn này].
- Tên là trường hợp nhạy cảm [y và y là các biến khác nhau].
- Các từ dành riêng [như từ khóa JavaScript] không thể được sử dụng làm tên.
Ghi chú
Biến là container để lưu trữ giá trị.
Định danh JavaScript
Tất cả các biến JavaScript phải được xác định với các tên duy nhất.
Những tên độc đáo này được gọi là định danh.
Định danh có thể là tên ngắn [như X và Y] hoặc tên mô tả hơn [Age, Sum, TotalVolume].
Các quy tắc chung để xây dựng tên cho các biến [định danh duy nhất] là:
Ghi chú
Biến là container để lưu trữ giá trị.
Định danh JavaScript
Tất cả các biến JavaScript phải được xác định với các tên duy nhất.
Những tên độc đáo này được gọi là định danh.
Định danh có thể là tên ngắn [như X và Y] hoặc tên mô tả hơn [Age, Sum, TotalVolume].
Các quy tắc chung để xây dựng tên cho các biến [định danh duy nhất] là:
Tên có thể chứa các chữ cái, chữ số, dấu gạch dưới và dấu hiệu đô la.
Tên phải bắt đầu bằng một lá thư.
Tên cũng có thể bắt đầu với $ và _ [nhưng chúng tôi sẽ không sử dụng nó trong hướng dẫn này].
let person = "John Doe";
let answer = 'Yes I am!';
Hãy tự mình thử »
Hai biến function functionName[]{};
3 và function functionName[]{};
4 được khai báo với từ khóa var var1 = functionName[]{}
2.
function functionName[]{};
function functionName[]{};
var var1 = functionName[]{}
Đây là những giá trị không đổi và không thể thay đổi.
Biến
function functionName[]{};
5 được khai báo với từ khóa var var1 = functionName[]{}
1.Đây là một giá trị có thể được thay đổi.
Giống như đại số
Giống như trong đại số, các biến giữ giá trị:
Giống như trong đại số, các biến được sử dụng trong các biểu thức:
Từ ví dụ trên, bạn có thể đoán rằng tổng số được tính là 11.assign a value to the variable, use the equal sign:
Ghi chú
Biến là container để lưu trữ giá trị.
Định danh JavaScript
Thí dụ
const price1 = 5; const price2 = 6; Đặt tổng = giá1 + giá2;
Hãy tự mình thử »
let carName =
"Volvo";
document.getElementById["demo"].innerHTML = carName;
Hãy tự mình thử »
Ghi chú
Biến là container để lưu trữ giá trị.
Một tuyên bố, nhiều biến
Bạn có thể khai báo nhiều biến trong một câu lệnh.
Bắt đầu câu lệnh với
var var1 = functionName[]{}
1 và tách các biến bằng dấu phẩy:comma:Một tuyên bố có thể kéo dài nhiều dòng:
Giá trị = không xác định
Trong các chương trình máy tính, các biến thường được khai báo mà không có giá trị. Giá trị có thể là một cái gì đó phải được tính toán, hoặc một cái gì đó sẽ được cung cấp sau, như đầu vào của người dùng.
Một biến được khai báo mà không có giá trị sẽ có giá trị
var functionName = function[]{};
8.Tên biến đổi sẽ có giá trị
var functionName = function[]{};
5 sau khi thực hiện câu lệnh này:Tử lại các biến JavaScript
Nếu bạn ghi lại một biến JavaScript được khai báo với
var var1 = functionName[]{}
0, nó sẽ không mất giá trị của nó.Biến
var functionName = function[]{};
6 vẫn sẽ có giá trị "Volvo" sau khi thực hiện các câu sau:Ghi chú
Bạn không thể khai báo lại một biến được khai báo với
var var1 = functionName[]{}
1 hoặc var var1 = functionName[]{}
2.Điều này sẽ không hoạt động:
Hãy để Carname = "Volvo"; Hãy để Carname;
let carName;
Số học JavaScript
Cũng như đại số, bạn có thể thực hiện số học với các biến JavaScript, sử dụng các toán tử như
var functionName = function[]{};
1 và Almost
5:Bạn cũng có thể thêm chuỗi, nhưng chuỗi sẽ được nối:
Cũng thử điều này:
Ghi chú
Bạn không thể khai báo lại một biến được khai báo với
var var1 = functionName[]{}
1 hoặc var var1 = functionName[]{}
2.Điều này sẽ không hoạt động:
Hãy để Carname = "Volvo"; Hãy để Carname;
Số học JavaScript
Cũng như đại số, bạn có thể thực hiện số học với các biến JavaScript, sử dụng các toán tử như
var functionName = function[]{};
1 và Almost
5:Bạn cũng có thể thêm chuỗi, nhưng chuỗi sẽ được nối:
Cũng thử điều này:
Nếu bạn đặt một số trong báo giá, phần còn lại của các số sẽ được coi là chuỗi và được nối.
Bây giờ hãy thử điều này: