EloquentJavascript - Chương 2 (Program Structure)

Trong chương này chúng ta sẽ bắt đầu làm những việc thực sự có thể được gọi là lập trình .
Chúng tôi sẽ mở rộng đề cập đến nhiều hơn những cú pháp của Javascript ngoài các toán tử hay kiểu của giá trị mà chúng tôi đề cập từ trước cho đến nay , chúng tôi sẽ cố gắng giải thích cho bạn hiểu một cách chi tiết và dễ dàng nhất.


Expressions and statements (biểu thức và câu lệnh )


Ở trong chương một chúng tôi đã tạo ra các giá trị và đề cập đến kiểu của các giá trị đó cùng với các toán tử được áp dụng cho chúng để có được tạo ra được các giá trị mới. Tạo nên các giá trị mới như thế là điểm cốt lõi của bất kì chương trình JavaScript nào. Nhưng tất nhiên các giá trị tạo nên phải được bao bọc bởi một cấu trúc để nó có ích . Vi vậy đó là những gì mà chúng tôi sẽ đề cập đến tiếp theo.
Một đoạn mã tạo ra một giá trị được gọi là biểu thức và mỗi giá trị được trình bay kiểu như (22 hoặc "phân tâm học") là một biểu thức. Một biểu thức nằm trong dấu ngoặc đơn cũng là một biểu thức , như là một toán tử nhị phân được áp dụng cho hai biểu thức hoặc một toán tử đơn nguyên được áp dụng cho một biểu thức.

Điều này cho ta thấy một phần vẻ đẹp của ngôn ngữ . Các biểu thức có thể chứa nhiều biểu thức kahsc theo cách tương tự như cách mà ngôn ngữ giao tiếp được lồng vào nhau , một phần phụ của một biểu thức có thể là một biểu thức  . Từ đó cho phép chúng ta xây dựng các biểu thức mô tả các tính toán phức tạp tùy ý.

Bạn có thể hiểu đơn giản như thế này nếu một biểu thức tương đương với một đoan trong bài văng thì một câu lệnh sẽ là một câu văn  hoàn chỉnh trong đoan văn đó  và một chương trình là một bài văn đầy đủ. Dưới đây là ví dụ về một chương trình.


Đó là một chương trình vô dụng . Một biểu thức có thể là nội dung để tạo ra một giá trị và sau đó có thể được sử dụng bởi nhiều biểu thức khác . Mỗi lệnh có thể hoạt động độc lập và riêng biệt với nhau vì vậy nó lên tới một cái gì đó khi nó ảnh hưởng đến thế giới.Nó có thể hiển thị một cái gì đó lên màn hìn điều đó được tính là thay đổi thế giới , hoặc nó có thể thay đổi trạng thái bên của trong của máy tính .

Bindings

Làm thế nào để một chương trình lưu một giá trị t ? Làm thế nào để nó có thể nhớ được mọi thứ trong chương trình ....Chúng ta đã thấy làm thế nào để tạo ra các giá trị mới từ các giá trị cũ , nhưng điều này không thay đổi các giá trị cũ , nhưng điều này không thay đổi các giá trị cũ và các giá trị mới phải được sử dụng ngay lập tức hoặc nó sẽ bị xóa . Để rằng buộc (Bindings) Javascript cung cấp một thức gọi là rằng buộc (binding) hoặc nói dễ hiểu hơn thì nó chính là biến (variable)

let caught =5*5

Đó là một loại statement thứ 2 . Từ đặc biệt (keyword) - let chỉ ra rằng câu lệnh này sẽ định nghĩa một rằng buộc . Nó viết đằng sau bởi tên của rằng buộc (tên biến) và nếu chúng ta muốn ngay lập tức cung cấp cho nó một giá trị thì chỉ cần viết dấu = và sau đó là một biểu thức nhất định .

Câu lệnh bên trên tạo một rằng buộc gọi là caught (bắt) và sử dụng nó để lấy giá trị được tạo băng cách lấy 5 nhân với 5.Sau khi một rằng buộc đã được xác định , tên của nó có thể được sử dụng như một biểu thức  . Giá trị của biểu thức là giá trị rằng buộc hiện đang giữa .Hiểu đơn giản rằng  Dưới đây là một í dụ :

Khi một điểm rằng buộc tại một giá trị , điều đó không có nghĩa là nó gắn với giá trị đó mãi mã . Toán tử = có thể được sử dụng bất cứ lúc nào trên các rằng buộc hiện có để ngắt kết nối chúng khỏi giá trị hiện tại của chúng và khiến chúng trỏ đến một  giá trị mới.





Bạn không nên tưởng tượng các rằng buộc như các xúc tu , chứ không phải là hộp . Các rằng buộc bản thân nó không chứa các giá trị mà nắm bắt giá trị mà trỏ đến giá trị , hai rằng buộc có thể cùng trỏ đến một giá trị.(liên hệ với con trỏ trong c) . Một chương trình chỉ có thể truy cập các giá trị mà nó tham chiếu . Khi bạn cần nhớ một giá trị , bạn tạo ra một xúc tua để giữa nó (caughut lấy nó) hoặc bạn có thể gắn một xúc tu đang có của bạn với nó .

Hãy cùng đến với một ví dụ khác . Để nhớ số tiền mà Luigi vẫn còn nợ bạn , bạn tạo ra một rằng buộc và sau khi anh ấy trả tiền , bạn cung cấp cho giá trị rằng buộc mới này.


Khi bạn khai báo một rằng buộc mà không gán nó cho một giá trị , rõ ràng lúc này xúc tu không còn gì để nắm hay các biến không trỏ đến bất kì giá trị nào. Vì vậy nếu bạn yêu cầu giá trị của một rằng buộc trống , bạn sẽ nhận được một giá trị underfine.

