11/08/2018, 19:48

Javascript rất thú vị

Javascript là ngôn ngữ có nhiều điểm rất thú vị. Dưới đây là một vài ví dụ cho thấy sự thú vị của Javascript. Ví dụ 1 a = ["zero","one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve"] a[1+1] //-> "two" a["1"+"1"] //->"eleven" Trong ...

Javascript là ngôn ngữ có nhiều điểm rất thú vị. Dưới đây là một vài ví dụ cho thấy sự thú vị của Javascript.

Ví dụ 1

a = ["zero","one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve"]

a[1+1]
//-> "two"
a["1"+"1"]
//->"eleven"

Trong trường hợp 1 a[1+1] thì khá dễ hiểu vì đơn giản a[2] = "two".
Trường hợp 2 "1" + "1", thì + được coi là phép nối xâu và thành "11". Javascript sẽ tự động chuyển đổi kiểu dữ liệu từ xâu thành số nguyên và trả về kết quả là "eleven".

Ví dụ 2

a = ["hello", "world" , 1, 3];
b = 'join'
a[b]();
//->"hello,world,1,3"
b = 'sort';
a[b]();
//->[1, 3, "hello", "world"]

Lý do các objects trong Javascript đều là hash. Người dùng có thể truy cập 1 đối tượng bất kỳ bằng dấu [ ]. join và sort là 2 function objects của array và 2 đối tượng này đều có thể được truy cập bằng a['sort'] và a['join']. Thêm ký tự () đằng sau 1 function objects, thì tương đương với việc gọi hàm. Do vậy a[b]() sẽ tương đương với việc gọi hàm có tên được lưu ở biến b.

Function objects trong Javascript rất mạnhthú vị

Ví dụ 3

a = ["aaa", "bbb" , "ccc", "ddd"];
flag = true;
a[flag ? 'shift' : 'pop']();
//->"aaa"

flag = false;
a[flag ? 'shift' : 'pop']();
//->"ddd"

Ví dụ này tương tự như ví dụ trên. Biểu thức flag ? 'shift' : 'pop' sẽ được tính toán trước và dựa vào kết quả tính toán này để gọi hàm. Cách gọi hàm trong javascript rất linh động

Javascript quả thật rất thú vị, rất rất thú vị :D

0