"Chào, Amigo!"

"Chào, Bilaabo!"

"Tôi rất vui được gặp bạn. Hôm nay chúng ta có một bài học nhỏ nhưng rất bổ ích. Hôm nay tôi sẽ kể cho bạn nghe về ngôn ngữ JavaScript."

JavaScript - 1

"Một ngôn ngữ mới? Thật thú vị..."

"JavaScript hiện đang phổ biến nhờ có Internet. Thực tế là nó là ngôn ngữ duy nhất mà tất cả các trình duyệt có thể thực thi. Nếu bạn muốn thêm hoạt ảnh hoặc logic vào trang web của mình, thì bạn có thể làm điều đó với JavaScript."

"Có đúng là JavaScript là ngôn ngữ phổ biến nhất không?"

"Có, nhưng sẽ chính xác hơn nếu nói rằng đó là 'ngôn ngữ thứ hai' phổ biến nhất. Các lập trình viên C++, Java, C# và PHP cần viết các tập lệnh nhỏ bằng JavaScript để làm sống động các trang web của họ. Nhưng, chỉ có ít người hơn rất nhiều viết mã bằng JavaScript."

"Tại sao lại đặt tên là JavaScript? Nghe gần giống Java."

"Thực ra, ban đầu, nó được gọi là LiveScript, nhưng khi Java bắt đầu trở nên phổ biến hơn, nó được đổi tên thành JavaScript."

"Java và JavaScript là hai ngôn ngữ hoàn toàn khác nhau. Đừng nhầm lẫn chúng."

"Không giống như Java, JavaScript không có các lớp và không hỗ trợ gõ tĩnh, đa luồng, v.v. Java giống như một bộ công cụ xây dựng lớn, trong khi JavaScript giống như một con dao của Quân đội Thụy Sĩ. JavaScript được thiết kế để giải quyết nhiệm vụ nhỏ, nhưng Java là để giải quyết các nhiệm vụ lớn và rất lớn."

"Đây là một số sự thật về JavaScript:"

"Thực tế đầu tiên là JavaScript có chức năng, nhưng không có lớp"

"Bạn chỉ cần viết chương trình sử dụng một vài hàm và thế là xong. Ví dụ:"

JavaScript
function min(a, b)
{
 return a
}
Java
public static int min(int a, int b)
{
return a
}

"Các chức năng mới được khai báo bằng cách sử dụng «hàm <tên>».

"Một vi dụ khac:"

JavaScript
function min(ab)
{
 return a < b ? ab;
}

function main()
{
 var s = 3;
 var t = 5;
 var min = min(s, t);
}
Java
public static int min(int a, int b)
{
 return a < b ? ab;
}

public static void main()
{
 int s = 3;
 int t = 5;
 int min = min(s,t);
}

"Thực tế thứ hai là JavaScript có các biến, nhưng các biến đó không có kiểu"

"JavaScript là ngôn ngữ được nhập động. Điều này có nghĩa là các biến thực sự không có loại. Bất kỳ biến nào cũng có thể được gán một giá trị thuộc bất kỳ loại nào (giá trị có loại). Ví dụ:"

JavaScript
function main()
{
 var s = "Bender";
 var k = 1;
 var n = s.length;
}
Java
public static void main()
{
 String s ="Bender";
 int k = 1;
 int n = s.length();
}

"Nhưng gõ động làm tăng nguy cơ lỗi thời gian chạy:"

JavaScript
function main()
{
 var s = "Bender";
 var k = 1;
 var n = k.length;
}
Java
public static void main()
{
 String s ="Bender";
 int k = 1;
 int n = k.length();
}

"Trong ví dụ trên, chúng tôi đã sử dụng biến k (một số nguyên) thay vì s (một chuỗi). Trong Java, lỗi sẽ được phát hiện tại thời điểm biên dịch, nhưng trong JavaScript, nó sẽ không bị phát hiện cho đến sau khi mã đang chạy."

"Nếu bạn muốn khai báo một biến trong JavaScript, bạn cần viết «var <tên>». Không có loại biến nào và không có loại nào cho phương thức/hàm hoặc đối số của chúng."

"JavaScript có rất ít quy tắc nghiêm ngặt và rất nhiều tình trạng hỗn loạn."

"Bạn có thể khai báo một hàm với 5 đối số và gọi nó với 2 đối số—phần còn lại sẽ chỉ là null. Bạn có thể khai báo một hàm với 2 đối số và chuyển 5 đối số khi bạn gọi nó. 3 đối số sẽ bị loại bỏ. Có rất ít quyền kiểm soát về lỗi, lỗi chính tả và thay đổi."

"Thực tế thứ ba là JavaScript có các câu lệnh if, for và while"

"JavaScript có if, for và while. Đây là một tin tuyệt vời. Hãy xem các ví dụ sau:"

JavaScript
function main()
{
 var s = "Bender";

 var result = "";

 for(var i = 0; i < s.length; i++)
 {
  result += s[i] + "";
 }
 if(result.length > 10)
 {
  alert (result);
 }
 else
 {
  while(result.length <= 10)
  {
   result += " ";
  }
  alert(result);
 }
}
Java
public static void main()
{
 String s = "Bender";
 char[] s2 = s.toCharArray();
 String result = "";

 for(int i = 0; i < s.length(); i++)
 {
  result += s2[i] + "";
 }
 if(result.length() > 10)
 {
  System.out.println(result);
 }
 else
 {
  while (result.length() <= 10)
  {
   result += " ";
  }
  System.out.println(result);
 }
}