Một câu lệnh let có thể được định nghĩa nhiều rằng buộc  . Các định nghĩa phải được phân tách bằng dấu phẩy.

Các từ khóa như var và const cũng có thể được sử dụng để tạo các rằng buộc theo cách tương tự như let.

Keyword Var là cách khai báo rằng buộc trong JS trước năm 2015 . Tôi sẽ đề cập đến phần này trong chương tiếp theo . Hiện tại , hãy nhớ rằng chức năng của 2 keyword let và var hầu như giống nhau nhưng chúng tôi hiếm khi sử dụng nó trong cuốc sách này vì nó có một số thuộc tính khó hiểu.

Binding names

Tên rằng buộc có thể là bất kì từ nào . Các chữ số có thể là một phần của tên rằng buộc . Catch22 là một tên hợp lệ , nhưng bạn chú rằng tên không được bắt đầu bằng một chữ số.Tên rằng buộc có thể bao gồm kí hiệu $ hoặc dấu gạch dưới (_) nhưng không có dấu chấm câu hoặc ký tự đặc biệt nào 
khác.

Các từ có ý nghĩa đặc biệt , chẳng hạn như let là từ khóa và chúng không thể sử dụng là tên rằng buộc.Ngoài ra còn có một số từ được sự dụng để sử dụng trong các phiên bản JavaScript trong tương lai , cũng có thể được sử dụng làm tên rằng buộc . Danh sách đầy đủ các từ khóa và các từ danh riêng là khá dài.

The Environment 

Tập hợp các rằng buộc (biến) và các giá trị của chúng tồn tại tại một thời điểm nhất định được gọi là môi trường . Khi một chương trình khởi động , môi trường được tạo ra luôn luôn có những biến tồn tại , nó tồn tại một cách mặc định . Nó luôn chứa các rằng buộc là một phần của tiêu chuẩn và trong hầu hết thời gian , nó cũng có các rằng buộc cung cấp các cách để tương tác với hệ thống xung quang . Ví dụ : trong trình duyệt , có các chứa năng tương tác với trang web hiện đang tải và để nhận biết thông tin đầu vào chuột và bàn phím.

Functions

Có rất nhiều giá trị được cung cấp trong môi trường mặc định có kiểu là một hàm (function)..Hàm là một phần của chương trình được bao bọc trong một giá trị . Các giá trị này có thể được sử dụng hay nói dễ hiểu hơn là được gọi (call) để chạy chương trình được bao bọc . Ví dụ : trong môi trường trình duyệt , một rằng buộc (biến) có tên là prompt nắm giữa một chức năng hiển thị một hộp thoại nhỏ yêu cầu nhập liệu của người dùng . Nó được sử dụng như thế này.



Thực hiện một hàm được gọi là Invoke hay Call , Applying nó . Bạn có thể gọi một hàm bằng cách đặt dấu ngoặc đơn sau một biểu thức tạo ra giá trị hàm. Thông thường , bạn sẽ trực tiếp sử dụng tên của rằng buộc để nắm giữa hàm đó. Các giá trị giữa các dấu ngoặc đơn chính là chương trình bên trong hàm . Trong ví dụ này , hàm prompt sử dụng chuỗi mà chúng ta cung cấp cho nó dưới dạng văn bản để hiển thị trong hộp thoại.Các giá trị được đưa ra cho các hàm được gọi là đối số . Các hàm khác nau có thể cần số lượng đối số khác nhau hoặc loại đối số khác nhau.

Hàm prompt không được sử dụng nhiều trong lập trình hiện đại , chủ yếu do bạn không kiểm soát cách thức hộp thoại kết quả , nhưn có thể hữu ích trong các chương trình và thử nghiệm.

The Console.log Function 

Trong các ví dụ , tôi đã sử dụng console.log để xuất giá trị . Trong hầu hết các môi trường chạy JS (bao gồm tất cả các trình duyệt web hiện đại và NodeJS) cung cấp các hàm console.log ghi lại các đối số của nó cho một số thiết bị xuất văn bản . Trong các trình duyệt đầu ra nằm trong bảng điều khiển của JS.
Bạn có thể thấy rằng tên rằng buộc không được phép chứ ký tự dấu chấm nhưng console.log có một ký tự.Điều này là bởi vì console.log không phải là một rằng buộc đơn giản . Nó thực sự là một biểu thức lấy thuộc tính log từ giá trị được giữ bởi rằng buộc console. Chúng ta sẽ tìm hiểu chính xác điều này có nghĩa gì trong chương 4.

Return Values

Hiển thị hộp thoại hoặc viết văn bản lên màn hình là một chức năng phụ. Rất nhiều hàm hữu ích bởi vì các chức năng phụ mà chúng tạo ra . Các hàm cũng có thể tạo ra các giá trị , trong trường hợp hàm không cần phải có chức năng phụ để có ích.Ví dụ hàm Math.max nhận vào 2 đối số và trả về số lớn nhất.

Khi một hàm tạo ra một giá trị , nó được gọi là trả về giá trị đó. Bất kì điều gì tạo ra một giá trị là một biểu thức (expression) trong JavaScript , có nghĩa là các lệnh gọi hàm có thể được sử dụng trong các biểu thức bao bọc nó , trong chương tiếp theo chúng ta sẽ giải thích làm thế nào để viết các chứng năng của riêng bạn.

Control Flow

Khi chương trình của bạn chứa nhiều hơn một câu lệnh , các câu lệnh được thực thi như thể chúng là một câu chuyện , từ trên xuống dưới.Chương trình này 

Nhận xét

Bài đăng phổ biến