Hướng dẫn javascript use variable in if statement - javascript sử dụng biến trong câu lệnh if

60

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Có phải xác định các biến JavaScript bên trong if-statements đúng không?

if(a==1){
    var b = 1;
} else {
    var b = 0;
}

Tôi biết mã trên sẽ hoạt động, tuy nhiên, webmatrix làm nổi bật các biến.

Tôi có nên xác định các biến bên ngoài if-satement không? Hay tùy chọn đầu tiên đúng? Hoặc nó không thực sự quan trọng?

var b = '';
if(a==1){
    b = 1;
} else {
    b = 0;
}

hỏi ngày 17 tháng 7 năm 2012 lúc 23:05Jul 17, 2012 at 23:05

Hướng dẫn javascript use variable in if statement - javascript sử dụng biến trong câu lệnh if

Kể từ bản phát hành chính thức của ES2017 Spec (2017-07-08), ECMAscript không hỗ trợ phạm vi khối thực hiện bằng cách sử dụng từ khóa let hoặc const.does support true block scope now using the let or const keywords.


Vì Ecmascript không có phạm vi khối nhưng phạm vi chức năng, nên việc khai báo bất kỳ biến nào trên đỉnh của bối cảnh chức năng của bạn.

Mặc dù bạn có thể thực hiện các khai báo biến và chức năng tại bất kỳ điểm nào trong bối cảnh chức năng, nhưng nó rất khó hiểu và mang lại một số đau đầu kỳ lạ nếu bạn không nhận thức đầy đủ về hậu quả.

Ví dụ đau đầu:

var foo = 10;

function myfunc() {
    if (foo > 0) {
        var foo = 0;
        alert('foo was greater than 0');
    } else {
        alert('wut?');
    }
}

Đoán xem, chúng ta đang nhận được một 'wut?' Cảnh báo khi gọi myfunc ở đây. Đó là bởi vì một trình thông dịch ECMAScript sẽ tự động phát vào bất kỳ tuyên bố và chức năng nào của var lên đầu bối cảnh. Về cơ bản, foo được khởi tạo thành undefined trước lần đầu tiên if statement.

Đọc thêm: Phạm vi JavaScript và Hoisting

Đã trả lời ngày 17 tháng 7 năm 2012 lúc 23:07Jul 17, 2012 at 23:07

Hướng dẫn javascript use variable in if statement - javascript sử dụng biến trong câu lệnh if

JandyjandyjAndy

226K56 Huy hiệu vàng301 Huy hiệu bạc356 Huy hiệu Đồng56 gold badges301 silver badges356 bronze badges

2

Lưu ý rằng ECMAScript 6 không hỗ trợ các biến cấp khối bằng cách sử dụng từ khóa 'var'. Mặc dù các biến được khai báo với 'var' được nâng lên là phạm vi chức năng bất kể chúng được khai báo ở đâu, nhưng những biến được xác định bằng cách sử dụng 'LET' chỉ được đưa vào khối kèm theo.

Đã trả lời ngày 18 tháng 1 năm 2017 lúc 23:49Jan 18, 2017 at 23:49

Farhadffarhadffarhadf

1.8783 huy hiệu vàng19 Huy hiệu bạc27 Huy hiệu đồng3 gold badges19 silver badges27 bronze badges

Đặt một var bên trong một câu lệnh IF không chống lại "các quy tắc" của ngôn ngữ, nhưng điều đó có nghĩa là, vì var phát, VAR sẽ được xác định bất kể điều kiện của câu lệnh IF có được thỏa mãn hay không.

Đã trả lời ngày 17 tháng 7 năm 2012 lúc 23:09Jul 17, 2012 at 23:09

1

Bởi vì các biến của JavaScript có phạm vi cấp độ chức năng, ví dụ đầu tiên của bạn đang được điều chỉnh lại một cách hiệu quả biến của bạn, điều này có thể giải thích lý do tại sao nó được làm nổi bật.

Trên các phiên bản cũ của Firefox, chế độ JavaScript nghiêm ngặt của nó được sử dụng để cảnh báo về sự điều chỉnh lại này, tuy nhiên một trong những nhà phát triển của nó đã phàn nàn rằng nó chật chội phong cách của anh ấy nên cảnh báo đã bị tắt. (Các phiên bản hiện tại của Firefox hỗ trợ cú pháp khai báo biến cấp khối.)

Đã trả lời ngày 17 tháng 7 năm 2012 lúc 23:11Jul 17, 2012 at 23:11

NeilneilNeil

53.5K8 Huy hiệu vàng58 Huy hiệu bạc71 Huy hiệu đồng8 gold badges58 silver badges71 bronze badges

Xem hàm

var b = '';
if(a==1){
    b = 1;
} else {
    b = 0;
}
0 về phạm vi của các biến trong JavaScript là gì?

Tính đến năm 2012, không có phạm vi cấp độ khối trong JavaScript. Vì vậy, phiên bản đầu tiên của bạn là tốt: các biến được xác định trong phạm vi bên ngoài khối

var b = '';
if(a==1){
    b = 1;
} else {
    b = 0;
}
1.

Đã trả lời ngày 17 tháng 7 năm 2012 lúc 23:07Jul 17, 2012 at 23:07

Jandyjandyhcarver

226K56 Huy hiệu vàng301 Huy hiệu bạc356 Huy hiệu Đồng4 gold badges39 silver badges67 bronze badges

3

Bạn có thể đặt một biến trong câu lệnh IF JavaScript không?

Bạn có nên xác định một biến bên trong câu lệnh IF? Thành thật mà nói, không có câu trả lời đúng hay sai cho câu hỏi này. JavaScript cho phép nó, vì vậy bạn có thể đưa ra quyết định của mình từ đó.JavaScript allows it, so you can make your decision from there.

Bạn có thể khai báo một biến trong một câu lệnh IF không?

Nếu bạn chưa quen với cú pháp được sử dụng trong mẫu mã, nếu (int i = 5) {là một cách hoàn toàn hợp lệ để khai báo và xác định một biến, thì hãy sử dụng nó bên trong câu lệnh IF đã cho.Nó cho phép chúng tôi viết mã terser, rõ ràng hơn, đồng thời tránh giới hạn phạm vi của một biến.if (int i = 5) { is a perfectly valid way of declaring and defining a variable, then using it inside the given if statement. It allows us to write terser, clearer code, while also avoiding limiting the scope of a variable.

Bạn có thể khai báo một biến trong một hàm javascript không?

Một hàm trong JavaScript xác định một phạm vi cho các biến được khai báo bằng Var, LET và Const.Bất kỳ biến nào được khai báo trong chức năng đó chỉ có thể truy cập được từ hàm đó và bất kỳ chức năng lồng nhau nào.Một khối mã (nếu, cho, v.v.) chỉ định phạm vi cho các biến được khai báo với các từ khóa LET và const. . Any variable declared within that function is only accessible from that function and any nested functions. A code block ( if , for , etc.) defines a scope only for variables declared with the let and const keywords.

4 cách để khai báo một biến JavaScript là gì?

Nó được sử dụng để nói rằng trong các biến JavaScript có thể được khai báo với var, let và const, nhưng nếu bạn nghĩ về nó, khai báo chức năng, khai báo lớp và câu lệnh nhập cũng là cách để khai báo các biến.