Một vài Statement hay ho của Javascript
Bài đăng này đã không được cập nhật trong 3 năm
1 Empty Statement Trong Javascript, bạn có thể dùng một statement rỗng bằng việc sử dụng duy nhất dấu ;. Khi Javascript thực thi câu lệnh thì nó sẽ hiểu rằng đây là một câu lệnh rỗng, không có yêu cầu được thực thi. Rất ổn thay cho việc bạn phải sử dụng một sub-statement để thể hiện rằng bạn không muốn thực hiện câu lệnh ở đây.
Chúng ta sẽ thử xem đoạn code dưới đây.
var litmus = 'neutral';
var pH;
if(pH>0 && pH<7)
litmus = 'acidic';
else if(pH>7 && pH<15)
litmus = 'basic';
else
throw "Invalid pH value";
Chúng ta có thể thấy trong trường hợp pH bằng 7 thì một thông báo lỗi sẽ được hiện ra, nhưng nếu chúng ta muốn giá trị của litmus vẫn là mặc định thì sao ? Chỉ cần thêm một trường hợp ph bằng 7 và sử dụng Empty Statement là ok.
var litmus = 'neutral';
var pH;
if(pH>0 && pH<7)
litmus = 'acidic';
else if(pH===7)
; /* empty statement */
else if(pH>7 && pH<15)
litmus = 'basic';
else
throw "Invalid pH value";
Bây giờ thì khi pH bằng 7, sẽ chẳng có điều gì sảy ra cả, litmus vẫn nhận giá trị mặc định .
Empty statement cũng có thể sử dụng trong vòng lặp for
var ary = [];
for(var i = 0; i < 5; ary[i++] = i)
; /* empty statement */
console.log(ary);
// [1, 2, 3, 4, 5]
Thông thường, trong vòng lặp chúng ta thường sẽ thực hiện một số câu lệnh nào đấy. Bằng việc sử dụng empty statement, Javascript sẽ thực hiện vòng lặp bình thường mà không hề có câu lệnh nào sảy ra. Trong đoạn code trên, ary[i++] = i được thực hiện trong mỗi vòng lặp, giá trị của mảng ary được gán bằng giá trị của i.
2 Debugger Statement Cũng giống như các ngôn ngữ khác, Javascript sử dụng breakpoint ngoại trừ việc nó được thêm trực tiếp vào trong các dòng code chứ không phải là sử dụng một công cụ.
console.log('tesing');
debugger;
console.log('debugging statement');
Đây là kết quả của việc chạy đoạn code trên, có thể thấy đây là một cách khá đơn giản để debug code Javascript của mình.
3 Labeled Statement Bạn có thể sử dụng label trong Javascript để nhảy tới từng kết quả của label giống như câu lệnh goto trong một số ngôn ngữ khác. Label dạng này chỉ có thể được sử dụng với câu lệnh break và continue trong vòng lặp. Cú pháp của label thì rất đơn giản, bạn chỉ cần thêm tên của label và dấu hai chấm ở trước vòng lặp
loop: for(var i=0; i<5; i++){
if(i===2)
continue loop;
console.log(i);
// 0, 1, 3, 4
}
Ở đoạn code trên, khi i có giá trị bằng 2 thì vòng lặp được tiếp tục thay vì in ra giá trị của i.
Chỉ cần thay continue bằng break chúng ta sẽ thấy rằng giá trị in ra chỉ là 0 và 1.
loop: for(var i=0; i<5; i++){
if(i===2)
break loop;
console.log(i);
// 0, 1
}
Hoặc là với một ví dụ phức tạp hơn
loop: for(var i=0; i<4; i++) {
for(var j=0; j<2; j++) {
if(i===2 && j===1)
break loop;
console.log(i+"-"+j);
}
Vòng lặp sẽ break với i bằng 2 và j bằng 1, kết quả sẽ hiện ra sau đây.
0-0
0-1
1-0
1-1
2-0
4 With Statement Sử dụng with statement chúng ta có thể thêm một đối tượng lên trên đầu scope và xác định được các đối tượng liên kết với nhau.
var person = {
firstName: "John",
lastName: "Doe",
age: "18",
country: "Greenland"
};
with(person) {
console.log("Hi, my name is " + firstName + " " + lastName +
". I'm " + age + " years old, and live in " + country + ".");
}
// "Hi, my name is John Doe. I'm 18 years old, and live in Greenland."
Cùng xem đoạn code trên được viết thế nào nếu không sử dụng with.
var person = {
firstName: "John",
lastName: "Doe",
age: "18",
country: "Greenland"
};
console.log("Hi, my name is " + person.firstName + " " +
person.lastName + ". I'm " + person.age +
" years old, and live in " + person.country + ".");
// "Hi, my name is John Doe. I'm 18 years old, and live in Greenland."
Bạn có thể thấy, with statement là một phím tắt tuyệt vời nếu bạn làm việc với nhiều object. Tuy nhiên cần lưu ý rằng trong strict mode thì bạn không nên sử dụng vì có thể gây một số nhầm lẫn.
All rights reserved