"Chúng khá giống nhau. Tôi nghĩ mình có thể tìm ra cách hoạt động của mã viết bằng JavaScript."

"Sự lạc quan của bạn là tốt."

"Thực tế thứ tư là JavaScript hỗ trợ các khối thử-bắt-cuối cùng"

" JavaScript có ngoại lệ ( Error ) và điều đó tốt. Nó không có ngoại lệ được kiểm tra , chỉ có ngoại lệ không được kiểm tra tương tự như RuntimeException . Cấu trúc thử-bắt-cuối cùng hoạt động giống như trong Java. Ví dụ:"

JavaScript
function main()
{
 try
 {
  var s = null;
  var n = s.length;
 }
 catch(e)
 {
  alert(e);
 }
}
Java
public static void main()
{
 try
 {
  String s = null;
  int n = s.length();
 }
 catch(Exception e)
 {
  System.out.println(e);
 }
}

"Khi chúng tôi cố gắng lấy độ dài của Chuỗi, một ngoại lệ sẽ được đưa ra do biến là null."

"Sự thật thứ năm là JavaScript có mảng"

"Tin tốt: JavaScript có mảng. Tin xấu: không có danh sách hoặc bộ sưu tập."

"Một tin tốt nữa là mảng có thể tự động mở rộng khi các phần tử mới được thêm vào và giảm đi khi các phần tử bị xóa. Nó giống như sự kết hợp giữa mảng và danh sách. "

Ví dụ:

JavaScript
function main()
{
 var m = [1, 3, 18, 45, 'c', "roma", null];
 alert(m.length); // 7

 m.push("end");
 alert(m.length); // 8

 for (var i = 0; i < m.length; i++)
 {
  alert(m[i]);
 }
}
Java
public static void main()
{
 List m = Arrays.asList(1, 3, 18, 45,'c', "roma", null);
 System.out.println(m.size()); // 7

 m.add("end");
 System.out.println(m.size()); // 8

 for (int i = 0; i < m.size(); i++)
 {
  System.out.println(m.get(i));
 }
}

"Các dấu ngoặc vuông trong khai báo mảng là gì?"

"Đó chính xác là khai báo mảng. Để khai báo một mảng, bạn cần viết các dấu ngoặc vuông. Sau đó, bạn liệt kê các phần tử của mảng ở giữa các dấu ngoặc. Bạn khai báo một mảng trống chỉ bằng một cặp dấu ngoặc."

Ví dụ
var m = [];

"Sự thật thứ sáu là JavaScript có các đối tượng"

"JavaScript có các đối tượng. Trên thực tế, mọi thứ trong JavaScript đều là một đối tượng, kể cả các kiểu nguyên thủy. Mỗi đối tượng được biểu diễn dưới dạng một tập hợp các cặp khóa-giá trị. Nói một cách đại khái, mọi đối tượng JavaScript tương đương với HashMap trong Java. Đây là một ví dụ về một khai báo đối tượng:"

JavaScript
function main()
{
 var m = {
  first_name : "Bill",
  last_name: "Gates",
  age: 54,
  weight: 67,
 children: ["Emma", "Catrin"],
 wife: {
  first_name : "Melinda",
  last_name: "Gates",
  age: 45,
  }
};

 alert(m.first_name); // Bill
 alert(m.age); // 54
 alert(m.wife.first_name); // Melinda

 m.age = 45;
 m.age++;
 m["first_name"] = "Stive";
 m["wife"] = null;
Java
public static void main()
{
 HashMap m = new HashMap();
 m.put("first_name", "Bill");
 m.put("last_name", "Gates");
 m.put("age", 54);
 m.put("weight", 67);

 String[] children = {"Emma", "Catrin"};
 m.put("children", children);

 HashMap wife = new HashMap();
 wife.put("first_name", "Melinda");
 wife.put("last_name", "Gates");
 wife.put("age", 45);
 m.put("wife", wife);

 System.out.println(m.get("first_name"));
 System.out.println(m.get("age"));

 HashMap w = ((HashMap)m.get("wife"));
 System.out.println(w.get("first_name")));

 m.put("age", 45);
 m.put("age", ((Integer)m.get("age")) + 1);
 m.put("first_name", "Stive");
 m.put("wife", null);

"Để tạo một đối tượng mới, bạn chỉ cần viết hai dấu ngoặc nhọn: «{}»."

"Bên trong dấu ngoặc nhọn, bạn có thể chỉ định dữ liệu đối tượng theo định dạng sau: «khóa, dấu hai chấm, giá trị, dấu phẩy»."

"Các trường đối tượng có thể được truy cập theo hai cách:"

báo cáo tương đương
m.age = 45;
m[“age”] = 45;

"Nếu trường được chỉ định không tồn tại, thì nó sẽ được tạo."

"Van xả của tôi bị quá tải hay gì đó. Tôi nghĩ chúng ta nên nghỉ ngơi một chút."

"Thực tế thứ bảy là JavaScript được tạo ra để hoạt động bên trong các trang web."