Tôi có một số mã như sau:Có gì sai khi xác định các biến JavaScript trong các khối?
if (condition) {
var variable = blah;
}
if (differentcondition) {
var variable = blah;
}
Điều này có đúng không?
Tôi giả định rằng biến sẽ không được gán nếu điều kiện không trả về đúng.
JSLint tiếp tục cho tôi biết, biến đã được xác định.
Tôi có làm điều này sai không?
Cảm ơn.
OK, Dưới đây là usecase thực tế của tôi, tôi đang làm đoàn sự kiện như thế này:
$("#container").click(function (event){
if ($(event.target).is('img.class1')) {
var imagesrc = $(event.target).attr('src');
// Do something with imagesrc
}
if ($(event.target).is('img.class2')) {
var imagesrc = $(event.target).attr('src');
// Do something with imagesrc
}
// This condition is mutually exclusive to the above 2
if ($(event.target).is('img.class3')) {
var imagesrc = $(event.target).attr('src');
// Do something with imagesrc
}
// This condition is mutually exclusive to 1 and 2 but not to 3
if ($(event.target).is('img.class4')) {
var imagesrc = $(event.target).attr('src');
// Do something with imagesrc
}
});
Trên thực tế những 2 lớp này không loại trừ lẫn nhau.
Điều này phù hợp với tôi, nhưng có đúng không?
Câu trả lời rất thông tin, nhưng tôi vẫn không hiểu cách tôi nên thiết lập các biến tại đây.
Thực ra tôi cũng muốn nói rằng một số điều kiện nhất định là loại trừ lẫn nhau và một số điều kiện nhất định là không.
Tôi nên cấu trúc như thế nào?
Tôi có lẽ đã sử dụng ví dụ này ngay từ đầu.
Tôi sẽ sử dụng phương pháp này: var variable = (điều kiện)? "foo": "bar"; – Roi