CoffeeScript - Hướng dẫn Nhanh

Hiện tại, JavaScript là ngôn ngữ động chính thống nhanh nhất hiện có và nó được biết đến như là ngôn ngữ phổ biến của web. Nó được phát triển bởi Brendan Eich vào năm 1995 trong 10 ngày.

Do các tính năng hiệu quả của nó, JavaScript đã trở nên phổ biến và nhanh chóng đi ra toàn cầu. Nó ở đó trong phòng thí nghiệm trong một thời gian rất ngắn, không đủ để đánh bóng ngôn ngữ. Có thể vì lý do này, mặc dù có những phần tốt, JavaScript có một số lỗi thiết kế và nó mang tiếng xấu là một ngôn ngữ kỳ quặc.

CoffeeScript là gì?

CoffeeScript là một ngôn ngữ nhẹ dựa trên Ruby và Python transcompiles(biên dịch từ ngôn ngữ nguồn này sang ngôn ngữ nguồn khác) sang JavaScript. Nó cung cấp cú pháp tốt hơn tránh các phần kỳ quặc của JavaScript, vẫn giữ được tính linh hoạt và vẻ đẹp của ngôn ngữ.

Ưu điểm của CoffeeScript

Sau đây là những ưu điểm của CoffeeScript:

  • Easily understandable- CoffeeScript là một dạng viết tắt của JavaScript, cú pháp của nó khá đơn giản so với JavaScript. Sử dụng CoffeeScript, chúng ta có thể viết các mã rõ ràng, rõ ràng và dễ hiểu.

  • Write less do more - Đối với một đoạn mã khổng lồ trong JavaScript, chúng ta cần số dòng CoffeeScript tương đối ít hơn.

  • Reliable - CoffeeScript là một ngôn ngữ lập trình an toàn và đáng tin cậy để viết các chương trình động.

  • Readable and maintainable- CoffeeScript cung cấp bí danh cho hầu hết các toán tử giúp mã có thể đọc được. Cũng dễ dàng duy trì các chương trình được viết bằng CoffeeScript.

  • Class-based inheritance- JavaScript không có các lớp. Thay vì chúng, nó cung cấp các nguyên mẫu mạnh mẽ nhưng khó hiểu. Không giống như JavaScript, chúng ta có thể tạo các lớp và kế thừa chúng trong CoffeeScript. Ngoài ra, nó cũng cung cấp các thuộc tính cá thể và tĩnh cũng nhưmixins. Nó sử dụng nguyên mẫu gốc của JavaScript để tạo các lớp.

  • No var keyword - Không cần sử dụng var từ khóa để tạo một biến trong CoffeeScript, do đó chúng ta có thể tránh được việc giảm tốc phạm vi ngẫu nhiên hoặc không mong muốn.

  • Avoids problematic symbols- Không cần sử dụng dấu chấm phẩy và dấu ngoặc đơn có vấn đề trong CoffeeScript. Thay vì dấu ngoặc nhọn, chúng ta có thể sử dụng khoảng trắng để phân biệt các mã khối như hàm, vòng lặp, v.v.

  • Extensive library support- Trong CoffeeScript, chúng ta có thể sử dụng các thư viện của JavaScript và ngược lại. Do đó, chúng tôi có quyền truy cập vào một bộ thư viện phong phú khi làm việc với CoffeeScript.

Lịch sử của CoffeeScript

  • CoffeeScript được phát triển bởi Jeremy Ashkenas. Nó được cam kết lần đầu trong Git vào ngày 13 tháng 12 năm 2009.

  • Ban đầu, trình biên dịch của CoffeeScript được viết bằng ngôn ngữ Ruby.

  • Vào tháng 3 năm 2010, trình biên dịch CoffeeScript đã được thay thế; lần này thay vì Ruby, họ sử dụng CoffeeScript.

  • Và cùng năm đó, CoffeeScript 1.0 được phát hành và tại thời điểm phát hành, nó là một trong những dự án được mong muốn nhất của trung tâm Git.

Hạn chế của CoffeeScript

  • Sensitive to whitespaces- CoffeeScript rất nhạy cảm với các khoảng trắng, vì vậy các lập trình viên cần phải rất cẩn thận trong khi cung cấp các dấu thụt đầu dòng. Nếu chúng tôi không duy trì thụt lề thích hợp, toàn bộ mã có thể bị sai.

IDE CoffeeScript của TutorialsPoint

Bạn có thể biên dịch các tệp CoffeeScript bằng trình biên dịch CoffeeScript của TutorialsPoint được cung cấp trong phần Coding Ground của chúng tôi http://www.tutorialspoint.com/codingground.htm. Làm theo các bước dưới đây để sử dụng trình biên dịch CoffeeScript của chúng tôi.

Bước 1

Ghé thăm trang chủ của trang web của chúng tôi bằng cách nhấp vào liên kết sau www.tutorialspoint.com .

Bước 2

Bấm vào nút có tên CODING GROUND nằm ở góc trên cùng bên phải của trang chủ như được đánh dấu trong ảnh chụp nhanh dưới đây.

Bước 3

Điều này sẽ dẫn đến CODING GROUNDphần cung cấp thiết bị đầu cuối trực tuyến và IDE cho khoảng 135 ngôn ngữ lập trình. Mở IDE CoffeeScript trong phần IDE Trực tuyến được hiển thị trong ảnh chụp nhanh sau.

Bước 4

Nếu bạn dán mã CoffeeScript của mình vào main.coffee (Bạn có thể thay đổi tên tệp) và nhấp vào Preview , sau đó bạn có thể thấy JavaScript đã biên dịch trong bảng điều khiển như được hiển thị trong ảnh chụp nhanh sau.

Trình biên dịch của các phiên bản CoffeeScript mới nhất được viết bằng chính CoffeeScript. Để chạy các tệp CoffeeScript trong hệ thống của bạn mà không cần trình duyệt, bạn cần một thời gian chạy JavaScript.

Node.js

Node.js là một khung JavaScript được sử dụng để phát triển các ứng dụng máy chủ mạng. Nó cũng hoạt động như một cầu nối giữa JavaScript và Hệ điều hành.

Phiên bản dòng lệnh của CoffeeScript được phân phối dưới dạng gói Node.js. Do đó, để cài đặt CoffeeScript (dòng lệnh) trong hệ thống của bạn, trước tiên bạn cần cài đặt node.js.

Cài đặt Node.js

Dưới đây là các bước để tải xuống và cài đặt Node.js trong hệ thống của bạn.

Bước 1

Truy cập trang chủ nodejs và tải xuống phiên bản ổn định của nó cho windows bằng cách nhấp vào nút được tô sáng trong ảnh chụp nhanh được đưa ra bên dưới.

Bước 2

Khi nhấp vào, một tệp .msc có tênnode-v5.50-x64sẽ được tải xuống hệ thống của bạn, chạy tệp đã tải xuống để bắt đầu thiết lập Node.js. Đây là ảnh chụp nhanh của trang Chào mừng của trình hướng dẫn thiết lập Node.js.

Bước 3

Nhấp vào nút Tiếp theo trong trang Chào mừng của trình hướng dẫn thiết lập Node.js sẽ dẫn bạn đến trang Thỏa thuận cấp phép người dùng cuối. Chấp nhận thỏa thuận cấp phép và nhấp vào nút Tiếp theo như hình dưới đây.

Bước 4

Trên trang tiếp theo, bạn cần đặt thư mục đích thành đường dẫn mà bạn muốn cài đặt Node.js. Thay đổi đường dẫn đến thư mục cần thiết và nhấp vào nút Tiếp theo.

Bước 5

bên trong Custom setup , chọn thời gian chạy Node.js để cài đặt tệp node.exe và nhấp vào Tiếp theo.

Bước 6

Cuối cùng, nhấp vào nút Cài đặt sẽ bắt đầu cài đặt Node.js.

Nhấp vào nút Kết thúc của trình hướng dẫn thiết lập Node.js như hình dưới đây để hoàn tất cài đặt Node.js.

Cài đặt CoffeeScript

Node.js cung cấp cho bạn một dấu nhắc lệnh (Node.js command prompt). Bạn có thể cài đặt CoffeeScript trên toàn cầu bằng cách nhập lệnh sau vào đó.

c:\> npm install -g coffeescript

Khi thực hiện lệnh trên, CoffeeScript sẽ được cài đặt trong hệ thống của bạn bằng cách tạo ra kết quả sau.

xác minh

Bạn có thể xác minh việc cài đặt CoffeeScript bằng cách gõ lệnh sau.

c:\> coffee -v

Khi cài đặt thành công, lệnh này cung cấp cho bạn phiên bản CoffeeScript như hình dưới đây.

Khi cài đặt CoffeeScript trên Node.js, chúng ta có thể truy cập vào coffee-command line utility. Ở đây,coffeelệnh là lệnh quan trọng. Sử dụng các tùy chọn khác nhau của lệnh này, chúng ta có thể biên dịch và thực thi các tệp CoffeeScript.

Bạn có thể xem danh sách các tùy chọn của coffee lệnh sử dụng nó -h hoặc là --helpLựa chọn. MởNode.js command prompt và thực hiện lệnh sau trong đó.

c:\>coffee -help

Lệnh này cung cấp cho bạn danh sách các tùy chọn khác nhau của coffee, cùng với mô tả hoạt động được thực hiện bởi từng người trong số họ như hình dưới đây.

Biên dịch mã CoffeeScript

Các tệp CoffeeScript được lưu với phần mở rộng .coffee. Bạn có thể biên dịch các tệp này bằng cách sử dụng-c or --compile tùy chọn của lệnh cà phê như hình dưới đây.

c:\>coffee -c filename.coffee

Thí dụ

Giả sử có một tệp trong hệ thống của bạn có mã CoffeeScript sau sẽ in một thông báo trên bảng điều khiển.

name = "Raju"
console.log "Hello"+name+" Welcome to Tutorialspoint"

Note - Sự console.log() hàm in chuỗi đã cho trên bảng điều khiển.

Để biên dịch đoạn mã trên, hãy lưu nó vào một tệp có tên sample.coffee. Mở dấu nhắc lệnh Node.js. Duyệt qua đường dẫn mà bạn đã lưu tệp và biên dịch nó bằng cách sử dụng-c tùy chọn của lệnh cà phê của coffee command-line utility như hình bên dưới.

c:\> coffee -c sample.coffee

Khi thực hiện lệnh trên, trình biên dịch CoffeeScript biên dịch tệp đã cho (sample.coffee) và lưu nó vào vị trí hiện tại với tên sample.js như hình dưới đây.

Nếu bạn mở tệp sample.js, bạn có thể quan sát JavaScript được tạo như hình bên dưới.

// Generated by CoffeeScript 1.10.0
(function() {
  var name;
  name = "Raju";
  console.log("Hello " + name + " Welcome to Tutorialspoint");

}).call(this);

Thực thi mã CoffeeScript

Bạn có thể thực thi một tệp CoffeeScript bằng cách chỉ cần chuyển tên tệp cho lệnh coffee trong dấu nhắc lệnh Node.js như sau.

c:\> coffee sample.coffee

Thí dụ

Ví dụ: hãy để chúng tôi thực thi tệp sample.coffee. Đối với điều này, hãy mở dấu nhắc lệnh Node.js. Duyệt qua đường dẫn mà bạn đã lưu tệp và thực thi tệp bằng cách chuyển trực tiếp tên của nó vào lệnh coffee như hình dưới đây.

Xem và biên dịch

Trong một số trường hợp, có khả năng chúng tôi thực hiện nhiều thay đổi đối với tập lệnh của mình. Sử dụng–w tùy chọn của lệnh cà phê, bạn xem các tập lệnh của mình để biết các thay đổi.

Bạn có thể xem và biên dịch một tệp đồng thời bằng cách sử dụng -wctùy chọn như hình dưới đây. Khi chúng tôi sử dụng tùy chọn này, tệp sẽ được biên dịch lại mỗi khi bạn thực hiện các thay đổi trong tập lệnh của mình.

c:\>coffee -wc file_name

Thí dụ

Giả sử chúng ta đã biên dịch một tệp có tên sample.coffee sử dụng -wctùy chọn và chúng tôi đã sửa đổi kịch bản ba lần. Mỗi lần chúng tôi thay đổi tập lệnh,.coffee tệp được biên dịch lại để lại dấu nhắc lệnh Node.js như hình dưới đây.

Đặt thư mục đầu ra

Sử dụng -o tùy chọn, chúng ta có thể đặt thư mục đầu ra để đặt các tệp JavaScript đã biên dịch như hình dưới đây.

c:\>coffee -o "Required path where we want our .js files" file_name

Thí dụ

Hãy để chúng tôi lưu mã JavaScript của tệp sample.coffee trong một thư mục có tên data trong ổ đĩa E bằng cách sử dụng -o bằng cách thực hiện lệnh sau trong dấu nhắc lệnh.

c:\>coffee -o E://data sample.coffee

Sau đây là ảnh chụp nhanh của thư mục đã cho sau khi thực hiện lệnh trên. Tại đây, bạn có thể quan sát tệp JavaScript của sample.coffee

In JavaScript đã biên dịch

Nếu chúng ta muốn in javascript đã biên dịch trên chính bảng điều khiển, chúng ta phải sử dụng -p tùy chọn của lệnh cà phê như hình dưới đây.

c:\>coffee -p file_name

Thí dụ

Ví dụ: bạn có thể in mã JavaScript đã biên dịch của tệp sample.coffee trên bảng điều khiển bằng cách sử dụng tùy chọn -p như hình dưới đây.

REPL (Đọc Đánh giá Vòng lặp In)

CoffeeScript cung cấp cho bạn một trình bao tương tác REPL. Vỏ này được sử dụng để đánh giá các biểu thức CoffeeScript. Bạn có thể gõ bất kỳ mã CoffeeScript nào trong shell này và nhận được kết quả ngay lập tức. Bạn có thể mở REPL bằng cách thực hiệncoffee lệnh mà không có bất kỳ tùy chọn nào như hình dưới đây.

Sử dụng shell này, chúng ta có thể gán giá trị cho các biến, tạo hàm và đánh giá kết quả. Như thể hiện trong ảnh chụp màn hình sau, nếu chúng ta gọi các hàm trong REPL, nó sẽ in ra giá trị của hàm. Nếu chúng ta đưa ra một biểu thức cho nó, nó sẽ đánh giá và in ra kết quả của biểu thức. Và nếu chúng ta chỉ cần gõ các câu lệnh trong đó, nó sẽ in ra giá trị của câu lệnh cuối cùng.

Trong REPL, bạn có thể truy cập chế độ nhiều dòng bằng cách nhấn ctrl + v , nơi bạn có thể đánh giá mã với nhiều dòng (như các hàm) và bạn có thể quay lại chế độ REPL từ đó bằng cách nhấn lại ctrl + v . Đây là một ví dụ sử dụng chế độ nhiều dòng.

Chạy CoffeeScript thông qua Trình duyệt

Chúng ta có thể chạy CoffeeScript bằng thẻ <script> của HTML giống như JavaScript như hình dưới đây.

<script src="http://jashkenas.github.com/coffee-script/extras/coffee-script.js"
   type="text/javascript" charset="utf-8"></script>
<script type="text/coffeescript">
  # Some CoffeeScript
</script>

Nhưng đối với điều này, chúng ta phải nhập thư viện trong mỗi ứng dụng và mã CoffeeScript sẽ được diễn giải từng dòng một trước khi đầu ra được hiển thị. Điều này sẽ làm chậm các ứng dụng của bạn, do đó phương pháp này không được khuyến khích.

Do đó, để sử dụng CoffeeScript trong các ứng dụng của mình, bạn cần phải biên dịch trước chúng bằng tiện ích dòng lệnh Coffee và sau đó bạn có thể sử dụng JavaScript được tạo trong các ứng dụng của mình.

Trong chương trước, chúng ta đã biết cách cài đặt CoffeeScript. Trong chương này, chúng ta hãy xem cú pháp của CoffeeScript.

Cú pháp của CoffeeScript duyên dáng hơn khi so sánh với cú pháp của JavaScript. Nó tránh các tính năng rắc rối như dấu ngoặc nhọn, dấu chấm phẩy và giảm tốc biến.

Câu lệnh CoffeeScript

Không giống như nhiều ngôn ngữ lập trình khác như C, C ++ và Java, các câu lệnh trong CoffeeScript không kết thúc bằng dấu chấm phẩy (;). Thay vào đó, mỗi dòng mới được trình biên dịch CoffeeScript coi là một câu lệnh riêng biệt.

Thí dụ

Đây là một ví dụ về câu lệnh CoffeeScript.

name = "Javed"
age = 26

Theo cách tương tự, chúng ta có thể viết hai câu lệnh trong một dòng duy nhất bằng cách sử dụng dấu chấm phẩy phân tách chúng như hình dưới đây.

name = "Javed";age = 26

Biến CoffeeScript (Không có var Keyword)

Trong JavaScript, chúng tôi khai báo một biến bằng cách sử dụng var từ khóa trước khi tạo nó, như hình dưới đây.

var name = "Javed"
var age = 20

Trong khi tạo các biến trong CoffeeScript, không cần phải khai báo chúng bằng cách sử dụng vartừ khóa. Chúng ta có thể tạo trực tiếp một biến chỉ bằng cách gán giá trị cho nó như hình dưới đây.

name = "Javed"
age = 20

Không có dấu ngoặc đơn

Nói chung, chúng ta sử dụng dấu ngoặc đơn trong khi khai báo hàm, gọi hàm, và cũng để tách các khối mã để tránh sự mơ hồ. Trong CoffeeScript, không cần sử dụng dấu ngoặc đơn và trong khi tạo các hàm, chúng tôi sử dụng dấu mũi tên (->) thay vì dấu ngoặc đơn như hình dưới đây.

myfunction = -> alert "Hello"

Tuy nhiên, chúng ta phải sử dụng dấu ngoặc đơn trong các trường hợp nhất định. Trong khi gọi các hàm không có tham số, chúng ta sẽ sử dụng dấu ngoặc đơn. Ví dụ, nếu chúng ta có một hàm tên là my_earch trong CoffeeScript, thì chúng ta phải gọi nó như hình bên dưới.

my_function()

Theo cách tương tự, chúng ta cũng có thể phân tách mã không rõ ràng bằng cách sử dụng dấu ngoặc đơn. Nếu bạn quan sát ví dụ sau, không có niềng răng, kết quả là 2233 và với niềng răng, nó sẽ là 45.

alert "The result is  "+(22+33)

Không có niềng răng xoăn

Trong JavaScript, đối với các mã khối như hàm, vòng lặp và câu lệnh điều kiện, chúng tôi sử dụng dấu ngoặc nhọn. Trong CoffeeScript, không cần sử dụng dấu ngoặc nhọn. Thay vào đó, chúng ta phải duy trì các thụt lề thích hợp (khoảng trắng) trong nội dung. Đây là tính năng được lấy cảm hứng từ ngôn ngữ Python.

Sau đây là một ví dụ về một hàm trong CoffeeScript. Ở đây bạn có thể thấy rằng thay vì dấu ngoặc nhọn, chúng tôi đã sử dụng ba khoảng trắng làm thụt đầu dòng để tách phần thân của hàm.

myfunction = -> 
   name = "John"
   alert "Hello"+name

Bình luận CoffeeScript

Trong bất kỳ ngôn ngữ lập trình nào, chúng tôi sử dụng chú thích để viết mô tả về mã chúng tôi đã viết. Những nhận xét này không được coi là một phần của chương trình. Các bình luận trong CoffeeScript tương tự như các bình luận của ngôn ngữ Ruby. CoffeeScript cung cấp hai loại nhận xét như sau:

Nhận xét một dòng

Bất cứ khi nào chúng ta muốn bình luận một dòng trong CoffeeScript, chúng ta chỉ cần đặt một thẻ băm trước nó như hình dưới đây.

# This is the single line comment in CoffeeScript

Mỗi dòng sau thẻ băm (#) được coi là một bình luận của trình biên dịch CoffeeScript và nó biên dịch phần còn lại của mã trong tệp đã cho ngoại trừ các bình luận.

Nhận xét nhiều dòng

Bất cứ khi nào chúng ta muốn nhận xét nhiều hơn một dòng trong CoffeeScript (nhiều dòng), chúng ta có thể làm điều đó bằng cách gói các dòng đó trong một cặp thẻ băm ba như hình dưới đây.

###
These are the multi line comments in CoffeeScript
We can write as many number of lines as we want 
within the pair of triple hash tags.
###

Các từ khóa dành riêng cho CoffeeScript

Danh sách tất cả các từ dành riêng trong CoffeeScript được đưa ra trong bảng sau. Chúng không thể được sử dụng làm biến CoffeeScript, hàm, phương thức, nhãn vòng lặp hoặc bất kỳ tên đối tượng nào.

trường hợp

mặc định

chức năng

var

vô hiệu

với

hăng sô

để cho

enum

xuất khẩu

nhập khẩu

tự nhiên

__hasProp

__extends

__slice

__trói buộc

__Chỉ số

dụng cụ

khác

giao diện

gói hàng

riêng tư

được bảo vệ

công cộng

tĩnh

năng suất

thật

sai

vô giá trị

điều này

Mới

xóa bỏ

loại

trong

tranh luận

đánh giá

ví dụ

trở về

phi

phá vỡ

tiếp tục

trình gỡ lỗi

nếu

khác

công tắc điện

cho

trong khi

làm

thử

nắm lấy

cuối cùng

lớp học

kéo dài

siêu

chưa xác định

sau đó

trừ khi

cho đến khi

vòng

của

bởi

khi nào

hoặc là

không phải

không phải

Đúng

Không

trên

tắt

Các loại dữ liệu CoffeeScript

Một trong những đặc điểm cơ bản nhất của ngôn ngữ lập trình là tập hợp các kiểu dữ liệu mà nó hỗ trợ. Đây là những loại giá trị có thể được biểu diễn và thao tác trong một ngôn ngữ lập trình.

Khi CoffeeScript biên dịch từng dòng sang JavaScript, các kiểu dữ liệu do CoffeeScript cung cấp cũng giống như JavaScript. Ngoại trừ thực tế là CoffeeScript thêm một số bản chất bổ sung.

CoffeeScript cung cấp các kiểu dữ liệu sau để làm việc với:

  • Strings - Kiểu dữ liệu String đại diện cho một nhóm ký tự nói chung và chúng tôi đại diện cho một giá trị chuỗi với dấu ngoặc kép ở giữa ("").

    Example: "Raj", "Rahman"

  • Number - Kiểu dữ liệu số đại diện cho các giá trị số.

    Example: 12, 212, v.v.

  • Boolean- Kiểu dữ liệu Boolean biểu diễn một bit thông tin. Chỉ có hai giá trị có thể có: true và false.

  • Arrays- Đối tượng Array cho phép bạn lưu trữ nhiều giá trị trong một biến duy nhất. Nó lưu trữ một tập hợp tuần tự có kích thước cố định của các phần tử cùng loại.

    Example: student = ["Rahman", "Ramu", "Ravi", "Robert"]

  • Objects- Các đối tượng trong CoffeeScript tương tự như trong JavaScript, chúng là tập hợp các thuộc tính. Trong đó một thuộc tính bao gồm khóa và giá trị được phân tách bằng dấu chấm phẩy (:). Tóm lại, các đối tượng CoffeeScript là một tập hợp các cặp khóa-giá trị.

    Example: student = {name: "Mohammed", age: 24, phone: 9848022338}

  • Null- Một biến được xác định và không chứa bất kỳ giá trị nào được coi là giá trị rỗng. Điều này tương tự với giá trị null trong JavaScript.

  • Undefined- Một biến không có bất kỳ giá trị nào được gán cho nó được coi là biến không xác định. Nếu bạn sử dụng các biến như vậy trong mã của mình, thì bạn sẽ gặp lỗi không xác định.

Chúng tôi sẽ trình bày chi tiết các kiểu dữ liệu Mảng và Đối tượng trong các chương riêng biệt.

Các biến không là gì ngoài các vùng chứa được đặt tên. Bạn có thể đặt dữ liệu vào các vùng chứa này và sau đó tham chiếu đến dữ liệu bằng cách sử dụng tên của vùng chứa của nó.

Biến CoffeeScript

Trong JavaScript, trước khi sử dụng một biến, chúng ta cần khai báo và khởi tạo nó (gán giá trị). Không giống như JavaScript, khi tạo một biến trong CoffeeScript, không cần phải khai báo nó bằng cách sử dụngvartừ khóa. Chúng ta chỉ cần tạo một biến chỉ bằng cách gán giá trị cho một ký tự như hình dưới đây.

name = variable name

Thí dụ

Trong mã CoffeeScript sau, chúng tôi đã xác định hai biến nameage, của các kiểu dữ liệu chuỗi và số tương ứng. Lưu nó trong một tệp có tênvariable_example.coffee.

name = "Javed"
age = 25

Compiling the code

Biên dịch mã CoffeeScript ở trên bằng cách thực hiện lệnh sau trong dấu nhắc lệnh.

c:\> compile -c variable_example.coffee

Khi biên dịch, một tệp JavaScript có tên variable_example.jssẽ được tạo với nội dung sau. Ở đây bạn có thể thấy rằng trình biên dịch đã khai báo các biến (tuổi và tên) bằng cách sử dụngvar từ khóa thay mặt cho chúng tôi.

// Generated by CoffeeScript 1.10.0
(function() {
  var age, name;
  name = "Javed";
  age = 25;
  
}).call(this);

Phạm vi biến đổi

Phạm vi của một biến là vùng chương trình của bạn mà nó được xác định. Các biến JavaScript và CoffeeScript chỉ có hai phạm vi.

  • Global Variables - Một biến toàn cục có phạm vi toàn cầu có nghĩa là nó có thể được sử dụng ở bất kỳ đâu trong mã JavaScript của bạn.

  • Local Variables- Một biến cục bộ sẽ chỉ hiển thị trong một hàm mà nó được định nghĩa. Các tham số của hàm luôn là cục bộ của hàm đó.

Vấn đề với các biến trong JavaScript

Trong JavaScript, bất cứ khi nào chúng ta xác định một biến mà không sử dụng vartừ khóa, nó được tạo với phạm vi toàn cầu. Điều này gây ra rất nhiều vấn đề. Hãy xem xét ví dụ sau:

<script type = "text/javascript">
   var i = 10;
   document.write("The value of global variable i is "+ i);   
   document.write("<br>");
   test();
   function test() {
      i = 20;
      document.write("The value of local variable i is "+i);
      document.write("<br>");
   }
   document.write("The value of global variable i is "+i);
</script>

Khi thực thi, JavaScript trên cung cấp cho bạn kết quả sau:

The value of global variable i is 10

The value of local variable i is 20

The value of global variable i is 20

Trong ví dụ trên, chúng tôi đã tạo một biến có tên itrong không gian chung và được gán giá trị 10 cho nó. Và trong hàm, khi cố gắng tạo một biến cục bộ có cùng tên, chúng ta đã khai báo là i = 20 ; không có từ khóa var. Vì chúng tôi đã bỏ lỡvar từ khóa, giá trị của biến toàn cục i được chỉ định lại thành 20.

Vì lý do này, bạn nên khai báo các biến bằng cách sử dụng var từ khóa.

Phạm vi biến trong CoffeeScript

Bất cứ khi nào chúng ta biên dịch một tệp CoffeeScript, trình biên dịch CoffeeScript sẽ tạo một hàm ẩn danh và trong hàm đó, nó sẽ biên dịch mã CoffeeScript sang JavaScript từng dòng một. (Nếu muốn, chúng tôi có thể xóa trình bao bọc chức năng cấp cao nhất bằng cách sử dụng-b hoặc là --bare tùy chọn của lệnh biên dịch) Mọi biến mà chúng ta tạo được khai báo bằng cách sử dụng var từ khóa trong hàm ẩn danh và do đó, theo mặc định, mọi biến đều là cục bộ trong CoffeeScript.

(function() {
  var age, name;
  name = "javed";
  age = 20;
}).call(this);

Dù sao, nếu muốn, chúng ta có thể khai báo một biến với không gian tên toàn cục. Chúng tôi có thể làm điều đó một cách rõ ràng như hình dưới đây.

obj = this
obj.age = 30

Tên biến CoffeeScript (Chữ viết)

Trong khi đặt tên cho các biến của bạn trong CoffeeScript, hãy ghi nhớ các quy tắc sau.

  • Bạn không nên sử dụng bất kỳ từ khóa nào dành riêng cho CoffeeScript làm tên biến. Những từ khóa này sẽ được đề cập trong phần tiếp theo. Ví dụ, tên biến break hoặc Boolean không hợp lệ.

  • Tên biến CoffeeScript không được bắt đầu bằng chữ số (0-9). Chúng phải bắt đầu bằng một chữ cái hoặc một ký tự gạch dưới. Ví dụ, 123test là một tên biến không hợp lệ nhưng _123test là một biến hợp lệ.

  • Tên biến CoffeeScript phân biệt chữ hoa chữ thường. Ví dụ,Namename là hai biến khác nhau.

Nhà điều hành CoffeeScript

Một toán tử là một ký hiệu yêu cầu trình biên dịch thực hiện các chức năng toán học hoặc logic cụ thể. Hãy để chúng tôi lấy một biểu thức đơn giản4 + 5 is equal to 9. Ở đây 4 và 5 được gọi làoperands và '+' được gọi là operator.

Các toán tử do CoffeeScript cung cấp cũng giống như trong JavaScript ngoại trừ một số khác biệt. Có một số toán tử có vấn đề trong JavaScript. CoffeeScript hoặc đã loại bỏ chúng hoặc sửa đổi chức năng của chúng và nó cũng giới thiệu một số toán tử mới.

Sau đây là danh sách các toán tử được CoffeeScript hỗ trợ.

  • Toán tử số học
  • Toán tử so sánh
  • Toán tử logic (hoặc quan hệ)
  • Người điều hành nhiệm vụ

Bí danh CoffeeScript

Ngoài các toán tử, CoffeeScript cũng cung cấp các bí danh. CoffeeScript cung cấp bí danh cho các toán tử và ký hiệu khác nhau để làm cho mã CoffeeScript của bạn dễ đọc và thân thiện hơn với người dùng.

Hãy để chúng tôi xem xét từng toán tử và bí danh của CoffeeScript.

Toán tử số học

CoffeeScript hỗ trợ các toán tử số học sau. Giả sử biếnA nắm giữ 10 và biến B nắm giữ 20, sau đó -

Hiển thị các ví dụ

S.Không Nhà điều hành và Mô tả Thí dụ
1

+ (Addition)

Thêm hai toán hạng

A + B = 30
2

− (Subtraction)

Trừ toán hạng thứ hai với toán hạng đầu tiên

A - B = -10
3

* (Multiplication)

Nhân cả hai toán hạng

A * B = 200
4

/ (Division)

Chia tử số cho mẫu số

B / A = 2
5

% (Modulus)

Xuất ra phần còn lại của một phép chia số nguyên

B% A = 0
6

++ (Increment)

Tăng giá trị số nguyên lên một

A ++ = 11
7

-- (Decrement)

Giảm một giá trị số nguyên

A-- = 9

Toán tử so sánh

JavaScript hỗ trợ các toán tử so sánh sau. Giả sử biếnA nắm giữ 10 và biến B nắm giữ 20, sau đó -

Hiển thị các ví dụ

S.Không Nhà điều hành và Mô tả Thí dụ
1

= = (Equal)

Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không, nếu có thì điều kiện trở thành true.

(A == B) không đúng.
2

!= (Not Equal)

Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không, nếu các giá trị không bằng nhau thì điều kiện trở thành true.

(A! = B) là đúng.
3

> (Greater than)

Kiểm tra xem giá trị của toán hạng bên trái có lớn hơn giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true.

(A> B) là không đúng.
4

< (Less than)

Kiểm tra xem giá trị của toán hạng bên trái có nhỏ hơn giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true.

(A <B) là đúng.
5

>= (Greater than or Equal to)

Kiểm tra xem giá trị của toán hạng bên trái có lớn hơn hoặc bằng giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true.

(A> = B) là không đúng.
6

<= (Less than or Equal to)

Kiểm tra xem giá trị của toán hạng bên trái có nhỏ hơn hoặc bằng giá trị của toán hạng bên phải hay không, nếu có, thì điều kiện trở thành true.

(A <= B) là đúng.

Bảng sau đây hiển thị các bí danh của một số toán tử So sánh. Giả sửA nắm giữ 20 và biến B nắm giữ 20.

Hiển thị các ví dụ

Nhà điều hành Bí danh Thí dụ
= = (Bằng nhau) is A is B cung cấp cho bạn sự thật.
! = = (Không bằng) isnt A isnt B cho bạn sai.

Toán tử logic

CoffeeScript hỗ trợ các toán tử logic sau. Giả sử biếnA nắm giữ 10 và biến B nắm giữ 20, sau đó -

Hiển thị các ví dụ

S.Không Nhà điều hành và Mô tả Thí dụ
1

&& (Logical AND)

Nếu cả hai toán hạng đều khác 0, thì điều kiện trở thành true.

(A && B) là đúng.
2

|| (Logical OR)

Nếu bất kỳ toán hạng nào trong hai toán hạng khác 0, thì điều kiện trở thành true.

(A || B) là đúng.
3

! (Logical NOT)

Đảo ngược trạng thái logic của toán hạng của nó. Nếu một điều kiện là đúng, thì toán tử logic NOT sẽ làm cho nó sai.

! (A && B) là sai.

Bảng sau đây cho thấy các bí danh của một số toán tử logic. Giả sửX nắm giữ true và biến Y nắm giữ false.

Hiển thị các ví dụ

Nhà điều hành Bí danh Thí dụ
&& (Logic AND) and X and Y cho bạn sai
|| (Hợp lý HOẶC) or X or Y cho bạn sự thật
! (không phải x) not not X cho bạn sai

Toán tử Bitwise

CoffeeScript hỗ trợ các toán tử bitwise sau. Giả sử biếnA nắm giữ 2 và biến B nắm giữ 3, sau đó -

Hiển thị các ví dụ

S.Không Nhà điều hành và Mô tả Thí dụ
1

& (Bitwise AND)

Nó thực hiện phép toán Boolean AND trên mỗi bit của các đối số nguyên của nó.

(A & B) là 2.
2

| (BitWise OR)

Nó thực hiện phép toán Boolean OR trên mỗi bit của các đối số nguyên của nó.

(A | B) là 3.
3

^ (Bitwise XOR)

Nó thực hiện phép toán HOẶC độc quyền Boolean trên mỗi bit của các đối số nguyên của nó. HOẶC độc quyền có nghĩa là toán hạng một là đúng hoặc toán hạng hai là đúng, nhưng không phải cả hai.

(A ^ B) là 1.
4

~ (Bitwise Not)

Nó là một toán tử một ngôi và hoạt động bằng cách đảo ngược tất cả các bit trong toán hạng.

(~ B) là -4.
5

<< (Left Shift)

Nó di chuyển tất cả các bit trong toán hạng đầu tiên sang trái theo số vị trí được chỉ định trong toán hạng thứ hai. Các bit mới được lấp đầy bởi các số không. Chuyển một giá trị sang trái một vị trí tương đương với nhân nó với 2, dịch chuyển hai vị trí tương đương với nhân 4, v.v.

(A << 1) là 4.
6

>> (Right Shift)

Toán tử Shift phải nhị phân. Giá trị của toán hạng bên trái được di chuyển sang phải bằng số bit được chỉ định bởi toán hạng bên phải.

(A >> 1) là 1.

Người điều hành nhiệm vụ

CoffeeScript hỗ trợ các toán tử gán sau:

Hiển thị các ví dụ

S.Không Nhà điều hành và Mô tả Thí dụ
1

= (Simple Assignment )

Gán các giá trị từ toán hạng bên phải cho toán hạng bên trái

C = A + B sẽ gán giá trị của A + B vào C
2

+= (Add and Assignment)

Nó thêm toán hạng bên phải vào toán hạng bên trái và gán kết quả cho toán hạng bên trái.

C + = A tương đương với C = C + A
3

-= (Subtract and Assignment)

Nó trừ toán hạng bên phải khỏi toán hạng bên trái và gán kết quả cho toán hạng bên trái.

C - = A tương đương với C = C - A
4

*= (Multiply and Assignment)

Nó nhân toán hạng bên phải với toán hạng bên trái và gán kết quả cho toán hạng bên trái.

C * = A tương đương với C = C * A
5

/= (Divide and Assignment)

Nó chia toán hạng bên trái với toán hạng bên phải và gán kết quả cho toán hạng bên trái.

C / = A tương đương với C = C / A
6

%= (Modules and Assignment)

Nó cần môđun bằng cách sử dụng hai toán hạng và gán kết quả cho toán hạng bên trái.

C% = A tương đương với C = C% A

Note - Logic tương tự áp dụng cho các toán tử Bitwise vì vậy chúng sẽ trở thành như << =, >> =, >> =, & =, | = và ^ =.

Toán tử bình đẳng trong CoffeeScript

Trong khi làm việc với JavaScript, bạn sẽ gặp hai loại toán tử bình đẳng =====.

Các == toán tử trong JavaScript là type coercive, tức là, nếu kiểu của hai toán hạng trong một phép toán khác nhau, thì kiểu dữ liệu của một trong các toán tử được chuyển đổi thành toán tử khác và sau đó cả hai được so sánh.

CoffeeScript tránh được sự ép buộc không mong muốn này, nó biên dịch == toán tử trong toán tử so sánh nghiêm ngặt của JavaScript ===.

Nếu chúng ta so sánh hai toán hạng bằng cách sử dụng ===, sau đó nó trở lại true, chỉ khi cả giá trị và kiểu dữ liệu của chúng bằng nhau, nếu không nó sẽ trả về false.

Thí dụ

Hãy xem xét ví dụ sau. Ở đây chúng ta có hai biếnab. a giữ giá trị 21 của kiểu số nguyên và b giữ cùng một giá trị, nhưng nó là của stringkiểu. Trong CoffeeScript, khi chúng ta so sánhab, kết quả sẽ là false. (Kể từ khi== toán tử của CoffeeScript được chuyển đổi thành === toán tử của JavaScript)

a=21
b="21"
result = 21=='21'
console.log result

Khi biên dịch, CoffeeScript ở trên tạo ra JavaScript sau

// Generated by CoffeeScript 1.10.0
(function() {
  var a, b, result;
  
  a = 21;
  
  b = "21";
  
  result = a === b;
  console.log(result);
}).call(this);

Khi thực thi, nó tạo ra kết quả sau.

false

Toán tử tồn tại

CoffeeScript cung cấp một toán tử mới được gọi là toán tử tồn tại để xác minh sự tồn tại của một biến. Nó được ký hiệu là?. Trừ khi một biến là null hoặc không xác định, toán tử tồn tại trả về true.

Thí dụ

Dưới đây là một ví dụ về toán tử tồn tại. Ở đây chúng ta có ba biến, cụ thể làname, agesubject và chúng tôi đang xác minh sự tồn tại của tên biến và số điện thoại bằng toán tử hiện sinh.

name="Ramu"
age=24
subject="Engineering"
verify_name = name?
verify_phone = phone?
console.log verify_name
console.log verify_phone

Khi biên dịch, điều này sẽ tạo ra mã JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var age, name, subject, verify_name, verify_phone;
  name = "Ramu";
  age = 24;

  subject = "Engineering";
  verify_name = name != null;
  verify_phone = typeof phone !== "undefined" && phone !== null;
  console.log(verify_name);
  console.log(verify_phone);

}).call(this);

Nếu chúng ta thực thi tệp CoffeeScript ở trên, nó sẽ tạo ra kết quả sau.

true
false

Note - Chúng tôi có một biến thể truy cập của toán tử hiện sinh ?. Chúng ta có thể sử dụng nó thay vì. toán tử để tìm ra các tham chiếu rỗng.

Các phép so sánh theo chuỗi

Như trong Python, chúng ta có thể sử dụng một chuỗi các toán tử so sánh trong một biểu thức duy nhất trong CoffeeScript.

Thí dụ

Sau đây là một ví dụ về việc sử dụng so sánh theo chuỗi.

score = 70
passed = 100 > score > 40

console.log passed

Khi biên dịch, ví dụ CoffeeScript cung cấp cho bạn đoạn mã JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var passed, score;

  score = 70;

  passed = (100 > score && score > 40);

  console.log(passed);

}).call(this);

Nếu bạn thực thi mã CoffeeScript ở trên, nó sẽ tạo ra kết quả sau.

true

Note- CoffeeScript loại bỏ toán tử bậc ba; thay vì nó, chúng ta có thể sử dụnginline if tuyên bố.

Bí danh CoffeeScript

Nói chung, CoffeeScript cung cấp bí danh cho các toán tử và ký hiệu khác nhau để làm cho mã CoffeeScript của bạn dễ đọc và thân thiện hơn với người dùng. Sau đây là các bí danh do CoffeeScript cung cấp.

Tên Toán tử / ký hiệu Bí danh
toán tử "bằng với" ==
toán tử "không bằng với" ! == không phải
toán tử "not" ! không phải
toán tử "và" &&
toán tử "hoặc" || hoặc là
giá trị boolean true thật đúng, đúng, trên
giá trị boolean false sai tắt, không
đối tượng hiện tại điều này @
dòng mới (hoặc) dấu chấm phẩy \cũng không ; sau đó
Ngược lại nếu ! nếu trừ khi
Để kiểm tra sự hiện diện của mảng trong
Để kiểm tra sự hiện diện của đối tượng của
Luỹ thừa a**b
Phép chia số nguyên a//b
mô-đun phụ thuộc cổ tức a%%b

Thí dụ

Ví dụ sau đây cho thấy cách sử dụng bí danh trong CoffeeScript:

a=21; b=21

x = true; y = false

console.log a is b

console.log a isnt b

console.log x and y

console.log x or y

console.log yes or no

console.log on or off

console.log a**b

console.log a//b

console.log a%%b

Khi biên dịch ví dụ trên, nó cung cấp cho bạn mã JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var a, b, x, y,
    modulo = function(a, b) { return (+a % (b = +b) + b) % b; };

  a = 21;

  b = 21;

  x = true;

  y = false;

  console.log(a === b);

  console.log(a !== b);

  console.log(x && y);

  console.log(x || y);

  console.log(true || false);

  console.log(true || false);

  console.log(Math.pow(a, b));

  console.log(Math.floor(a / b));

  console.log(modulo(a, b));

}).call(this);

Nếu bạn thực thi tệp CoffeeScript ở trên, nó sẽ tạo ra kết quả sau:

true
false
false
true
true
true
5.842587018385982e+27
1
0

Trong khi lập trình, chúng ta gặp một số tình huống mà chúng ta phải chọn một đường dẫn từ một tập hợp các đường dẫn nhất định. Trong những tình huống như vậy, chúng ta cần câu lệnh điều kiện. Câu lệnh điều kiện giúp chúng ta đưa ra quyết định và thực hiện các hành động đúng đắn.

Sau đây là dạng chung của cấu trúc ra quyết định điển hình được tìm thấy trong hầu hết các ngôn ngữ lập trình.

JavaScript hỗ trợ if tuyên bố (bao gồm các biến thể của nó) và switchtuyên bố. Ngoài các điều kiện có sẵn trong JavaScript, CoffeeScript bao gồmunless câu lệnh, sự phủ định của if, và thậm chí hơn thế nữa.

Sau đây là các câu lệnh điều kiện do CoffeeScript cung cấp.

Không. Tuyên bố & Mô tả
1 câu lệnh if

An ifcâu lệnh bao gồm một biểu thức Boolean theo sau là một hoặc nhiều câu lệnh. Các câu lệnh này thực thi khi biểu thức Boolean đã cho là đúng.

2 câu lệnh if ... else

An if câu lệnh có thể được theo sau bởi một tùy chọn else câu lệnh này thực thi khi biểu thức Boolean sai.

3 trừ khi tuyên bố

An unless tuyên bố tương tự như ifvới một biểu thức Boolean theo sau là một hoặc nhiều câu lệnh ngoại trừ. Các câu lệnh này thực thi khi một biểu thức Boolean đã cho là sai.

4 trừ khi ... tuyên bố khác

An unless câu lệnh có thể được theo sau bởi một tùy chọn else câu lệnh thực thi khi biểu thức Boolean là true.

5 chuyển đổi tuyên bố

A switch câu lệnh cho phép một biến được kiểm tra tính bình đẳng với một danh sách các giá trị.

Từ khóa then chốt trong CoffeeScript

Các ifunlesscâu lệnh là câu lệnh khối được viết thành nhiều dòng. CoffeeScript cung cấpthen sử dụng từ khóa mà chúng tôi có thể viết ifunless các câu lệnh trong một dòng.

Sau đây là các câu lệnh trong CoffeeScript được viết bằng then từ khóa.

Không. Tuyên bố & Mô tả
1 if-then statement

Sử dụng câu lệnh if-then, chúng ta có thể viết iftuyên bố của CoffeeScript trong một dòng duy nhất. Nó bao gồm một biểu thức Boolean theo sau là từ khóa then, theo sau là một hoặc nhiều câu lệnh. Các câu lệnh này thực thi khi biểu thức Boolean đã cho là đúng.

2 if-then...else statement

Câu lệnh if-then có thể được theo sau bởi một tùy chọn elsecâu lệnh này thực thi khi biểu thức Boolean sai. Sử dụng câu lệnh if-then ... else, chúng ta có thể viết câu lệnh if ... else trong một dòng.

3 unless-then statement

Sử dụng câu lệnh if-then, chúng ta có thể viết unlesstuyên bố của CoffeeScript trong một dòng duy nhất. Nó bao gồm một biểu thức Boolean theo sau làthentừ khóa, được theo sau bởi một hoặc nhiều câu lệnh. Các câu lệnh này thực thi khi biểu thức Boolean đã cho là sai.

4 trừ khi ... sau đó tuyên bố khác

Câu lệnh trừ khi-thì có thể được theo sau bởi một tùy chọn elsecâu lệnh này thực thi khi biểu thức Boolean là true. Sử dụng câu lệnh if-then ... else, chúng ta có thể viết câu lệnh if ... else trong một dòng duy nhất.

postfix if và postfix trừ khi Tuyên bố

Trong CoffeeScript, bạn cũng có thể viết ifunless câu lệnh có một khối mã đầu tiên được theo sau bởi if hoặc là unlesstừ khóa như hình bên dưới. Đây là dạng hậu tố của các câu lệnh đó. Nó rất tiện lợi khi viết chương trình trong CoffeeScript.

#Postfix if
Statements to be executed if expression

#Postfix unless
Statements to be executed unless expression

hiển thị ví dụ

Trong khi viết mã, bạn có thể gặp phải tình huống cần thực thi lặp đi lặp lại một khối mã. Trong những tình huống như vậy, bạn có thể sử dụng câu lệnh lặp.

Nói chung, các câu lệnh được thực hiện tuần tự: Câu lệnh đầu tiên trong một hàm được thực hiện đầu tiên, tiếp theo là câu lệnh thứ hai, v.v.

Một câu lệnh lặp cho phép chúng ta thực hiện một câu lệnh hoặc một nhóm câu lệnh nhiều lần. Dưới đây là dạng chung của câu lệnh lặp trong hầu hết các ngôn ngữ lập trình

JavaScript cung cấp while, forfor..incác vòng lặp. Các vòng lặp trong CoffeeScript tương tự như các vòng lặp trong JavaScript.

whileloop và các biến thể của nó là cấu trúc vòng lặp duy nhất trong CoffeeScript. Thay vì thường được sử dụngfor vòng lặp, CoffeeScript cung cấp cho bạn Comprehensions sẽ được thảo luận chi tiết trong các chương sau.

Vòng lặp while trong CoffeeScript

Các whileloop là vòng lặp cấp thấp duy nhất mà CoffeeScript cung cấp. Nó chứa một biểu thức Boolean và một khối câu lệnh. Cácwhileloop thực thi khối câu lệnh được chỉ định lặp đi lặp lại miễn là biểu thức Boolean đã cho là true. Khi biểu thức trở thành sai, vòng lặp kết thúc.

Cú pháp

Sau đây là cú pháp của whilevòng lặp trong CoffeeScript. Ở đây, không cần dấu ngoặc đơn để chỉ định biểu thức Boolean và chúng ta phải thụt lề phần thân của vòng lặp bằng cách sử dụng (số lượng nhất quán) khoảng trắng thay vì quấn nó bằng dấu ngoặc nhọn.

while expression
   statements to be executed

Thí dụ

Ví dụ sau minh họa việc sử dụng whilevòng lặp trong CoffeeScript. Lưu mã này trong một tệp có tênwhile_loop_example.coffee

console.log "Starting Loop "
count = 0  
while count < 10
   console.log "Current Count : " + count
   count++;
   
console.log "Set the variable to different value and then try"

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c while_loop_example.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var count;

  console.log("Starting Loop ");

  count = 0;

  while (count < 10) {
    console.log("Current Count : " + count);
    count++;
  }

  console.log("Set the variable to different value and then try");

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee while_loop_example.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

Starting Loop
Current Count : 0
Current Count : 1
Current Count : 2
Current Count : 3
Current Count : 4
Current Count : 5
Current Count : 6
Current Count : 7
Current Count : 8
Current Count : 9
Set the variable to different value and then try

Các biến thể của while

Vòng lặp While trong CoffeeScript có hai biến thể cụ thể là until variantloop variant.

Không. Loại vòng lặp & Mô tả
1 cho đến khi biến thể của while

Các until biến thể của whilevòng lặp chứa một biểu thức Boolean và một khối mã. Khối mã của vòng lặp này được thực thi miễn là biểu thức Boolean đã cho là sai.

2 biến thể vòng lặp của while

Các loop biến thể tương đương với while vòng lặp với giá trị thực (while true). Các câu lệnh trong vòng lặp này sẽ được thực thi lặp đi lặp lại cho đến khi chúng ta thoát khỏi vòng lặp bằng cách sử dụngBreak tuyên bố.

Trong chương trước, chúng ta đã tìm hiểu các vòng lặp khác nhau do CoffeeScript cung cấp, whilevà các biến thể của nó. Ngoài những điều đó, CoffeeScript cung cấp các cấu trúc vòng lặp bổ sung được gọi làcomprehensions.

Những hiểu biết này thay thế fortrong các ngôn ngữ lập trình khác, nếu chúng ta thêm các mệnh đề bảo vệ tùy chọn và giá trị của chỉ mục mảng hiện tại một cách rõ ràng. Sử dụng các phép hiểu, chúng ta có thể lặp lại các mảng cũng như các đối tượng và các phép hiểu mà lặp lại các mảng là các biểu thức và chúng ta có thể trả về chúng trong một hàm hoặc gán cho một biến.

Không. Tuyên bố & Mô tả
1 cho..in hiểu

Các for..in hiểu là dạng hiểu cơ bản trong CoffeeScript bằng cách sử dụng nó, chúng ta có thể lặp lại các phần tử của một danh sách hoặc mảng.

2 cho..của sự hiểu biết

Cũng giống như Mảng, CoffeeScriptScript cung cấp một vùng chứa để lưu trữ các cặp khóa-giá trị được gọi là các đối tượng. Chúng ta có thể lặp lại các đối tượng bằng cách sử dụngfor..of hiểu được cung cấp bởi CoffeeScript.

3 list comprehensions

Các list sự hiểu biết trong CoffeeScript được sử dụng để ánh xạ một mảng đối tượng sang một mảng khác.

Chỉ số hiểu

Danh sách / mảng các phần tử có một chỉ mục có thể được sử dụng trong phần hiểu. Bạn có thể sử dụng nó trong phần hiểu bằng cách sử dụng một biến như hình dưới đây.

for student,i in [element1, element2, element3]

Thí dụ

Ví dụ sau minh họa việc sử dụng chỉ mục của for…inhiểu trong CoffeeScript. Lưu mã này trong một tệp có tênfor_in_index.coffee

for student,i in ['Ram', 'Mohammed', 'John']
   console.log "The name of the student with id "+i+" is: "+student

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c for_in_index.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var i, j, len, ref, student;

  ref = ['Ram', 'Mohammed', 'John'];
  for (i = j = 0, len = ref.length; j < len; i = ++j) {
    student = ref[i];
    console.log("The name of the student with id " + i + " is: " + student);
  }
}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee for_in_index.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

The name of the student with id 0 is: Ram
The name of the student with id 1 is: Mohammed
The name of the student with id 2 is: John

Postfix dạng hiểu

Cũng giống như postfix ifunless, CoffeeScript cung cấp dạng postfix của Phần hiểu biết hữu ích trong khi viết mã. Sử dụng cái này, chúng ta có thể viếtfor..in hiểu trong một dòng như hình dưới đây.

#Postfix for..in comprehension
console.log student for student in ['Ram', 'Mohammed', 'John']

#postfix for..of comprehension
console.log key+"::"+value for key,value of { name: "Mohammed", age: 24, phone: 9848022338}
hiển thị ví dụ

Gán cho một biến

Sự hiểu biết chúng ta sử dụng để lặp lại mảng có thể được gán cho một biến và cũng được trả về bởi một hàm.

Thí dụ

Hãy xem xét ví dụ được đưa ra dưới đây. Ở đây bạn có thể thấy rằng chúng tôi đã truy xuất các phần tử của một mảng bằng cách sử dụngfor..in hiểu và gán điều này cho một biến có tên names. Và chúng tôi cũng có một hàm trả về một cách rõ ràng bằng cách sử dụngreturntừ khóa. Lưu mã này trong một tệp có tênexample.coffee

my_function =->
   student = ['Ram', 'Mohammed', 'John']
   
   #Assigning comprehension to a variable
   names = (x for x in student )
   console.log "The contents of the variable names are ::"+names
   
   #Returning the comprehension
   return x for x in student
console.log "The value returned by the function is "+my_function()

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c example.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var my_function;

  my_function = function() {
    var i, len, names, student, x;
    student = ['Ram', 'Mohammed', 'John'];
    names = (function() {
      var i, len, results;
      results = [];
      for (i = 0, len = student.length; i < len; i++) {
        x = student[i];
        results.push(x);
      }
      return results;
    })();
    console.log("The contents of the variable names are ::" + names);
    for (i = 0, len = student.length; i < len; i++) {
      x = student[i];
      return x;
    }
  };

  console.log("The value returned by the function is " + my_function());

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee example.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

The contents of the variable names are ::Ram,Mohammed,John
The value returned by the function is Ram

Theo từ khóa

CoffeeScript cung cấp các phạm vi để xác định danh sách các phần tử. Ví dụ: phạm vi [1..10] tương đương với [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] trong đó, mọi phần tử đều được tăng thêm 1. Chúng tôi cũng có thể thay đổi gia số này sử dụngby từ khóa hiểu.

Thí dụ

Ví dụ sau minh họa việc sử dụng by từ khóa của for..insự hiểu biết do CoffeeScript cung cấp. Lưu mã này trong một tệp có tênby_keyword_example.coffee

array = (num for num in [1..10] by 2)
console.log array

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c by_keyword_example.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var array, num;

  array = (function() {
    var i, results;
    results = [];
    for (num = i = 1; i <= 10; num = i += 2) {
      results.push(num);
    }
    return results;
  })();

  console.log(array);

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee by_keyword_example.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

[ 1, 3, 5, 7, 9 ]

Hàm là một khối mã có thể sử dụng lại có thể được gọi ở bất kỳ đâu trong chương trình của bạn. Điều này giúp loại bỏ nhu cầu viết đi viết lại cùng một mã. Nó giúp lập trình viên viết mã mô-đun.

Các hàm cho phép người lập trình chia một chương trình lớn thành một số hàm nhỏ và có thể quản lý được.

Nói chung, sử dụng JavaScript, chúng ta có thể xác định hai loại hàm: named functions, các hàm thông thường với nội dung tên hàm và, Function expressions. Sử dụng biểu thức hàm, chúng ta có thể gán hàm cho các biến.

//named function
function sayHello(){
   return("Hello there");
}
 
//function expressions
var message = function sayHello(){
   return("Hello there");
}

Các chức năng trong CoffeeScript

Cú pháp của hàm trong CoffeeScript đơn giản hơn so với JavaScript. Trong CoffeeScript, chúng tôi chỉ định nghĩa các biểu thức hàm.

Các functiontừ khóa bị loại bỏ trong CoffeeScript. Để xác định một hàm ở đây, chúng ta phải sử dụng một mũi tên mỏng (->).

Phía sau, trình biên dịch CoffeeScript chuyển đổi mũi tên sang định nghĩa hàm trong JavaScript như hình dưới đây.

(function() {});

Không bắt buộc phải sử dụng returntừ khóa trong CoffeeScript. Mọi hàm trong CoffeeScript tự động trả về câu lệnh cuối cùng trong hàm.

  • Nếu chúng ta muốn quay lại hàm đang gọi hoặc trả về một giá trị trước khi đến cuối hàm, thì chúng ta có thể sử dụng return từ khóa.

  • Ngoài các hàm trong dòng (các hàm nằm trong một dòng), chúng ta cũng có thể xác định các hàm đa dòng trong CoffeeScript. Vì các dấu ngoặc nhọn đã được loại bỏ, chúng ta có thể làm điều đó bằng cách duy trì các dấu thụt vào thích hợp.

Xác định một chức năng

Sau đây là cú pháp xác định một hàm trong CoffeeScript.

function_name = -> function_body

Thí dụ

Dưới đây là ví dụ về một hàm trong CoffeeScript. Tại đây, chúng tôi đã tạo một hàm có têngreet. Hàm này tự động trả về câu lệnh trong đó. Lưu nó trong một tệp có tênfunction_example.coffee

greet = -> "This is an example of a function"

Biên dịch nó bằng cách thực hiện lệnh sau trong dấu nhắc lệnh.

c:\>coffee -c function_example.coffee

Khi biên dịch, nó tạo ra mã JavaScript sau. Ở đây, bạn có thể thấy rằng trình biên dịch CoffeeScript tự động trả về giá trị chuỗi trong hàm có têngreet().

// Generated by CoffeeScript 1.10.0
(function() {
  var greet;
  
  greet = function() {
    return "This is an example of a function";
  };

}).call(this);

Hàm nhiều dòng

Chúng ta cũng có thể định nghĩa một hàm có nhiều dòng bằng cách duy trì các dấu thụt vào thay vì dấu ngoặc nhọn. Nhưng chúng ta phải nhất quán với thụt lề mà chúng ta tuân theo cho một dòng trong suốt một hàm.

greet =  ->
  console.log "Hello how are you"

Khi biên dịch, CoffeeScript ở trên cung cấp cho bạn mã JavaScript sau. Trình biên dịch CoffeeScript lấy phần thân của hàm mà chúng ta đã phân tách bằng cách sử dụng thụt đầu dòng và đặt trong dấu ngoặc nhọn.

// Generated by CoffeeScript 1.10.0
(function() {
  var greet;

  greet = function() {
    return console.log("Hello how are you");
  };

}).call(this);

Các hàm với các đối số

Chúng ta cũng có thể chỉ định các đối số trong một hàm bằng cách sử dụng dấu ngoặc đơn như hình dưới đây.

add =(a,b) ->
  c=a+b
  console.log "Sum of the two numbers is: "+c

Khi biên dịch tệp CoffeeScript ở trên, nó sẽ tạo ra JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function(a, b) {
    var c;
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };

}).call(this);

Gọi một hàm

Sau khi xác định một hàm, chúng ta cần gọi hàm đó. Bạn có thể chỉ cần gọi một hàm bằng cách đặt dấu ngoặc đơn sau tên của nó như thể hiện trong ví dụ sau.

add = ->
  a=20;b=30
  c=a+b
  console.log "Sum of the two numbers is: "+c  
add()

Khi biên dịch, ví dụ trên cung cấp cho bạn JavaScript sau

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function() {
    var a, b, c;
    a = 20;
    b = 30;
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };
  add();
}).call(this);

Khi thực thi mã CoffeeScript ở trên, nó tạo ra kết quả sau.

Sum of the two numbers is: 50

Gọi hàm bằng đối số

Theo cách tương tự, chúng ta có thể gọi một hàm với các đối số bằng cách chuyển chúng cho nó như hình dưới đây.

my_function argument_1,argument_2
or
my_function (argument_1,argument_2)

Note - Trong khi gọi một hàm bằng cách truyền các đối số cho nó, việc sử dụng dấu ngoặc đơn là tùy chọn.

Trong ví dụ sau, chúng tôi đã tạo một hàm có tên add() chấp nhận hai tham số và chúng tôi đã gọi nó.

add =(a,b) ->
  c=a+b
  console.log "Sum of the two numbers is: "+c
add 10,20

Khi biên dịch, ví dụ trên cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function(a, b) {
    var c;
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };

  add(10, 20);

}).call(this);

Khi thực thi, mã CoffeeScript trên, nó tạo ra kết quả sau.

Sum of the two numbers is: 30

Đối số mặc định

CoffeeScript cũng hỗ trợ các đối số mặc định. Chúng ta có thể gán các giá trị mặc định cho các đối số của một hàm, như thể hiện trong ví dụ sau.

add =(a = 1, b = 2) ->
  c=a+b
  console.log "Sum of the two numbers is: "+c
add 10,20

#Calling the function with default arguments
add()

Khi biên dịch, CoffeeScript ở trên tạo tệp JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function(a, b) {
    var c;
    if (a == null) {
      a = 1;
    }
    if (b == null) {
      b = 2;
    }
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };

  add(10, 20);
  add()

}).call(this);

Khi thực thi mã CoffeeScript ở trên, nó tạo ra kết quả sau.

Sum of the two numbers is: 30
Sum of the two numbers is: 3

Đối tượng Chuỗi cho phép bạn làm việc với một loạt ký tự. Như trong hầu hết các ngôn ngữ lập trình, các Chuỗi trong CoffeeScript được khai báo bằng cách sử dụng dấu ngoặc kép là:

my_string = "Hello how are you"
console.log my_string

Khi biên dịch, nó sẽ tạo ra mã JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var my_string;

  my_string = "Hello how are you";

  console.log(my_string);

}).call(this);

Kết nối chuỗi

Chúng ta có thể nối hai chuỗi bằng ký hiệu "+" như hình dưới đây.

new_string = "Hello how are you "+"Welcome to Tutorialspoint"
console.log new_String

Khi biên dịch, nó sẽ tạo ra mã JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var new_string;

  new_string = "Hello how are you " + "Welcome to Tutorialspoint";

  console.log(new_String);

}).call(this);

Nếu bạn thực hiện ví dụ trên, bạn có thể quan sát Chuỗi được nối như hình dưới đây.

Hello how are you Welcome to Tutorialspoint

Nội suy chuỗi

CoffeeScript cũng cung cấp một tính năng được gọi là String interpolationđể bao gồm các biến trong stings. Tính năng này của CoffeeScript được lấy cảm hứng từ ngôn ngữ Ruby.

Nội suy chuỗi được thực hiện bằng cách sử dụng dấu ngoặc kép "", một thẻ băm # và một cặp dấu ngoặc nhọn { }. Chuỗi được khai báo trong dấu ngoặc kép và biến sẽ được nội suy được bao bọc trong dấu ngoặc nhọn được đặt trước bởi một thẻ băm như hình dưới đây.

name = "Raju"
age = 26
message ="Hello #{name} your age is #{age}"
console.log message

Khi biên dịch ví dụ trên, nó tạo ra JavaScript sau. Ở đây, bạn có thể thấy phép nội suy chuỗi được chuyển đổi thành phép nối bình thường bằng cách sử dụng+ Biểu tượng.

// Generated by CoffeeScript 1.10.0
(function() {
  var age, message, name;

  name = "Raju";

  age = 26;

  message = "Hello " + name + " your age is " + age;

  console.log(message);

}).call(this);

Nếu bạn thực thi mã CoffeeScript ở trên, nó sẽ cung cấp cho bạn kết quả sau.

Hello Raju your age is 26

Biến được chuyển là #{variable} chỉ được nội suy nếu chuỗi được đặt giữa dấu ngoặc kép " ". Sử dụng dấu ngoặc kép' 'thay vì dấu ngoặc kép tạo ra dòng như nó vốn có mà không cần nội suy. Hãy xem xét ví dụ sau.

name = "Raju"
age = 26
message ='Hello #{name} your age is #{age}'
console.log message

Nếu chúng ta sử dụng dấu nháy đơn thay vì dấu nháy kép trong phép nội suy, bạn sẽ nhận được kết quả sau.

Hello #{name} your age is #{age}

CoffeeScript cho phép nhiều dòng trong Chuỗi mà không cần nối chúng như hình dưới đây.

my_string = "hello how are you
Welcome to tutorialspoint
Have a nice day."
console.log my_string

Nó tạo ra kết quả sau.

hello how are you Welcome to tutorialspoint Have a nice day.

Đối tượng chuỗi JavaScript

Đối tượng Chuỗi của JavaScript cho phép bạn làm việc với một loạt ký tự. Đối tượng này cung cấp cho bạn rất nhiều phương thức để thực hiện các thao tác khác nhau trên Stings.

Vì chúng tôi có thể sử dụng các thư viện JavaScript trong mã CoffeeScript của mình, chúng tôi có thể sử dụng tất cả các phương pháp đó trong các chương trình CoffeeScript của chúng tôi.

Phương thức chuỗi

Sau đây là danh sách các phương thức của đối tượng String của JavaScript. Nhấp vào tên của các phương thức này để xem ví dụ minh họa cách sử dụng chúng trong CoffeeScript.

Không. Phương pháp & Mô tả
1 charAt ()

Trả về ký tự tại chỉ mục được chỉ định.

2 charCodeAt ()

Trả về một số cho biết giá trị Unicode của ký tự tại chỉ mục đã cho.

3 concat ()

Kết hợp văn bản của hai chuỗi và trả về một chuỗi mới.

4 Chỉ số()

Trả về chỉ mục trong đối tượng Chuỗi đang gọi của lần xuất hiện đầu tiên của giá trị được chỉ định hoặc -1 nếu không tìm thấy.

5 lastIndexOf ()

Trả về chỉ mục trong đối tượng Chuỗi đang gọi của lần xuất hiện cuối cùng của giá trị được chỉ định hoặc -1 nếu không tìm thấy.

6 localeCompare ()

Trả về một số cho biết một chuỗi tham chiếu đến trước hay sau hoặc giống với chuỗi đã cho theo thứ tự sắp xếp.

7 trận đấu()

Được sử dụng để so khớp một biểu thức chính quy với một chuỗi.

số 8 Tìm kiếm()

Thực hiện tìm kiếm đối sánh giữa một biểu thức chính quy và một chuỗi được chỉ định.

9 lát ()

Trích xuất một phần của chuỗi và trả về một chuỗi mới.

10 tách ()

Tách một đối tượng Chuỗi thành một mảng chuỗi bằng cách tách chuỗi thành các chuỗi con.

11 substr ()

Trả về các ký tự trong một chuỗi bắt đầu tại vị trí đã chỉ định thông qua số ký tự đã chỉ định.

12 toLocaleLowerCase ()

Các ký tự trong một chuỗi được chuyển đổi thành chữ thường trong khi vẫn tôn trọng ngôn ngữ hiện tại.

13 toLocaleUpperCase ()

Các ký tự trong một chuỗi được chuyển đổi thành chữ hoa đồng thời tôn trọng ngôn ngữ hiện tại.

14 toLowerCase ()

Trả về giá trị chuỗi đang gọi được chuyển đổi thành chữ thường.

15 Đến trường hợp trên()

Trả về giá trị chuỗi đang gọi được chuyển đổi thành chữ hoa.

Đối tượng Array cho phép bạn lưu trữ nhiều giá trị trong một biến duy nhất. Nó lưu trữ một tập hợp tuần tự có kích thước cố định của các phần tử cùng loại. Mảng được sử dụng để lưu trữ một tập hợp dữ liệu, nhưng thường hữu ích hơn nếu coi một mảng là một tập hợp các biến cùng kiểu.

Cú pháp

Để tạo một mảng, chúng ta phải khởi tạo nó bằng cách sử dụng new như hình dưới đây.

array = new (element1, element2,....elementN)

Phương thức khởi tạo Array () chấp nhận danh sách các kiểu chuỗi hoặc số nguyên. Chúng ta cũng có thể chỉ định độ dài của mảng bằng cách chuyển một số nguyên duy nhất cho hàm tạo của nó.

Chúng ta cũng có thể xác định một mảng bằng cách chỉ cần cung cấp danh sách các phần tử của nó trong dấu ngoặc vuông ([ ]) như hình bên dưới.

array = [element1, element2, ......elementN]

Thí dụ

Sau đây là một ví dụ về định nghĩa một mảng trong CoffeeScript. Lưu mã này trong một tệp có tênarray_example.coffee

student = ["Rahman","Ramu","Ravi","Robert"]

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c array_example.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var student;

  student = ["Rahman", "Ramu", "Ravi", "Robert"];

}).call(this);

Dòng mới thay vì dấu phẩy

Chúng ta cũng có thể loại bỏ dấu phẩy (,) giữa các phần tử của một mảng bằng cách tạo mỗi phần tử trong một dòng mới bằng cách duy trì thụt lề thích hợp như hình dưới đây.

student = [
  "Rahman"
  "Ramu"
  "Ravi"
  "Robert"
  ]

Toàn diện về mảng

Chúng ta có thể lấy các giá trị của một mảng bằng cách sử dụng các giá trị hiểu.

Thí dụ

Ví dụ sau minh họa việc truy xuất các phần tử của một mảng bằng cách sử dụng các hàm hiểu. Lưu mã này trong một tệp có tênarray_comprehensions.coffee

students = [ "Rahman", "Ramu", "Ravi", "Robert" ]
console.log student for student in students

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c array_comprehensions.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var i, len, student, students;

  students = ["Rahman", "Ramu", "Ravi", "Robert"];

  for (i = 0, len = students.length; i − len; i++) {
    student = students[i];
    console.log(student);
  }

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee array_comprehensions.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

Rahman
Ramu
Ravi
Robert

Không giống như Mảng trong các ngôn ngữ lập trình khác, các mảng trong CoffeeScript có thể có nhiều kiểu dữ liệu tức là cả chuỗi và số.

Thí dụ

Đây là một ví dụ về mảng CoffeeScript chứa nhiều loại dữ liệu.

students = [ "Rahman", "Ramu", "Ravi", "Robert",21 ]

Các đối tượng trong CoffeeScript tương tự như các đối tượng trong JavaScript. Đây là một tập hợp các thuộc tính, trong đó một thuộc tính bao gồm khóa và giá trị được phân tách bằng dấu chấm phẩy (:). Tóm lại, các đối tượng CoffeeScript là một tập hợp các cặp khóa-giá trị. Các đối tượng được xác định bằng cách sử dụng dấu ngoặc nhọn, một đối tượng trống được biểu diễn dưới dạng{}.

Cú pháp

Dưới đây là cú pháp của một đối tượng trong CoffeeScript. Ở đây, chúng tôi đặt các cặp khóa-giá trị của các đối tượng trong dấu ngoặc nhọn và chúng được phân tách bằng dấu phẩy (,).

object ={key1: value, key2: value,......keyN: value}

Thí dụ

Sau đây là một ví dụ về định nghĩa một đối tượng trong CoffeeScript. Lưu mã này trong một tệp có tênobjects_example.coffee

student = {name: "Mohammed", age: 24, phone: 9848022338 }

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

> coffee -c objects_example.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var student;

  student = {
    name: "Mohammed",
    age: 24,
    phone: 9848022338
  };

}).call(this);

Cũng giống như trong mảng, chúng ta có thể loại bỏ dấu phẩy bằng cách chỉ định các cặp khóa-giá trị trong các dòng mới như hình dưới đây.

student = {
  name: "Mohammed" 
  age: 24
  phone: 9848022338 
  }

Thụt lề thay vì dấu ngoặc nhọn

Cũng giống như các câu lệnh khối khác trong CoffeeScript, chúng ta có thể sử dụng thụt lề thay vì dấu ngoặc nhọn {} như thể hiện trong ví dụ sau.

Thí dụ

Chúng ta có thể viết lại ví dụ trên mà không có dấu ngoặc nhọn như hình dưới đây.

student = 
  name: "Mohammed" 
  age: 24
  phone: 9848022338

Các đối tượng lồng nhau

Trong CoffeeScript, chúng ta có thể viết các đối tượng bên trong các đối tượng.

Thí dụ

Ví dụ sau minh họa các đối tượng lồng nhau trong CoffeeScript. Lưu mã này trong một tệp có tênnested_objects.coffee

contact =
  personal:
    email: "[email protected]"
    phone:  9848022338
  professional:
    email: "[email protected]"
    phone:  9848033228

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

> coffee -c nested_objects.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var contact;

  contact = {
    personal: {
      email: "[email protected]",
      phone: 9848022338
    },
    professional: {
      email: "[email protected]",
      phone: 9848033228
    }
  };

}).call(this);

Toàn diện các đối tượng

Để lặp lại nội dung của một đối tượng, chúng ta có thể sử dụng phần hiểu. Lặp lại nội dung của một đối tượng cũng giống như lặp lại nội dung của một mảng. Trong các đối tượng, vì chúng ta phải truy xuất hai khóa và giá trị phần tử nên chúng ta sẽ sử dụng hai biến.

Thí dụ

Sau đây là một ví dụ cho thấy cách lặp lại nội dung của một đối tượng bằng cách sử dụng phần hiểu. Lưu mã này trong một tệp có tênobject_comprehensions.coffee

student = 
  name: "Mohammed" 
  age: 24
  phone: 9848022338 

console.log key+"::"+value for key,value of student

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

> coffee -c object_comprehensions.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var key, student, value;

  student = {
    name: "Mohammed",
    age: 24,
    phone: 9848022338
  };

  for (key in student) {
    value = student[key];
    console.log(key(+"::" + value));
  }

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

> coffee object_comprehensions.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

name::Mohammed
age::24
phone::9848022338

Mảng đối tượng

Trong CoffeeScript, một mảng cũng có thể chứa các đối tượng như hình dưới đây.

a = [
     object1_key1: value
     object1_key2: value
     object1_key3: value
  ,
     object2_key1: value
     object2_key2: value
     object2_key3: value
]

Ví dụ sau đây cho thấy cách xác định một mảng đối tượng. Chúng ta chỉ có thể liệt kê các cặp giá trị khóa của các đối tượng mà chúng ta muốn trong một mảng bằng cách phân tách chúng bằng dấu phẩy(,).

students =[  
    name: "Mohammed" 
    age: 24
    phone: 9848022338 
  ,  
    name: "Ram" 
    age: 25
    phone: 9800000000 
  ,  
    name: "Ram" 
    age: 25
    phone: 9800000000   
 ]  
console.log student for student in students

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c array_of_objects.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var i, len, student, students;

  students = [
    {
      name: "Mohammed",
      age: 24,
      phone: 9848022338
    }, {
      name: "Ram",
      age: 25,
      phone: 9800000000
    }, {
      name: "Ram",
      age: 25,
      phone: 9800000000
    }
  ];

  for (i = 0, len = students.length; i < len; i++) {
    student = students[i];
    console.log(student);
  }

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee array_of_objects.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

{ name: 'Mohammed', age: 24, phone: 9848022338 }
{ name: 'Ram', age: 25, phone: 9800000000 }
{ name: 'Ram', age: 25, phone: 9800000000 }

Từ khóa dành riêng

JavaScript không cho phép các từ khóa dành riêng làm tên thuộc tính của một đối tượng, nếu chúng ta muốn sử dụng chúng, chúng ta phải đặt chúng bằng dấu ngoặc kép " ".

Thí dụ

Hãy xem xét ví dụ sau. Ở đây chúng tôi đã tạo một thuộc tính với tênclass, là một từ khóa dành riêng. Lưu mã này trong một tệp có tênreserved_keywords.coffee

student ={ 
  name: "Mohammed" 
  age: 24
  phone: 9848022338
  class: "X"
  }
console.log key+"::"+value for key,value of student

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c reserved_keywords.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau. Ở đây, bạn có thể thấy rằng trình biên dịch CoffeeScript đã thay mặt chúng tôi bao bọc lớp từ khóa bằng dấu ngoặc kép.

// Generated by CoffeeScript 1.10.0
(function() {
  var key, student, value;

  student = {
    name: "Mohammed",
    age: 24,
    phone: 9848022338,
    "class": "X"
  };

  for (key in student) {
    value = student[key];
    console.log(key + "::" + value);
  }

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee array_of_objects.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

name::Mohammed
age::24
phone::9848022338
class::X

Trong chương trước, chúng ta đã thấy Mảng trong CoffeeScript, trong khi lập trình, chúng ta sẽ gặp một số trường hợp mà chúng ta phải lưu trữ một chuỗi các giá trị số trong một mảng như hình dưới đây.

numbers =[1,2,3,4,5,6,7,8,9,10]

CoffeeScript cung cấp một cách ngắn hơn để diễn đạt các mảng chứa một chuỗi các giá trị số, được gọi là ranges. Tính năng này của CoffeeScript được lấy cảm hứng từ Ruby.

Cú pháp

Phạm vi được tạo bởi hai giá trị số, vị trí đầu tiên và cuối cùng trong phạm vi, cách nhau bằng .. hoặc .... Với hai dấu chấm (1..4), phạm vi là bao gồm (1, 2, 3, 4); với ba dấu chấm (1 ... 4), phạm vi không bao gồm phần cuối (1, 2, 3).

Dưới đây là cú pháp của phạm vi trong CoffeeScript. Chúng tôi sẽ xác định các giá trị trong một phạm vi giữa các dấu ngoặc vuông[ ]giống như mảng. Trong các phạm vi, trong khi lưu trữ một chuỗi các giá trị số, thay vì cung cấp các giá trị của cả chuỗi, chúng ta có thể chỉ địnhbeginend các giá trị được phân tách bằng hai dấu chấm (..) như hình bên dưới.

range =[Begin..End]

Thí dụ

Đây là một ví dụ về phạm vi trong CoffeeScript. Lưu nó trong một tệp có tênranges_example.coffee.

numbers =[0..9]
console.log "The contents of the range are: "+ numbers

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c ranges_example.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau. Ở đây bạn có thể thấy rằng phạm vi được chuyển đổi thành mảng CoffeeScript hoàn chỉnh.

// Generated by CoffeeScript 1.10.0
(function() {
  var numbers;

  numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

  console.log("The contents of the range are:: " + numbers);

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee ranges_example.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

The contents of the range are:: 0,1,2,3,4,5,6,7,8,9

Không bao gồm giá trị cuối cùng

Các phạm vi được biên dịch thành các mảng hoàn chỉnh chứa tất cả các số. Nếu chúng ta muốn loại trừend giá trị, sau đó chúng ta phải tách startend các phần tử của phạm vi sử dụng dấu ba chấm (...) như hình bên dưới.

range =[Begin...End]

Thí dụ

Chúng ta có thể viết lại ví dụ trên bằng cách loại trừ endgiá trị như hình bên dưới. Lưu các nội dung sau vào một tệp có tênrange_excluding_end.coffee

numbers =[0...9]
console.log "The contents of the range are:: "+ numbers

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c ranges_example.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var numbers;

  numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8];

  console.log("The contents of the range are:: " + numbers);

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee ranges_example.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau. Tại đây, bạn có thể thấy rằng giá trị cuối cùng9 bị loại trừ.

The contents of the range are:: 0,1,2,3,4,5,6,7,8

Sử dụng phạm vi với các biến

Chúng ta cũng có thể xác định một phạm vi bằng cách gán giá trị bắt đầu và giá trị kết thúc cho các biến.

Thí dụ

Hãy xem xét ví dụ sau. Ở đây chúng tôi đã xác định một phạm vi bằng cách sử dụng các biến. Lưu mã này trong một tệp có tênrange_variables.coffee

start=0
end=9
numbers =[start..end]
console.log "The contents of the range are: "+ numbers

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c range_variables.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var end, i, numbers, results, start;

  start = 0;

  end = 9;

  numbers = (function() {
    results = [];
    for (var i = start; start <= end ? i <= end : i >= end; start <= end ? i++ : i--) {
      results.push(i);
    }
    return results;
  }).apply(this);

  console.log("The contents of the range are:: " + numbers);

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee range_variables.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau. Tại đây, bạn có thể thấy rằng giá trị cuối cùng9 bị loại trừ.

The contents of the range are:: 0,1,2,3,4,5,6,7,8,9

Dải có Mảng

Chúng ta có thể cắt các mảng bằng cách sử dụng chúng với các phạm vi. Bất cứ khi nào chúng tôi chỉ định phạm vi ngay sau mảng (biến), thì trình biên dịch CoffeeScript sẽ chuyển đổi nó thànhslice() cuộc gọi phương thức của JavaScript.

Giả sử rằng chúng ta có một mảng có các giá trị số, chẳng hạn như từ 0 đến 9, sau đó chúng ta có thể truy xuất 4 phần tử đầu tiên của nó như hình dưới đây.

num  = [1, 2, 3, 4, 5, 6, 7, 8, 9]
data = num[0..5]

Giá trị âm đại diện cho các phần tử từ cuối, ví dụ -1 cho biết 9. Nếu chúng ta chỉ định số âm 3 theo sau là hai dấu chấm, ba phần tử cuối cùng của mảng sẽ được trích xuất.

data = num[-3..]

Nếu chúng ta chỉ định hai dấu chấm trong phạm vi của một mảng là num[..], sau đó mảng hoàn chỉnh sẽ được trích xuất. Chúng ta cũng có thể thay thế một phân đoạn mảng bằng các phần tử khác bằng cách sử dụng các phạm vi như hình dưới đây.

num[2..6] = [13,14,15,16,17]

Thí dụ

Ví dụ sau minh họa việc sử dụng phạm vi với mảng. Lưu mã này trong một tệp có tênrange_arrays.coffee

#slicing an array using ranges
num  = [1, 2, 3, 4, 5, 6, 7, 8, 9]
data = num[0..5]
console.log "The first four elements of the array : "+data


#Using negative values
data = num[-3..]
console.log "The last 3 elements of the array : "+data

#Extracting the whole array
console.log "Total elements of the array : "+num[..]


#Replacing the elements of an array
num[2..6] = [13,14,15,16,17]
console.log "New array : "+num

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c range_arrays.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau. Ở đây, bạn có thể quan sát thấy rằng tất cả các phạm vi được chuyển đổi thành các lệnh gọi phương thức slice () của JavaScript.

// Generated by CoffeeScript 1.10.0
(function() {
  var data, num, ref;

  num = [1, 2, 3, 4, 5, 6, 7, 8, 9];

  data = num.slice(0, 6);

  console.log("The first four elements of the array : " + data);

  data = num.slice(-3);

  console.log("The last 3 elements of the array : " + data);

  console.log("Total elements of the array : " + num.slice(0));

  [].splice.apply(num, [2, 5].concat(ref = [13, 14, 15, 16, 17])), ref;

  console.log("New array : " + num);

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee range_arrays.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau. Tại đây, bạn có thể thấy rằng giá trị cuối cùng9 bị loại trừ.

The first four elements of the array : 1,2,3,4,5,6
The last 3 elements of the array : 7,8,9
Total elements of the array : 1,2,3,4,5,6,7,8,9
New array : 1,2,13,14,15,16,17,8,9

Dải có chuỗi

Chúng tôi cũng có thể sử dụng phạm vi với Chuỗi. Nếu chúng ta chỉ định các phạm vi sau Chuỗi, thì CoffeeScript sẽ cắt chúng và trả về một tập con ký tự mới.

Thí dụ

Ví dụ sau minh họa việc sử dụng phạm vi với Chuỗi. Ở đây chúng tôi đã tạo một chuỗi và trích xuất một chuỗi con từ nó bằng cách sử dụng các phạm vi. Lưu mã này trong một tệp có tênranges_with_strings.coffee

my_string = "Welcome to tutorialspoint"
new_string = my_string[0..10]
console.log new_string

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c ranges_with_strings.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var my_string, new_string;

  my_string = "Welcome to tutorialspoint";

  new_string = my_string.slice(0, 6);

  console.log(new_string);

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee ranges_with_strings.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau. Tại đây, bạn có thể thấy rằng giá trị cuối cùng9 bị loại trừ.

Welcome to

Toàn diện về Dãy

Với tư cách là các đối tượng và mảng, chúng ta cũng có thể lặp lại các phần tử của một phạm vi bằng cách sử dụng các hàm hiểu.

Thí dụ

Sau đây là một ví dụ về việc sử dụng hiểu trên các phạm vi. Ở đây, chúng tôi đã tạo một phạm vi và truy xuất các phần tử trong đó bằng cách sử dụng các cách hiểu. Lưu mã này trong một tệp có têncomprehensions_over_ranges.coffee

numbers =[0..9]
console.log "The elements of the range are: "
console.log num for num in numbers

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c comprehensions_over_ranges.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var i, len, num, numbers;

  numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

  console.log("The elements of the range are: ");

  for (i = 0, len = numbers.length; i < len; i++) {
    num = numbers[i];
    console.log(num);
  }

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee comprehensions_over_ranges.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau. Tại đây, bạn có thể thấy rằng giá trị cuối cùng9 bị loại trừ.

The elements of the range are:
0
1
2
3
4
5
6
7
8

Theo cách tương tự, chúng tôi cũng có thể thay đổi gia số này bằng cách sử dụng by từ khóa hiểu.

array = (num for num in [1..10] by 2)
console.log array

Trong các chương trước, chúng ta đã biết cách định nghĩa một hàm và gọi một hàm và truyền các đối số cho nó. Nói chung, chúng ta có thể truyền một số đối số cố định cho một hàm. Trong khi lập trình, chúng ta có thể gặp phải những tình huống cần truyền các đối số biến cho các hàm này. Trong JavaScript, chúng tôi sử dụng các đối tượng để chấp nhận số lượng đối số thay đổi cho một hàm.

CoffeeScript cung cấp một tính năng được gọi là splatsđể truyền nhiều đối số cho các hàm. Chúng tôi sử dụng biểu tượng trong các hàm bằng cách đặt ba dấu chấm sau tên đối số và nó được biểu thị bằng...

Cú pháp

Dưới đây là cú pháp chấp nhận nhiều đối số trong một hàm bằng cách sử dụng biểu tượng.

my_function = (arguments...)->
   ............
   ............
   ............

Thí dụ

Dưới đây là một ví dụ về việc chấp nhận nhiều đối số trong một hàm, sử dụng biểu tượng. Ở đây chúng tôi đã xác định một hàm có tênindian_team()sử dụng biểu tượng. Chúng tôi đang gọi chức năng này là ba lần và chúng tôi sẽ chuyển 4 người chơi, 6 người chơi và toàn đội đồng thời, mỗi lần chúng tôi gọi nó. Vì chúng ta đã sử dụng các biểu tượng trong định nghĩa hàm, nó chấp nhận số lượng đối số thay đổi mỗi khi chúng ta gọi nó. Lưu mã này trong một tệp có tênsplats_definition.coffee

indian_team = (first, second, others...) ->
  Captain = first
  WiseCaptain = second
  team  = others
  console.log "Captain: " +Captain
  console.log "Wise captain: " +WiseCaptain
  console.log "Other team members: " +team

#Passing 4 arguments
console.log "############## Four Players ############"
indian_team "Mahendra Singh Dhoni", "Virat Kohli", "Shikhar Dhawan", "Rohit Sharma"

#Passing 6 arguments
console.log "############## Six Players ############"
indian_team "Mahendra Singh Dhoni", "Virat Kohli", "Shikhar Dhawan", "Rohit Sharma", "Gurkeerat Singh Mann", "Rishi Dhawan"
  
#Passing full squad
console.log "############## Full squad #############"
indian_team "Mahendra Singh Dhoni", "Virat Kohli", "Shikhar Dhawan", "Rohit Sharma", "Gurkeerat Singh Mann", "Rishi Dhawan", "Ravindra Jadeja", "Axar Patel", "Jasprit Bumrah", "Umesh Yadav", "Harbhajan Singh", "Ashish Nehra", "Hardik Pandya", "Suresh Raina", "Yuvraj Singh", "Ajinkya Rahane"

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c splats_definition.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var indian_team,
    slice = [].slice;

  indian_team = function() {
    var Captain, WiseCaptain, first, others, second, team;
    first = arguments[0], second = arguments[1], others = 3 <= arguments.length ? slice.call(arguments, 2) : [];
    Captain = first;
    WiseCaptain = second;
    team = others;
    console.log("Captain: " + Captain);
    console.log("Wise captain: " + WiseCaptain);
    return console.log("Other team members: " + team);
  };

  console.log("############## Four Players ############");

  indian_team("Mahendra Singh Dhoni", "Virat Kohli", "Shikhar Dhawan", "Rohit Sharma");

  console.log("############## Six Players ############");

  indian_team("Mahendra Singh Dhoni", "Virat Kohli", "Shikhar Dhawan", "Rohit Sharma", "Gurkeerat Singh Mann", "Rishi Dhawan");

  console.log("############## Full squad #############");

  indian_team("Mahendra Singh Dhoni", "Virat Kohli", "Shikhar Dhawan", "Rohit Sharma", "Gurkeerat Singh Mann", "Rishi Dhawan", "Ravindra Jadeja", "Axar Patel", "Jasprit Bumrah", "Umesh Yadav", "Harbhajan Singh", "Ashish Nehra", "Hardik Pandya", "Suresh Raina", "Yuvraj Singh", "Ajinkya Rahane");

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee splats_definition.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

############## Four Players ############
Captain: Mahendra Singh Dhoni
Wise captain: Virat Kohli
Other team members: Shikhar Dhawan,Rohit Sharma
############## Six Players ############
Captain: Mahendra Singh Dhoni
Wise captain: Virat Kohli
Other team members: Shikhar Dhawan,Rohit Sharma,Gurkeerat Singh Mann,Rishi Dhawan
############## Full squad #############
Captain: Mahendra Singh Dhoni
Wise captain: Virat Kohli
Other team members: Shikhar Dhawan,Rohit Sharma,Gurkeerat Singh Mann,Rishi Dhawan,Ravindra Jadeja,Axar Patel,Jasprit Bumrah,Umesh Yadav,Harbhajan Singh,Ashish Nehra,Hardik Pandya,Suresh Raina,Yuvraj Singh,Ajinkya Rahane

Gọi các hàm bằng Splats

Chúng ta cũng có thể gọi một hàm bằng cách sử dụng biểu tượng. Để làm được điều đó, chúng ta phải tạo một mảng chứa các phần tử mà chúng ta cần truyền cho hàm và chúng ta phải gọi hàm bằng cách chuyển mảng có hậu tố là ba dấu chấm như hình dưới đây.

my_function values...

Thí dụ

Sau đây là một ví dụ về việc gọi một hàm bằng cách sử dụng biểu tượng. Lưu mã này trong một tệp có tênsplats_call.coffee

indian_team = (first, second, others...) ->
  Captain = first
  WiseCaptain = second
  team  = others
  console.log "Captain: " +Captain
  console.log "Wise captain: " +WiseCaptain
  console.log "Other team members: " +team

squad = [
   "Mahendra Singh Dhoni"
   "Virat Kohli"
   "Shikhar Dhawan"
   "Rohit Sharma"   
   "Gurkeerat Singh Mann"
   "Rishi Dhawan"
   "R Ashwin"
   "Ravindra Jadeja"
   "Axar Patel"
   "Jasprit Bumrah"
   "Umesh Yadav"
   "Harbhajan Singh"
   "Ashish Nehra"
   "Hardik Pandya"
   "Suresh Raina"
   "Yuvraj Singh"
   "Ajinkya Rahane"
 ]

indian_team squad...

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c splats_call.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var indian_team, squad,
    slice = [].slice;

  indian_team = function() {
    var Captain, WiseCaptain, first, others, second, team;
    first = arguments[0], second = arguments[1], others = 3 <= arguments.length ? slice.call(arguments, 2) : [];
    Captain = first;
    WiseCaptain = second;
    team = others;
    console.log("Captain: " + Captain);
    console.log("Wise captain: " + WiseCaptain);
    return console.log("Other team members: " + team);
  };

  squad = ["Mahendra Singh Dhoni", "Virat Kohli", "Shikhar Dhawan", "Rohit Sharma", "Gurkeerat Singh Mann", "Rishi Dhawan", "R Ashwin", "Ravindra Jadeja", "Axar Patel", "Jasprit Bumrah", "Umesh Yadav", "Harbhajan Singh", "Ashish Nehra", "Hardik Pandya", "Suresh Raina", "Yuvraj Singh", "Ajinkya Rahane"];

  indian_team.apply(null, squad);

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee splats_call.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

Captain: Mahendra Singh Dhoni
Wise captain: Virat Kohli
Other team members: Shikhar Dhawan,Rohit Sharma,Gurkeerat Singh Mann,Rishi Dhawan,R Ashwin,Ravindra Jadeja,Axar Patel,Jasprit Bumrah,Umesh Yadav,Harbhajan Singh,Ashish Nehra,Hardik Pandya,Suresh Raina,Yuvraj Singh,Ajinkya Rahane

Splats với một đối số có đuôi

Chúng ta cũng có thể chuyển các đối số theo đuôi cho các biểu tượng. Trong ví dụ được đưa ra bên dưới, chúng tôi đã truyền một đối số theo sau có tênlastsau khi giật gân. Lưu ví dụ này vào một tệp có têntailing_arguments.coffee

indian_team = (first, second, others..., last) ->
  Captain = first
  WiseCaptain = second
  team  = others
  Wicketkeeper =last
  console.log "Captain: " +Captain
  console.log "Wise captain: " +WiseCaptain
  console.log "Wicket keeper is:"+last
  console.log "Other team members: " +team  
  
squad = [
   "Mahendra Singh Dhoni"
   "Virat Kohli"
   "Shikhar Dhawan"
   "Rohit Sharma"   
   "Gurkeerat Singh Mann"
   "Rishi Dhawan"
   "R Ashwin"
   "Ravindra Jadeja"
   "Axar Patel"
   "Jasprit Bumrah"
   "Umesh Yadav"
   "Harbhajan Singh"
   "Ashish Nehra"
   "Hardik Pandya"
   "Suresh Raina"
   "Yuvraj Singh"
   "Ajinkya Rahane"
 ]

indian_team squad...

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c tailing_arguments.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var indian_team, squad,
    slice = [].slice;

  indian_team = function() {
    var Captain, Wicketkeeper, WiseCaptain, first, i, last, others, second, team;
    first = arguments[0], second = arguments[1], others = 4 <= arguments.length ? slice.call(arguments, 2, i = arguments.length - 1) : (i = 2, []), last = arguments[i++];
    Captain = first;
    WiseCaptain = second;
    team = others;
    Wicketkeeper = last;
    console.log("Captain: " + Captain);
    console.log("Wise captain: " + WiseCaptain);
    console.log("Wicket keeper is:" + last);
    return console.log("Other team members: " + team);
  };

  squad = ["Mahendra Singh Dhoni", "Virat Kohli", "Shikhar Dhawan", "Rohit Sharma", "Gurkeerat Singh Mann", "Rishi Dhawan", "R Ashwin", "Ravindra Jadeja", "Axar Patel", "Jasprit Bumrah", "Umesh Yadav", "Harbhajan Singh", "Ashish Nehra", "Hardik Pandya", "Suresh Raina", "Yuvraj Singh", "Ajinkya Rahane"];

  indian_team.apply(null, squad);

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee tailing_arguments.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

Captain: Mahendra Singh Dhoni
Wise captain: Virat Kohli
Wicket keeper is:Ajinkya Rahane
Other team members: Shikhar Dhawan,Rohit Sharma,Gurkeerat Singh Mann,Rishi Dhawan,R Ashwin,Ravindra Jadeja,Axar Patel,Jasprit Bumrah,Umesh Yadav,Harbhajan Singh,Ashish Nehra,Hardik Pandya,Suresh Raina,Yuvraj Singh

Toàn diện với Splats

Trong hàm, chúng ta cũng có thể lặp lại các phần tử của một biểu tượng bằng cách sử dụng các cách hiểu như trong ví dụ sau. Lưu mã này trong một tệp có tênsplats_comprehensions.coffee

indian_team = (first, second, others...) ->
  Captain = first
  WiseCaptain = second
  team  = others
  console.log "Captain: " +Captain
  console.log "Wise captain: " +WiseCaptain
  console.log "Other team members:: "
  console.log member for member in others

squad = [
   "Mahendra Singh Dhoni"
   "Virat Kohli"
   "Shikhar Dhawan"
   "Rohit Sharma"   
   "Gurkeerat Singh Mann"
   "Rishi Dhawan"
   "R Ashwin"
   "Ravindra Jadeja"
   "Axar Patel"
   "Jasprit Bumrah"
   "Umesh Yadav"
   "Harbhajan Singh"
   "Ashish Nehra"
   "Hardik Pandya"
   "Suresh Raina"
   "Yuvraj Singh"
   "Ajinkya Rahane"
 ]

indian_team squad...

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c splats_comprehensions.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var indian_team, squad,
    slice = [].slice;

  indian_team = function() {
    var Captain, WiseCaptain, first, i, len, member, others, results, second, team;
    first = arguments[0], second = arguments[1], others = 3 <= arguments.length ? slice.call(arguments, 2) : [];
    Captain = first;
    WiseCaptain = second;
    team = others;
    console.log("Captain: " + Captain);
    console.log("Wise captain: " + WiseCaptain);
    console.log("Other team members:: ");
    results = [];
    for (i = 0, len = others.length; i < len; i++) {
      member = others[i];
      results.push(console.log(member));
    }
    return results;
  };

  squad = ["Mahendra Singh Dhoni", "Virat Kohli", "Shikhar Dhawan", "Rohit Sharma", "Gurkeerat Singh Mann", "Rishi Dhawan", "R Ashwin", "Ravindra Jadeja", "Axar Patel", "Jasprit Bumrah", "Umesh Yadav", "Harbhajan Singh", "Ashish Nehra", "Hardik Pandya", "Suresh Raina", "Yuvraj Singh", "Ajinkya Rahane"];

  indian_team.apply(null, squad);

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee splats_comprehensions.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

Captain: Mahendra Singh Dhoni
Wise captain: Virat Kohli
Other team members::
Shikhar Dhawan
Rohit Sharma
Gurkeerat Singh Mann
Rishi Dhawan
R Ashwin
Ravindra Jadeja
Axar Patel
Jasprit Bumrah
Umesh Yadav
Harbhajan Singh
Ashish Nehra
Hardik Pandya
Suresh Raina
Yuvraj Singh
Ajinkya Rahane

Đối tượng Ngày là một kiểu dữ liệu được tích hợp trong ngôn ngữ JavaScript. Đối tượng ngày tháng được tạo thànhnew Date( ).

Khi một đối tượng Date được tạo, một số phương thức cho phép bạn thao tác trên nó. Hầu hết các phương pháp chỉ đơn giản cho phép bạn lấy và đặt các trường năm, tháng, ngày, giờ, phút, giây và mili giây của đối tượng, sử dụng giờ địa phương hoặc giờ UTC (phổ thông hoặc GMT).

Tiêu chuẩn ECMAScript yêu cầu đối tượng Date có thể đại diện cho bất kỳ ngày giờ nào, chính xác đến từng mili giây, trong vòng 100 triệu ngày trước hoặc sau ngày 1/1/1970. Đây là phạm vi cộng hoặc trừ 273.785 năm, vì vậy JavaScript có thể đại diện cho ngày và giờ cho đến năm 275755.

Tương tự như các đối tượng JavaScript khác, chúng ta cũng có thể sử dụng đối tượng ngày tháng trong mã CoffeeScript.

Phương pháp ngày

Sau đây là danh sách các phương pháp của Dateđối tượng của JavaScript. Nhấp vào tên của các phương thức này để xem ví dụ minh họa cách sử dụng chúng trong CoffeeScript.

Không. Phương pháp & Mô tả
1 hẹn gặp()

Trả về ngày trong tháng cho ngày đã chỉ định theo giờ địa phương.

2 getDay ()

Trả về ngày trong tuần cho ngày đã chỉ định theo giờ địa phương.

3 getFullYear ()

Trả về năm của ngày đã chỉ định theo giờ địa phương.

4 getHours ()

Trả về giờ trong ngày đã chỉ định theo giờ địa phương.

5 getMilliseconds ()

Trả về mili giây trong ngày được chỉ định theo giờ địa phương.

6 getMinutes ()

Trả về số phút trong ngày đã chỉ định theo giờ địa phương.

7 getMonth ()

Trả về tháng trong ngày đã chỉ định theo giờ địa phương.

số 8 getSeconds ()

Trả về giây trong ngày đã chỉ định theo giờ địa phương.

9 dành thời gian()

Trả về giá trị số của ngày được chỉ định dưới dạng số mili giây kể từ ngày 1 tháng 1 năm 1970, 00:00:00 UTC.

10 getTimezoneOffset ()

Trả về độ lệch múi giờ tính bằng phút cho ngôn ngữ hiện tại.

11 getUTCDate ()

Trả về ngày (ngày) của tháng trong ngày đã chỉ định theo giờ quốc tế.

12 getUTCDay ()

Trả về ngày trong tuần trong ngày đã chỉ định theo giờ quốc tế.

13 getUTCFullYear ()

Trả về năm trong ngày đã chỉ định theo thời gian quốc tế.

14 getUTCHours ()

Trả về giờ trong ngày đã chỉ định theo giờ quốc tế.

15 getUTCMinutes ()

Trả về mili giây trong ngày được chỉ định theo giờ quốc tế.

16 getUTCMilliseconds ()

Trả về phút trong ngày đã chỉ định theo giờ quốc tế.

17 getUTCMonth ()

Trả về tháng trong ngày đã chỉ định theo thời gian quốc tế.

18 getUTCSeconds ()

Trả về giây trong ngày đã chỉ định theo giờ quốc tế.

19 getYear ()

Không được dùng nữa - Trả về năm trong ngày đã chỉ định theo giờ địa phương. Sử dụng getFullYear để thay thế.

20 đặt ngày()

Đặt ngày trong tháng cho một ngày cụ thể theo giờ địa phương.

21 setFullYear ()

Đặt năm đầy đủ cho một ngày cụ thể theo giờ địa phương.

22 setHours ()

Đặt giờ cho một ngày cụ thể theo giờ địa phương.

23 setMilliseconds ()

Đặt mili giây cho một ngày cụ thể theo giờ địa phương.

24 setMinutes ()

Đặt phút cho một ngày cụ thể theo giờ địa phương.

25 setMonth ()

Đặt tháng cho một ngày cụ thể theo giờ địa phương.

26 setSeconds ()

Đặt giây cho một ngày cụ thể theo giờ địa phương.

27 cài đặt thời gian()

Đặt đối tượng Ngày thành thời gian được biểu thị bằng một số mili giây kể từ ngày 1 tháng 1 năm 1970, 00:00:00 UTC.

28 setUTCDate ()

Đặt ngày trong tháng cho một ngày cụ thể theo giờ quốc tế.

29 setUTCFullYear ()

Đặt năm đầy đủ cho một ngày cụ thể theo giờ quốc tế.

30 setUTCHours ()

Đặt giờ cho một ngày cụ thể theo giờ quốc tế.

31 setUTCMilliseconds ()

Đặt mili giây cho một ngày cụ thể theo giờ quốc tế.

32 setUTCMinutes ()

Đặt phút cho một ngày cụ thể theo giờ quốc tế.

33 setUTCMonth ()

Đặt tháng cho một ngày cụ thể theo giờ quốc tế.

34 setUTCSeconds ()

Đặt giây cho một ngày cụ thể theo giờ quốc tế.

35 setYear ()

Không được dùng nữa - Đặt năm cho một ngày cụ thể theo giờ địa phương. Sử dụng setFullYear để thay thế.

36 toDateString ()

Trả về phần "ngày" của Ngày dưới dạng một chuỗi mà con người có thể đọc được.

37 toLocaleDateString ()

Trả về phần "ngày" của Ngày dưới dạng chuỗi, sử dụng các quy ước của ngôn ngữ hiện tại.

38 toLocaleString ()

Chuyển đổi một ngày thành một chuỗi, sử dụng các quy ước của ngôn ngữ hiện tại.

39 toLocaleTimeString ()

Trả về phần "thời gian" của Ngày dưới dạng một chuỗi, sử dụng các quy ước của ngôn ngữ hiện tại.

40 toTimeString ()

Trả về phần "thời gian" của Ngày dưới dạng một chuỗi mà con người có thể đọc được.

41 toUTCString ()

Chuyển đổi ngày thành chuỗi, sử dụng quy ước thời gian chung.

Các Mathđối tượng của JavaScript cung cấp cho bạn các thuộc tính và phương thức cho các hằng số và hàm toán học. Không giống như các đối tượng toàn cục khác,Mathkhông phải là một hàm tạo. Tất cả các thuộc tính và phương pháp củaMath là tĩnh và có thể được gọi bằng cách sử dụng Math như một đối tượng mà không cần tạo nó.

Vì vậy, bạn tham chiếu đến hằng số pi như Math.PI và bạn gọi hàm sin là Math.sin(x), trong đó x là đối số của phương thức. Chúng ta có thể sử dụng đối tượng Math của JavaScript trong mã CoffeeScript của chúng ta để thực hiện các phép toán.

Hằng số toán học

Nếu chúng ta muốn sử dụng bất kỳ hằng số toán học phổ biến nào như pi hoặc e, chúng ta có thể sử dụng chúng bằng cách sử dụng JavaScript Math vật.

Sau đây là danh sách các hằng Toán học được cung cấp bởi đối tượng Toán học của JavaScript

Không. Kê khai tài sản
1

E

Hằng số Euler và cơ số của logarit tự nhiên, xấp xỉ 2,718.

2

LN2

Lôgarit tự nhiên của 2, xấp xỉ 0,693.

3

LN10

Lôgarit tự nhiên của 10, xấp xỉ 2,302.

4

LOG2E

Lôgarit cơ số 2 của E, xấp xỉ 1,442.

5

LOG10E

Lôgarit cơ số 10 của E, xấp xỉ 0,434.

6

PI

Tỷ lệ giữa chu vi hình tròn với đường kính của nó, xấp xỉ 3,14159.

7

SQRT1_2

Căn bậc hai của 1/2; tương đương, 1 trên căn bậc hai của 2, xấp xỉ 0,707.

số 8 SQRT2

Căn bậc hai của 2, xấp xỉ 1,414.

Thí dụ

Ví dụ sau minh họa việc sử dụng các hằng số toán học do JavaScript cung cấp trong CoffeeScript. Lưu mã này trong một tệp có tênmath_example.coffee

e_value = Math.E
console.log "The value of the constant E is: " + e_value

LN2_value = Math.LN2
console.log "The value of the constant LN2 is: " + LN2_value

LN10_value = Math.LN10
console.log "The value of the constant LN10 is: " + LN10_value

LOG2E_value = Math.LOG2E
console.log "The value of the constant LOG2E is: " + LOG2E_value

LOG10E_value = Math.LOG10E
console.log "The value of the constant LOG10E is: " + LOG10E_value

PI_value = Math.PI
console.log "The value of the constant PI is: " + PI_value

SQRT1_2_value = Math.SQRT1_2
console.log "The value of the constant SQRT1_2 is: " + SQRT1_2_value

SQRT2_value = Math.SQRT2
console.log "The value of the constant SQRT2 is: " + SQRT2_value

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c math_example.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var LN10_value, LN2_value, LOG10E_value, LOG2E_value, PI_value, SQRT1_2_value, SQRT2_value, e_value;

  e_value = Math.E;

  console.log("The value of the constant E is: " + e_value);

  LN2_value = Math.LN2;

  console.log("The value of the constant LN2 is: " + LN2_value);

  LN10_value = Math.LN10;

  console.log("The value of the constant LN10 is: " + LN10_value);

  LOG2E_value = Math.LOG2E;

  console.log("The value of the constant LOG2E is: " + LOG2E_value);

  LOG10E_value = Math.LOG10E;

  console.log("The value of the constant LOG10E is: " + LOG10E_value);

  PI_value = Math.PI;

  console.log("The value of the constant PI is: " + PI_value);

  SQRT1_2_value = Math.SQRT1_2;

  console.log("The value of the constant SQRT1_2 is: " + SQRT1_2_value);

  SQRT2_value = Math.SQRT2;

  console.log("The value of the constant SQRT2 is: " + SQRT2_value);

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee math_example.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

The value of the constant E is: 2.718281828459045
The value of the constant LN2 is: 0.6931471805599453
The value of the constant LN10 is: 2.302585092994046
The value of the constant LOG2E is: 1.4426950408889634
The value of the constant LOG10E is: 0.4342944819032518
The value of the constant PI is: 3.141592653589793
The value of the constant SQRT1_2 is: 0.7071067811865476
The value of the constant SQRT2 is: 1.4142135623730951

Phương pháp toán học

Ngoài các thuộc tính, đối tượng Math cũng cung cấp các phương thức. Sau đây là danh sách các phương pháp củaMathđối tượng của JavaScript. Nhấp vào tên của các phương thức này để xem ví dụ minh họa cách sử dụng chúng trong CoffeeScript.

Không. Phương pháp & Mô tả
1 abs ()

Trả về giá trị tuyệt đối của một số.

2 acos ()

Trả về arccosine (tính bằng radian) của một số.

3 asin ()

Trả về arcsine (tính bằng radian) của một số.

4 atan ()

Trả về arctang (tính bằng radian) của một số.

5 atan2 ()

Trả về arctang của thương số của các đối số của nó.

6 ceil ()

Trả về số nguyên nhỏ nhất lớn hơn hoặc bằng một số.

7 cos ()

Trả về cosin của một số.

số 8 exp ()

Trả về E N , trong đó N là đối số và E là hằng số Euler, cơ số của lôgarit tự nhiên.

9 sàn nhà()

Trả về số nguyên lớn nhất nhỏ hơn hoặc bằng một số.

10 log ()

Trả về lôgarit tự nhiên (cơ số E) của một số.

11 max ()

Trả về số lớn nhất của không hoặc nhiều số.

12 min ()

Trả về số nhỏ nhất trong số không hoặc nhiều số.

13 pow ()

Trả về cơ số cho lũy thừa, nghĩa là lũy thừa cơ số.

14 ngẫu nhiên ()

Trả về một số giả ngẫu nhiên từ 0 đến 1.

15 tròn()

Trả về giá trị của một số được làm tròn đến số nguyên gần nhất.

16 tội()

Trả về sin của một số.

17 sqrt ()

Trả về căn bậc hai của một số.

18 tan ()

Trả về tang của một số.

Một ngoại lệ (hoặc sự kiện đặc biệt) là một vấn đề phát sinh trong quá trình thực hiện một chương trình. Khi một Ngoại lệ xảy ra, dòng chảy bình thường của chương trình bị gián đoạn và chương trình / Ứng dụng kết thúc bất thường, điều này không được khuyến nghị, do đó những ngoại lệ này phải được xử lý.

Một ngoại lệ có thể xảy ra vì nhiều lý do khác nhau. Dưới đây là một số tình huống xảy ra ngoại lệ.

  • Một người dùng đã nhập dữ liệu không hợp lệ.
  • Không thể tìm thấy tệp cần mở.

Ngoại lệ trong CoffeeScript

CoffeeScripts hỗ trợ xử lý ngoại lệ / lỗi bằng cách sử dụng try catch and finallycác khối. Các chức năng của các khối này giống như trong JavaScript,try khối chứa các câu lệnh đặc biệt, catch khối có hành động được thực hiện khi một ngoại lệ xảy ra và finally khối được sử dụng để thực hiện các câu lệnh một cách vô điều kiện.

Sau đây là các cú pháp của try catchfinally khối trong CoffeeScript.

try 
   // Code to run
   
 catch ( e ) 
   // Code to run if an exception occurs

 finally 
   // Code that is always executed regardless of 
   // an exception occurring

Các try khối phải được theo sau bởi chính xác một catch khối hoặc một finallykhối (hoặc một trong cả hai). Khi một ngoại lệ xảy ra trongtry khối, ngoại lệ được đặt trong ecatchkhối được thực thi. Tùy chọnfinally khối thực thi vô điều kiện sau khi thử / bắt.

Thí dụ

Ví dụ sau minh họa việc xử lý Ngoại lệ bằng cách sử dụng khối try và catch trong CoffeeScript. Ở đây, chúng tôi đang cố gắng sử dụng một biểu tượng không xác định trong hoạt động CoffeeScript và chúng tôi đã xử lý lỗi xảy ra bằng cách sử dụngtrycatchcác khối. Lưu mã này trong một tệp có tênException_handling.coffee

try
  x = y+20
  console.log "The value of x is :" +x
catch e
  console.log "exception/error occurred"
  console.log "The STACKTRACE for the exception/error occurred is ::"
  console.log e.stack

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c Exception_handling.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var e, error, x;

  try {
    x = y + 20;
    console.log("The value of x is :" + x);
  } catch (error) {
    e = error;
    console.log("exception/error occurred");
    console.log("The STACKTRACE for the exception/error occurred is ::");
    console.log(e.stack);
  }

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee Exception_handling.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

exception/error occurred The STACKTRACE for the exception/error occurred is :: 
ReferenceError: y is not defined
  at Object.<anonymous> (C:\Examples\strings_exceptions\Exception_handling.coffee:3:7)
  at Object.<anonymous> (C:\Examples\strings_exceptions\Exception_handling.coffee:2:1)
  at Module._compile (module.js:413:34)
  at Object.exports.run (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\coffee-script.js:134:23)
  at compileScript (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:224:29)
  at compilePath (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:174:14)
  at Object.exports.run (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:98:20)
  at Object.<anonymous> (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\bin\coffee:7:41)
  at Module._compile (module.js:413:34)
  at Object.Module._extensions..js (module.js:422:10)
  at Module.load (module.js:357:32)
  at Function.Module._load (module.js:314:12)
  at Function.Module.runMain (module.js:447:10)
  at startup (node.js:139:18)
  at node.js:999:3

Khối cuối cùng

Chúng ta cũng có thể viết lại ví dụ trên bằng cách sử dụng finallykhối. Nếu chúng tôi làm như vậy, nội dung của khối này sẽ được thực thi vô điều kiện sautrycatch. Lưu mã này trong một tệp có tênException_handling_finally.coffee

try
  x = y+20
  console.log "The value of x is :" +x
catch e
  console.log "exception/error occurred"
  console.log "The STACKTRACE for the exception/error occurred is ::"
  console.log e.stack
 
finally
  console.log "This is the statement of finally block"

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c Exception_handling_finally.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var e, error, x;

  try {
    x = y + 20;
    console.log("The value of x is :" + x);
  } catch (error) {
    e = error;
    console.log("exception/error occurred");
    console.log("The STACKTRACE for the exception/error occurred is ::");
    console.log(e.stack);
  } finally {
    console.log("This is the statement of finally block");
  }

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee Exception_handling_finally.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

exception/error occurred The STACKTRACE for the exception/error occurred is :: 
ReferenceError: y is not defined
  at Object.<anonymous> (C:\Examples\strings_exceptions\Exception_handling.coffee:3:7)
  at Object.<anonymous> (C:\Examples\strings_exceptions\Exception_handling.coffee:2:1)
  at Module._compile (module.js:413:34)
  at Object.exports.run (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\coffee-script.js:134:23)
  at compileScript (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:224:29)
  at compilePath (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:174:14)
  at Object.exports.run (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:98:20)
  at Object.<anonymous> (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\bin\coffee:7:41)
  at Module._compile (module.js:413:34)
  at Object.Module._extensions..js (module.js:422:10)
  at Module.load (module.js:357:32)
  at Function.Module._load (module.js:314:12)
  at Function.Module.runMain (module.js:447:10)
  at startup (node.js:139:18)
  at node.js:999:3

This is the statement of finally block

Tuyên bố ném

CoffeeScript cũng hỗ trợ throwtuyên bố. Bạn có thể sử dụng câu lệnh ném để nâng cao các ngoại lệ nội trang hoặc các ngoại lệ tùy chỉnh của bạn. Sau đó, những ngoại lệ này có thể được ghi lại và bạn có thể thực hiện một hành động thích hợp.

Thí dụ

Ví dụ sau minh họa việc sử dụng throwtrong CoffeeScript. Lưu mã này trong một tệp có tênthrow_example.coffee

myFunc = ->
  a = 100
  b = 0
  try
    if b == 0
      throw ("Divided by zero error.")
    else
      c = a / b
  catch e
    console.log "Error: " + e

myFunc()

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c throw_example.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var myFunc;

  myFunc = function() {
    var a, b, c, e, error;
    a = 100;
    b = 0;
    try {
      if (b === 0) {
        throw "Divided by zero error.";
      } else {
        return c = a / b;
      }
    } catch (error) {
      e = error;
      return console.log("Error: " + e);
    }
  };

  myFunc();

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee throw_example.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

Divided by zero error.

Biểu thức chính quy là một đối tượng mô tả một mẫu ký tự mà JavaScript hỗ trợ. Trong JavaScript, lớp RegExp đại diện cho các biểu thức chính quy và cả String và RegExp đều xác định các phương thức sử dụng các biểu thức chính quy để thực hiện các chức năng so khớp mẫu và tìm kiếm và thay thế mạnh mẽ trên văn bản.

Biểu thức chính quy trong CoffeeScript

Các biểu thức chính quy trong CoffeeScript cũng giống như JavaScript. Truy cập liên kết sau để xem các biểu thức chính quy trong JavaScript - javascript_regular_expressions

Cú pháp

Một biểu thức chính quy trong CoffeeScript được định nghĩa bằng cách đặt mẫu RegExp giữa các dấu gạch chéo về phía trước như hình dưới đây.

pattern =/pattern/

Thí dụ

Sau đây là một ví dụ về biểu thức chính quy trong CoffeeScript. Ở đây, chúng tôi đã tạo một biểu thức tìm ra dữ liệu được in đậm (dữ liệu giữa các thẻ <b> và </b>). Lưu mã này trong một tệp có tênregex_example.coffee

input_data ="hello how are you welcome to <b>Tutorials Point.</b>"
regex = /<b>(.*)<\/b>/
result = regex.exec(input_data)
console.log result

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c regex_example.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var input_data, regex, result;

  input_data = "hello how are you welcome to <b>Tutorials Point.</b>";

  regex = /<b>(.*)<\/b>/;

  result = regex.exec(input_data);

  console.log(result);

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee regex_example.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

[ '<b>Tutorials Point.</b>',
  'Tutorials Point.',
  index: 29,
  input: 'hello how are you welcome to <b> Tutorials Point.</b>' ]

heregex

Các biểu thức chính quy phức tạp mà chúng tôi viết bằng cú pháp do JavaScript cung cấp là không thể đọc được, do đó, để làm cho Biểu thức chính quy dễ đọc hơn, CoffeeScript cung cấp một cú pháp mở rộng cho các biểu thức chính quy được gọi là heregex. Sử dụng cú pháp này, chúng ta có thể phá vỡ các biểu thức chính quy thông thường bằng cách sử dụng khoảng trắng và chúng ta cũng có thể sử dụng nhận xét trong các biểu thức chính quy mở rộng này, do đó làm cho chúng thân thiện hơn với người dùng.

Thí dụ

Ví dụ sau minh họa việc sử dụng các biểu thức chính quy nâng cao trong CoffeeScript heregex. Ở đây, chúng tôi đang viết lại ví dụ trên bằng cách sử dụng các biểu thức chính quy nâng cao. Lưu mã này trong một tệp có tênheregex_example.coffee

input_data ="hello how are you welcome to Tutorials Point."
heregex = ///
<b>  #bold opening tag 
(.*) #the tag value
</b>  #bold closing tag
///
result = heregex.exec(input_data)
console.log result

Mở command prompt và biên dịch tệp .coffee như hình dưới đây.

c:\> coffee -c heregex_example.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var heregex, input_data, result;

  input_data = "hello how are you welcome to <b> Tutorials Point.</b>";

  heregex = /<b>(.*) <\/b>/;

  result = heregex.exec(input_data);

  console.log(result);

}).call(this);

Bây giờ, hãy mở command prompt một lần nữa và chạy tệp CoffeeScript như hình dưới đây.

c:\> coffee heregex_example.coffee

Khi thực thi, tệp CoffeeScript tạo ra kết quả sau.

[ '<b>Tutorials Point.</b>',
  'Tutorials Point.',
  index: 29,
  input: 'hello how are you welcome to <b>Tutorials Point.</b>' ]

JavaScript không cung cấp classtừ khóa. Chúng ta có thể đạt được sự kế thừa trong JavaScript bằng cách sử dụng các đối tượng và nguyên mẫu của chúng. Mọi đối tượng đều có nguyên mẫu riêng của chúng và chúng kế thừa các chức năng và thuộc tính từ nguyên mẫu của chúng. Vì nguyên mẫu cũng là một đối tượng, nên nó cũng có nguyên mẫu của riêng nó.

Mặc dù kế thừa nguyên mẫu mạnh hơn nhiều so với kế thừa cổ điển, nhưng nó rất khó và khó hiểu đối với người dùng mới làm quen.

Các lớp học trong CoffeeScript

Giải quyết vấn đề này, CoffeeScript cung cấp một cấu trúc cơ bản được gọi là classđược tạo bằng cách sử dụng các nguyên mẫu của JavaScript. Bạn có thể xác định một lớp trong CoffeeScript bằng cách sử dụng từ khóa lớp như hình dưới đây.

class Class_Name

Thí dụ

Hãy xem xét ví dụ sau, ở đây chúng ta đã tạo một lớp có tên Student sử dụng từ khóa class.

class Student

Nếu bạn biên dịch đoạn mã trên, nó sẽ tạo ra JavaScript sau.

var Student;

Student = (function() {
  function Student() {}

  return Student;

})();

Khởi tạo một lớp học

Chúng ta có thể khởi tạo một lớp bằng toán tử new giống như các ngôn ngữ lập trình hướng đối tượng khác như hình dưới đây.

new Class_Name

Bạn có thể khởi tạo lớp (Sinh viên) đã tạo ở trên bằng cách sử dụng new như hình dưới đây.

class Student
new  Student

Nếu bạn biên dịch đoạn mã trên, nó sẽ tạo ra JavaScript sau.

var Student;

Student = (function() {
  function Student() {}

  return Student;

})();

new Student;

Định nghĩa một hàm tạo

Hàm tạo là một hàm được gọi khi chúng ta khởi tạo một lớp, mục đích chính của nó là khởi tạo các biến cá thể. Trong CoffeeScript, bạn có thể xác định một hàm tạo chỉ bằng cách tạo một hàm với tênconstructor như hình bên dưới.

class Student
  constructor: (name)->
  @name = name

Ở đây, chúng ta đã định nghĩa một hàm tạo và gán tên biến cục bộ cho biến cá thể.

Các @ toán tử là một bí danh cho this từ khóa, nó được sử dụng để trỏ các biến cá thể của một lớp.

Nếu chúng tôi đặt @trước một đối số của hàm tạo, sau đó nó sẽ được tự động đặt làm biến thể hiện. Do đó, đoạn mã trên có thể được viết đơn giản như hình dưới đây:

class Student
  constructor: (@name)->

Thí dụ

Đây là một ví dụ về một hàm tạo trong CoffeeScript. Lưu nó trong một tệp có tênconstructor_example.coffee

#Defining a class
class Student
  constructor: (@name)->

#instantiating a class by passing a string to constructor
student = new Student("Mohammed");
console.log "the name of the student is :"+student.name

Compiling the code

Mở dấu nhắc lệnh và biên dịch ví dụ trên như hình dưới đây.

c:\>coffee -c constructor_example.coffee

Khi thực hiện lệnh trên, nó sẽ tạo ra JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var Student, student;

  Student = (function() {
    function Student(name) {
      this.name = name;
    }

    return Student;

  })();

  student = new Student("Mohammed");

  console.log("The name of the student is :"+student.name);

}).call(this);

Executing the Code

Chạy ví dụ trên bằng cách thực hiện lệnh sau trên dấu nhắc lệnh.

coffee constructor_example.coffee

Khi đang chạy, ví dụ trên cung cấp cho bạn kết quả sau.

The name of the student is :Mohammed

Thuộc tính phiên bản

Tương tự như trong các đối tượng, chúng ta cũng có thể có các thuộc tính trong một lớp. Và chúng được gọi làinstance properties.

Thí dụ

Hãy xem xét ví dụ sau. Ở đây, chúng ta đã tạo các biến (tên, tuổi) và một hàm (message ()) trong lớp và truy cập chúng bằng đối tượng của nó. Lưu ví dụ này vào một tệp có têninstance_properties_example.coffee

#Defining a class
class Student
  name="Ravi"
  age=24
  message: ->
    "Hello "+name+" how are you" 

#instantiating a class by passing a string to constructor
student = new Student();
console.log student.message()

Khi biên dịch, đoạn mã trên tạo ra kết quả sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var Student, student;

  Student = (function() {
    var age, name;

    function Student() {}

    name = "Ravi";

    age = 24;

    Student.prototype.message = function() {
      return "Hello " + name + " how are you";
    };

    return Student;

  })();

  student = new Student();

  console.log(student.message());

}).call(this);

Thuộc tính tĩnh

Chúng ta có thể định nghĩa các thuộc tính tĩnh trong lớp. Phạm vi của các thuộc tính tĩnh bị hạn chế trong lớp và chúng tôi tạo các hàm tĩnh bằng cách sử dụngthis keyword hoặc bí danh của nó @và chúng ta phải truy cập các thuộc tính này bằng tên lớp là Class_Name.property .

Thí dụ

Trong ví dụ sau, chúng tôi đã tạo một hàm tĩnh có tên là thông báo. và đã truy cập nó. Lưu nó trong một tệp có tênstatic_properties_example.coffee.

#Defining a class
class Student
  @message:(name) ->
    "Hello "+name+" how are you" 
console.log Student.message("Raju")

Mở dấu nhắc lệnh và biên dịch tệp CoffeeScript ở trên bằng lệnh sau.

c:\>coffee -c  static_properties_example.coffee

Khi biên dịch, nó cung cấp cho bạn JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var Student;

  Student = (function() {
    function Student() {}

    Student.message = function(name) {
      return "Hello " + name + " how are you";
    };

    return Student;

  })();

  console.log(Student.message("Raju"));

}).call(this);

Thực thi coffeeScript ở trên trong dấu nhắc lệnh như hình dưới đây.

c:\>coffee static_properties_example.coffee

Khi thực thi, ví dụ trên cung cấp cho bạn kết quả sau.

Hello Raju how are you

Di sản

Trong CoffeeScript, chúng ta có thể kế thừa các thuộc tính của một lớp này trong một lớp khác bằng cách sử dụng extends từ khóa.

Thí dụ

Sau đây là một ví dụ về kế thừa trong CoffeeScript. Ở đây, chúng tôi có hai lớp cụ thể làAddMy_class. Chúng tôi kế thừa các thuộc tính của lớp có tên Add trong lớp My_class và truy cập chúng bằng cách sử dụngextends từ khóa.

#Defining a class
class Add
   a=20;b=30
   
   addition:->
     console.log "Sum of the two numbers is :"+(a+b) 

class My_class extends Add

my_class = new My_class()
my_class.addition()

CoffeeScript sử dụng kế thừa nguyên mẫu đằng sau hậu trường. Trong CoffeeScript, bất cứ khi nào chúng ta tạo các cá thể, phương thức khởi tạo của lớp cha được gọi cho đến khi chúng ta ghi đè nó.

Chúng ta có thể gọi hàm tạo của lớp cha từ lớp con, sử dụng super() từ khóa như được hiển thị trong ví dụ dưới đây.

#Defining a class
class Add
   constructor:(@a,@b) ->
   
   addition:=>
     console.log "Sum of the two numbers is :"+(@a+@b) 

class Mul extends Add
   constructor:(@a,@b) ->
     super(@a,@b)
   
   multiplication:->
     console.log "Product of the two numbers is :"+(@a*@b)

mul = new Mul(10,20)
mul.addition()
mul.multiplication()

Lớp học động

CoffeeScript sử dụng kế thừa nguyên mẫu để tự động kế thừa tất cả các thuộc tính cá thể của một lớp. Điều này đảm bảo rằng các lớp là động; ngay cả khi bạn thêm thuộc tính vào lớp cha sau khi một lớp con đã được tạo, thì thuộc tính vẫn sẽ được truyền cho tất cả các lớp con được kế thừa của nó.

class Animal
  constructor: (@name) ->

class Parrot extends Animal

Animal::rip = true

parrot = new Parrot("Macaw")
console.log "This parrot is no more" if parrot.rip

Khi thực thi, CoffeeScript ở trên tạo ra mã JavaScript sau.

// Generated by CoffeeScript 1.10.0
(function() {
  var Animal, Parrot, parrot,
    extend = function(child, parent) { for (var key in parent) {
      if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() {
      this.constructor = child; } ctor.prototype = parent.prototype;
      child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    hasProp = {}.hasOwnProperty;

  Animal = (function() {
    function Animal(name) {
      this.name = name;
    }

    return Animal;

  })();

  Parrot = (function(superClass) {
    extend(Parrot, superClass);

    function Parrot() {
      return Parrot.__super__.constructor.apply(this, arguments);
    }

    return Parrot;

  })(Animal);

  Animal.prototype.rip = true;

  parrot = new Parrot("Macaw");

  if (parrot.rip) {
    console.log("This parrot is no more");
  }
  
}).call(this);

AJAX là một kỹ thuật phát triển web để tạo các ứng dụng web tương tác.

  • AJAX là viết tắt của Ađồng bộ JavaScript và XML. Đây là một kỹ thuật mới để tạo các ứng dụng web tốt hơn, nhanh hơn và tương tác hơn với sự trợ giúp của XML, HTML, CSS và Java Script.

  • Ajax sử dụng XHTML cho nội dung, CSS để trình bày, cùng với Mô hình đối tượng tài liệu và JavaScript để hiển thị nội dung động.

  • Các ứng dụng web thông thường truyền thông tin đến và đi từ máy chủ bằng các yêu cầu đồng bộ. Nó có nghĩa là bạn điền vào biểu mẫu, nhấn gửi và được chuyển đến một trang mới với thông tin mới từ máy chủ.

  • Với AJAX, khi bạn nhấn gửi, JavaScript sẽ đưa ra yêu cầu tới máy chủ, diễn giải kết quả và cập nhật màn hình hiện tại. Theo nghĩa thuần túy nhất, người dùng sẽ không bao giờ biết rằng bất cứ thứ gì thậm chí đã được truyền đến máy chủ.

  • XML thường được sử dụng làm định dạng để nhận dữ liệu máy chủ, mặc dù có thể sử dụng bất kỳ định dạng nào, kể cả văn bản thuần túy.

  • AJAX là một công nghệ trình duyệt web độc lập với phần mềm máy chủ web.

  • Người dùng có thể tiếp tục sử dụng ứng dụng trong khi chương trình khách yêu cầu thông tin từ máy chủ ở chế độ nền.

Nói chung, chúng tôi sử dụng jQuery để làm việc với Ajax. Sau đây là một ví dụ về Ajax và jQuery

<html>

   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript"
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
		
      <script type = "text/javascript" language = "javascript">
         $(document).ready(function() { $("#driver").click(function(event){
               $('#stage').load('/jquery/result.html');
            });
         });
      </script>
   </head>
	
   <body>
	
      <p>Click on the button to load /jquery/result.html file −</p>
		
      <div id = "stage" style = "background-color:cc0;">
         STAGE
      </div>
		
      <input type = "button" id = "driver" value = "Load Data" />
		
   </body>
	
</html>

Đây load() bắt đầu một yêu cầu Ajax đến URL được chỉ định /coffeescript/result.htmltập tin. Sau khi tải tệp này, tất cả nội dung sẽ được điền vào bên trong <div> được gắn thẻ với giai đoạn ID . Giả sử rằng tệp /jquery/result.html của chúng tôi chỉ có một dòng HTML -

<h1>THIS IS RESULT...</h1>

Khi bạn nhấp vào nút đã cho, thì tệp result.html sẽ được tải.

CoffeeScript với Ajax

Chúng ta có thể viết lại ví dụ trên bằng CoffeeScript như hình dưới đây.

<html>

   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript"
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
      <script src="http://coffeescript.org/extras/coffee-script.js"></script>
        
      <script type="text/coffeescript">
        $(document).ready ->
          $('#driver').click (event) -> $('#stage').load '/jquery/result.html'
            return
          return
      </script>
   </head>
	
   <body>
	
      <p>Click on the button to load /jquery/result.html file -</p>
		
      <div id = "stage" style = "background-color:cc0;">
         STAGE
      </div>
		
      <input type = "button" id = "driver" value = "Load Data" />
		
   </body>
	
</html>

jQuery là một thư viện / khung công tác nhanh và ngắn gọn được xây dựng bằng JavaScript do John Resig tạo ra vào năm 2006 với phương châm tốt đẹp - Viết ít hơn, làm nhiều hơn.

jQuery đơn giản hóa việc duyệt tài liệu HTML, xử lý sự kiện, tạo hoạt ảnh và tương tác Ajax để phát triển web nhanh chóng. Truy cập hướng dẫn jQuery của chúng tôi để biết về jQuery .

Chúng tôi cũng có thể sử dụng CoffeeScript để làm việc với jQuery. Chương này hướng dẫn bạn cách sử dụng CoffeeScript để làm việc với jQuery.

Sử dụng CoffeeScript với jQuery

Mặc dù jQuery giải quyết được các vấn đề của trình duyệt, nhưng việc sử dụng nó với JavaScript có một số phần không tốt sẽ có một chút vấn đề. Sử dụng CoffeeScript thay vì JavaScript là một ý tưởng tốt hơn.

Hãy ghi nhớ những điểm sau khi chuyển đổi khi sử dụng jQuery với CoffeeScript.

Các $biểu tượng cho biết mã jQuery trong ứng dụng của chúng tôi. Sử dụng điều này để tách mã jQuery khỏi ngôn ngữ kịch bản như hình dưới đây.

$(document).ready

Không cần sử dụng dấu ngoặc nhọn trong CoffeeScript ngoại trừ khi gọi các hàm với các tham số và xử lý mã không rõ ràng và chúng ta phải thay thế định nghĩa hàm function() có dấu mũi tên như hình bên dưới.

$(document).ready ->

Loại bỏ các câu lệnh trả về không cần thiết, vì CoffeeScript trả về ngầm định các câu lệnh theo đuôi của một hàm.

Thí dụ

Sau đây là mã JavaScript trong đó các phần tử <div> đang được chèn ngay trước phần tử được nhấp -

<html>

   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript" 
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
		
      <script type = "text/javascript" language = "javascript">
         $(document).ready(function() {
            $("div").click(function () { $(this).before('<div class="div"></div>' );
            });
         });
      </script>
		
      <style>
         .div{ margin:10px;padding:12px; border:2px solid #666; width:60px;}
      </style>
   </head>
	
   <body>
	
      <p>Click on any square below:</p>
      <span id = "result"> </span>
		
      <div class = "div" style = "background-color:blue;"></div>
      <div class = "div" style = "background-color:green;"></div>
      <div class = "div" style = "background-color:red;"></div>
		
   </body>
	
</html>

Bây giờ, chúng ta có thể chuyển đoạn mã trên thành mã CoffeeScript như hình dưới đây

<html>

   <head>
      <title>The jQuery Example</title>
      <script type = "text/javascript"
         src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
      <script src="http://coffeescript.org/extras/coffee-script.js"></script>
	  
      <script type="text/coffeescript">
        $(document).ready -> $('div').click ->
            $(this).before '<div class="div"></div>'
            return
          return
      </script>
		
      <style>
         .div{ margin:10px;padding:12px; border:2px solid #666; width:60px;}
      </style>
   </head>
	
   <body>
	
      <p>Click on any square below:</p>
      <span id = "result"> </span>
		
      <div class = "div" style = "background-color:blue;"></div>
      <div class = "div" style = "background-color:green;"></div>
      <div class = "div" style = "background-color:red;"></div>
		
   </body>
	
</html>

Khi thực thi, điều này cung cấp cho bạn kết quả sau.

Gọi lại là gì?

Gọi lại là một hàm tương đương không đồng bộ cho một hàm. Một hàm gọi lại được gọi khi hoàn thành một nhiệm vụ nhất định. Node sử dụng nhiều lệnh gọi lại. Tất cả các API của Node đều được viết theo cách mà chúng hỗ trợ các lệnh gọi lại.

Ví dụ: một hàm đọc tệp có thể bắt đầu đọc tệp và trả lại điều khiển ngay lập tức về môi trường thực thi để lệnh tiếp theo có thể được thực thi. Khi quá trình nhập / xuất tệp hoàn tất, nó sẽ gọi hàm gọi lại trong khi chuyển hàm gọi lại, nội dung của tệp dưới dạng tham số. Vì vậy, không có việc chặn hoặc chờ đợi File I / O. Điều này làm cho Node.js có khả năng mở rộng cao, vì nó có thể xử lý số lượng yêu cầu cao mà không cần đợi bất kỳ hàm nào trả về kết quả.

Ví dụ về mã chặn

Tạo một tệp văn bản có tên input.txt có nội dung sau

Tutorials Point is giving self learning content 
to teach the world in simple and easy way!!!!!

Tạo tệp js có tên là main.js có mã sau:

var fs = require("fs");  
var data = fs.readFileSync('input.txt');  
console.log(data.toString()); 
console.log("Program Ended");

Bây giờ hãy chạy main.js để xem kết quả -

$ node main.js

Xác minh đầu ra.

Tutorials Point is giving self learning content 
to teach the world in simple and easy way!!!!! 
Program Ended

Ví dụ về mã không chặn

Tạo một tệp văn bản có tên input.txt có nội dung sau

Tutorials Point is giving self learning content 
to teach the world in simple and easy way!!!!!

Cập nhật tệp main.js để có mã sau:

var fs = require("fs");  
fs.readFile('input.txt', function (err, data) { 
  if (err) return console.error(err); 
    console.log(data.toString()); 
}); 
console.log("Program Ended");

Bây giờ hãy chạy main.js để xem kết quả -

$ node main.js

Xác minh đầu ra.

Program Ended 
Tutorials Point is giving self learning content 
to teach the world in simple and easy way!!!!!

Hai ví dụ này giải thích khái niệm blocking and non-blocking calls. Ví dụ đầu tiên cho thấy rằng chương trình sẽ chặn cho đến khi nó đọc tệp và sau đó, nó tiến hành kết thúc chương trình, trong khi trong ví dụ thứ hai, chương trình không đợi đọc tệp mà nó chỉ tiến hành in "Chương trình đã kết thúc".

Vì vậy, một chương trình chặn thực thi rất nhiều theo trình tự. Từ quan điểm lập trình, việc thực hiện logic dễ dàng hơn nhưng các chương trình không chặn không thực thi theo trình tự. Trong trường hợp một chương trình cần sử dụng bất kỳ dữ liệu nào để xử lý, thì dữ liệu đó nên được giữ trong cùng một khối để thực hiện tuần tự.

MongoDB là một cơ sở dữ liệu định hướng tài liệu, đa nền tảng cung cấp, hiệu suất cao, tính sẵn sàng cao và khả năng mở rộng dễ dàng. MongoDB hoạt động dựa trên khái niệm về bộ sưu tập và tài liệu. Để biết thêm thông tin, hãy đọc Hướng dẫn về MongoDB của chúng tôi .

Trong chương này, bạn sẽ học cách giao tiếp với cơ sở dữ liệu MongoDB bằng CoffeeScript.

Cài đặt

Cơ sở dữ liệu MongoDB có thể được tích hợp với CoffeeScript bằng trình điều khiển Node.js 2.0 của MongoDB. Trước hết, bạn cần cài đặt MongoDB trong hệ thống của mình, bằng cách tham khảo chương môi trường của hướng dẫn MongoDB của chúng tôi.

Sau khi cài đặt MongoDB thành công, hãy duyệt qua bin thư mục (nếu bạn chưa đặt đường dẫn) và khởi động dịch vụ MongoDB như hình dưới đây.

C:\Program Files\MongoDB\Server\3.2\bin> mongod

Cuối cùng cài đặt trình điều khiển MongoDB và các phụ thuộc của nó bằng cách thực hiện lệnh NPM sau trong dấu nhắc lệnh.

npm install mongodb --save

Kết nối với MongoDB

Để kết nối với MongoDB, trước hết hãy tạo MongoClient bằng cách sử dụng điều này, gọi connect()chức năng. Hàm này chấp nhận url và một hàm gọi lại làm tham số.

Sau mã CoffeeScript cho thấy cách kết nối với máy chủ MongoDB. Nếu máy chủ MongoDB đang chạy trong hệ thống của bạn, chương trình này sẽ thiết lập kết nối với máy chủ.

#Requiring the Mongodb package
mongo = require 'mongodb'

#Creating a MongoClient object
MongoClient = mongo.MongoClient

#Preparing the URL
url = 'mongodb://localhost:27017/testdb'

#Connecting to the server
MongoClient.connect url, (err, db) ->
  if err
    console.log 'Unable to connect . Error:', err
  else
    console.log 'Connection established to', url
    #Close connection
    db.close()
  return

Lưu đoạn mã trên vào một tệp có tên connect_db.coffeevà thực hiện nó như hình dưới đây. Nếu cơ sở dữ liệu được tạo thành công thì nó sẽ đưa ra thông báo sau

c:\> coffee connect_db.coffee
coffee connect_db.collection
Connection established to mongodb://localhost:27017/testdb

Tạo Bộ sưu tập

Một bộ sưu tập trong MongoDB chứa các tài liệu mà chúng tôi lưu trữ trong đó. Bạn có thể tạo một bộ sưu tập bằng cách sử dụngcollection()chức năng. Hàm này chấp nhận một đối số chuỗi đại diện cho tên của bộ sưu tập mà chúng ta muốn tạo.

Mã CoffeeScript sau đây cho thấy cách tạo một bộ sưu tập trong MongoDB. Trong trường hợp có bất kỳ lỗi nào, chúng sẽ được hiển thị trên bảng điều khiển.

#Requiring the Mongodb package
mongo = require 'mongodb'

#Creating a MongoClient object
MongoClient = mongo.MongoClient

#Preparing the URL
url = 'mongodb://localhost:27017/testdb'

#Connecting to the server
MongoClient.connect url, (err, db) ->
  if err
    console.log 'Unable to connect . Error:', err
  else
    console.log 'Connection established to', url
	
    #Create collection
    col = db.collection('My_collection')
    console.log "Collection created successfully."
	
    #Close connection
    db.close()
  return

Lưu đoạn mã trên vào một tệp có tên create_collection.coffeevà thực hiện nó như hình dưới đây. Nếu bộ sưu tập được tạo thành công thì nó sẽ đưa ra thông báo sau

c:/> coffee create_collection.coffee
Connection established to mongodb://localhost:27017/testdb
Collection created successfully.

Chèn tài liệu

Bạn có thể chèn tài liệu vào một bộ sưu tập trong MongoDB, bạn cần gọi một hàm có tên insert() bằng cách chuyển danh sách các tài liệu cần được chèn dưới dạng các tham số.

Mã CoffeeScript sau cho biết cách chèn tài liệu vào một bộ sưu tập có tên My_collection. Trong trường hợp có bất kỳ lỗi nào, chúng sẽ được hiển thị trên bảng điều khiển.

#Sample JSON Documents
doc1 = {name: 'Ram', age: 26, city: 'Hyderabad'}
doc2 = {name: 'Rahim', age: 27, city: 'Banglore'}
doc3 = {name: 'Robert', age: 28, city: 'Mumbai'}

#Requiring the Mongodb package
mongo = require 'mongodb'

#Creating a MongoClient object
MongoClient = mongo.MongoClient

#Preparing the URL
url = 'mongodb://localhost:27017/testdb'

#Connecting to the server
MongoClient.connect url, (err, db) ->
  if err
    console.log 'Unable to connect . Error:', err
  else
    console.log 'Connection established to', url  
  #Creating collection
  col = db.collection('My_collection')
	
  #Inserting documents
  col.insert [doc1,doc2,doc3], (err, result) ->
    if err
      console.log err
    else
      console.log "Documents inserted successfully"
    #Close connection
    db.close()
    return
  return

Lưu đoạn mã trên vào một tệp có tên insert_documents.coffeevà thực hiện nó như hình dưới đây. Nếu tài liệu được chèn thành công thì nó sẽ đưa ra thông báo sau

c:/> coffee insert_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Documents inserted successfully

Đọc tài liệu

Bạn có thể truy xuất các tài liệu được lưu trữ trong MongoDB bằng một hàm có tên find(). Mã CoffeeScript sau đây cho biết cách truy xuất các bản ghi được lưu trữ trong MongoDB.

#Requiring the Mongodb package
mongo = require 'mongodb'

#Creating a MongoClient object
MongoClient = mongo.MongoClient

#Preparing the URL
url = 'mongodb://localhost:27017/testdb'

#Connecting to the server
MongoClient.connect url, (err, db) ->
  if err
    console.log 'Unable to connect . Error:', err
  else
    console.log 'Connection established to', url	
	#Creating collection object
    col = db.collection('My_collection')    
    #Inserting Documents
    col.find({name: 'Ram'}).toArray (err, result)->
      if err
        console.log err
      else 
      console.log 'Found:', result			
      #Closing connection
      db.close()
      return
  return

Lưu đoạn mã trên vào một tệp có tên read_documents.coffeevà thực hiện nó như hình dưới đây. Chương trình này truy xuất tài liệu cần thiết trong bộ sưu tập được chỉ định và hiển thị nó như hình dưới đây.

C:\> coffee read_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Found: [ { _id: 56e269c10478809c3009ad1e,
    name: 'Ram',
    age: 26,
    city: 'Hyderabad' } ]

Bạn cũng có thể đọc tất cả các tài liệu hiện có trong một bộ sưu tập cụ thể bằng cách thực thi find() hàm mà không truyền bất kỳ đối số nào cho nó như được hiển thị bên dưới.

#Requiring the Mongodb package
mongo = require 'mongodb'

#Creating a MongoClient object
MongoClient = mongo.MongoClient

#Preparing the URL
url = 'mongodb://localhost:27017/testdb'

#Connecting to the server
MongoClient.connect url, (err, db) ->
  if err
    console.log 'Unable to connect . Error:', err
  else
    console.log 'Connection established to', url	
	#Creating collection object
    col = db.collection('My_collection')    
    #Reading all Documents
    col.find().toArray (err, result)->
      if err
        console.log err
      else 
      console.log 'Found:', result			
      #Closing connection
      db.close()
      return
  return

Lưu đoạn mã trên vào một tệp có tên read_all_documents.coffeevà thực hiện nó như hình dưới đây. chương trình này truy xuất tất cả các tài liệu trong bộ sưu tập được chỉ định và hiển thị nó như hình dưới đây.

C:\> coffee read_all_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Found: [ { _id: 56e2c5e27e0bad741a68c03e,
    name: 'Ram',
    age: 26,
    city: 'Hyderabad' },
  { _id: 56e2c5e27e0bad741a68c03f,
    name: 'Rahim',
    age: 27,
    city: 'Banglore' },
  { _id: 56e2c5e27e0bad741a68c040,
    name: 'Robert',
    age: 28,
    city: 'Mumbai' } ]

Cập nhật tài liệu

Bạn có thể cập nhật các tài liệu được lưu trữ trong MongoDB bằng một hàm có tên update(). Mã CoffeeScript sau cho thấy cách cập nhật các bản ghi được lưu trữ trong MongoDB.

#Get mongo client object
MongoClient = require('mongodb').MongoClient
#Connecting to mongodb
url = 'mongodb://localhost:27017/testdb'
MongoClient.connect url, (err, db) ->
  if err
    console.log 'Unable to connect . Error:', err
  else
    console.log 'Connection established to', url	
	#Creating collection
    col = db.collection('My_collection')
    #Reading Data
    col.update {name:'Ram'},{$set:{city:'Delhi'}},(err, result)->
      if err
        console.log err
      else 
      console.log "Document updated"    
      
      #Closing connection
      db.close()
	  return
  return

Chương trình này cập nhật thành phố của nhân viên tên Ram từ Hyderabad đến Delhi.

Lưu đoạn mã trên vào một tệp có tên update_documents.coffeevà thực hiện nó như hình dưới đây. chương trình này truy xuất các tài liệu trong bộ sưu tập được chỉ định và hiển thị nó như hình dưới đây.

C:\> coffee update_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Document updated

Sau khi cập nhật, nếu bạn thực hiện read_documents.coffee chương trình, sau đó bạn sẽ thấy rằng tên thành phố của người tên Ram được cập nhật từ Hyderabad đến Delhi.

C:\> coffee Read_all_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Found: [ { _id: 56e2c5e27e0bad741a68c03e,
    name: 'Ram',
    age: 26,
    city: 'Delhi' },
  { _id: 56e2c5e27e0bad741a68c03f,
    name: 'Rahim',
    age: 27,
    city: 'Banglore' },
  { _id: 56e2c5e27e0bad741a68c040,
    name: 'Robert',
    age: 28,
    city: 'Mumbai' } ]

Xóa tài liệu

Bạn có thể xóa tất cả các tài liệu khỏi bộ sưu tập bằng cách sử dụng remove()chức năng. Sau mã CoffeeScript cho thấy cách xóa tất cả các bản ghi được lưu trữ trong MongoDB.

#Get mongo client object
MongoClient = require('mongodb').MongoClient
#Connecting to mongodb
url = 'mongodb://localhost:27017/testdb'
MongoClient.connect url, (err, db) ->
  if err
    console.log 'Unable to connect . Error:', err
  else
    console.log 'Connection established to', url	
	#Creating collection
    col = db.collection('My_collection')
    #Deleting Data
    col.remove()
    console.log "Document deleted"
      
    #Closing connection
    db.close()	  
  return

Lưu đoạn mã trên vào một tệp có tên delete_documents.coffeevà thực hiện nó như hình dưới đây. chương trình này xóa tất cả các tài liệu trong bộ sưu tập được chỉ định hiển thị các thông báo sau.

C:\> coffee delete_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Document deleted

Sau khi xóa, nếu bạn thực hiện lệnh read_documents.coffee chương trình, sau đó bạn sẽ nhận được một bộ sưu tập rỗng như hình dưới đây.

C:\> coffee Read_all_documents.coffee
Connection established to mongodb://localhost:27017/testdb
Found: [ ]

SQLite là một công cụ cơ sở dữ liệu quan hệ dựa trên lược đồ, nhẹ. Nó là một lựa chọn phổ biến làm phần mềm cơ sở dữ liệu nhúng để lưu trữ cục bộ trong trình duyệt web.

Không giống như nhiều hệ quản trị cơ sở dữ liệu khác, SQLite không phải là một công cụ cơ sở dữ liệu máy khách-máy chủ. Để biết thêm thông tin, hãy đọc Hướng dẫn SQLite của chúng tôi

Trong chương này, bạn sẽ học cách giao tiếp với cơ sở dữ liệu SQLite bằng CoffeeScript.

Cài đặt

Cơ sở dữ liệu SQLite3 có thể được tích hợp với CoffeeScript bằng cách sử dụng node-sqlite3mô-đun. Mô-đun này hoạt động với Node.js v0.10.x, v0.12.x, v4.x và v5.x. Mô-đun này phục vụ các chức năng khác nhau để giao tiếp với SQLite3 bằng CoffeeScript, ngoài ra, mô-đun này cũng cung cấp một giao diện ràng buộc tham số và truy vấn đơn giản, và một API tuần tự hóa truy vấn.

Bạn có thể cài đặt mô-đun node-sqlite3 bằng npm như hình dưới đây.

npm install sqlite3

Để sử dụng mô-đun sqlite3, trước tiên bạn phải tạo một đối tượng kết nối đại diện cho cơ sở dữ liệu và đối tượng này sẽ giúp bạn thực thi tất cả các câu lệnh SQL.

Kết nối với Cơ sở dữ liệu

Để kết nối với cơ sở dữ liệu SQLite, trước hết hãy tạo gói của nó bằng cách gọi require() chức năng của node-sqlite3 mô-đun và chuyển chuỗi sqlite3như một tham số cho nó. Sau đó, kết nối với cơ sở dữ liệu bằng cách chuyển tên của cơ sở dữ liệu tớisqlite3.Database() xây dựng.

Sau mã CoffeeScript cho thấy cách kết nối với cơ sở dữ liệu hiện có. Nếu cơ sở dữ liệu không tồn tại, thì nó sẽ được tạo với tên đã chotest.db, được mở và cuối cùng đối tượng cơ sở dữ liệu sẽ được trả về.

#Creating sqlite3 package
sqlite3 = require('sqlite3')

#Creating a Database instance
db = new (sqlite3.Database)('test.db')
console.log "Database opened successfully."

Chúng tôi cũng có thể cung cấp :memory:để tạo cơ sở dữ liệu ẩn danh trong bộ nhớ và, một chuỗi trống để tạo cơ sở dữ liệu ẩn danh dựa trên đĩa, thay vì test.db. Lưu đoạn mã trên vào một tệp có têncreate_db.coffeevà thực hiện nó như hình dưới đây. Nếu cơ sở dữ liệu được tạo thành công, thì nó sẽ tạo ra thông báo sau:

c:\> coffee create_db.coffee
Successfully connected

Tạo bảng

Bạn có thể tạo một bảng trong cơ sở dữ liệu SQLite thông qua CoffeeScript bằng cách sử dụng run()chức năng. Chuyển truy vấn để tạo bảng cho hàm này ở định dạng Chuỗi.

Chương trình CoffeeScript sau sẽ được sử dụng để tạo một bảng trong test.db cơ sở dữ liệu -

#Creating sqlite3 package
sqlite3 = require('sqlite3')

#Creating a Database instance
db = new (sqlite3.Database)('test.db')
console.log "Successfully connected"

db.serialize ->
  db.run 'CREATE TABLE STUDENT (name TEXT, age INTEGER, city TEXT)'
  console.log "Table created successfully"  
  return
db.close()

Các serialize()hàm đặt cơ sở dữ liệu ở chế độ tuần tự hóa. Trong chế độ này khi một cuộc gọi lại gặp phải, nó sẽ được gọi ngay lập tức. Các truy vấn trong cuộc gọi lại đó được thực thi nối tiếp. Ngay sau đó hàm trả về Cơ sở dữ liệu sẽ được đặt lại ở chế độ bình thường. Sau khi hoàn tất giao dịch, chúng tôi cần đóng kết nối bằng cách sử dụngclose() chức năng.

Lưu đoạn mã trên vào một tệp có tên create_table.coffeevà thực hiện nó như hình dưới đây. Thao tác này sẽ tạo một bảng có tênSTUDENTtrong test.db cơ sở dữ liệu hiển thị các thông báo sau.

C:\> coffee create_table.coffee
Successfully connected
Table created successfully

Chèn / Tạo dữ liệu

Bạn có thể chèn dữ liệu vào cơ sở dữ liệu SQLite thông qua mã CoffeeScript bằng cách thực hiện câu lệnh chèn. Để làm như vậy, chúng ta có thể sử dụngprepare() hàm chuẩn bị các câu lệnh SQL.

Nó cũng chấp nhận truy vấn với các biến ràng buộc (?), các giá trị cho các biến này có thể được đính kèm bằng cách sử dụng run()chức năng. Bạn có thể chèn nhiều bản ghi bằng cách sử dụng câu lệnh đã chuẩn bị và sau khi chèn tất cả bản ghi, bạn cần hoàn thiện câu lệnh đã chuẩn bị bằngfinalize() chức năng.

Chương trình CoffeeScript sau đây cho thấy cách chèn các bản ghi trong bảng có tên là STUDENT đã tạo trong ví dụ trước.

#Creating sqlite3 package
sqlite3 = require('sqlite3').verbose()

#Creating a Database instance
db = new (sqlite3.Database)('test.db')
console.log "Successfully connected"

db.serialize ->
  stmt = db.prepare('INSERT INTO STUDENT VALUES (?,?,?)')
  stmt.run 'Ram',24,'Hyderabad'
  stmt.run 'Robert',25,'Mumbai'
  stmt.run 'Rahim',26,'Bangalore'
  stmt.finalize()
  console.log "Data inserted successfully"
  return
db.close()

Lưu đoạn mã trên vào một tệp có tên insert_data.coffeevà thực hiện nó như hình dưới đây. Thao tác này sẽ điền vào bảng có tên STUDENT hiển thị các thông báo sau.

C:\> coffee insert_data.coffee
Successfully connected
Data inserted successfully

Đọc / Truy xuất Dữ liệu

Bạn có thể lấy dữ liệu từ bảng SQLite bằng cách sử dụng each()chức năng. Hàm này chấp nhận một hàm gọi lại tùy chọn sẽ được gọi trên mỗi hàng.

Chương trình CoffeeScript sau đây cho thấy cách chúng ta có thể tìm nạp và hiển thị các bản ghi từ bảng có tên STUDENT được tạo trong ví dụ trước

#Creating sqlite3 package
sqlite3 = require('sqlite3').verbose()

#Creating a Database instance
db = new (sqlite3.Database)('test.db')
console.log "Successfully connected"

db.serialize ->
  console.log "The contents of the table STUDENT are ::"
  db.each 'SELECT rowid AS id, name,age,city FROM STUDENT', (err, row) ->
    console.log row.id + ': ' +row.name+', '+ row.age+', '+ row.city
    return
  return
db.close()

Lưu đoạn mã trên vào một tệp có tên retrive_data.coffeevà thực hiện nó như hình dưới đây. Thao tác này lấy tất cả các bản ghi trong bảng có tên STUDENT và hiển thị trên bảng điều khiển như sau.

C:\> coffee retrive_data.coffee
Successfully connected
The contents of the table STUDENT are ::
1: Ram, 24, Hyderabad
2: Robert, 25, Mumbai
3: Rahim, 26, Bangalore

Cập nhật dữ liệu

Mã CoffeeScript sau đây cho thấy cách chúng ta có thể sử dụng câu lệnh UPDATE để cập nhật bất kỳ bản ghi nào, sau đó tìm nạp và hiển thị các bản ghi đã cập nhật trong bảng có tên STUDENT

#Creating sqlite3 package
sqlite3 = require('sqlite3').verbose()

#Creating a Database instance
db = new (sqlite3.Database)('test.db')
console.log "Successfully connected"

db.serialize ->
  #Updating data
  stmt = db.prepare('UPDATE STUDENT SET city = ? where name = ?')
  stmt.run 'Delhi','Ram'
  console.log "Table updated"
  stmt.finalize()

  #Retrieving data after update operation
  console.log "The contents of the table STUDENT after update operation are ::"
  db.each 'SELECT rowid AS id, name, city FROM STUDENT', (err, row) ->
    console.log row.id + ': ' +row.name+', '+ row.city
    return
  return
db.close()

Lưu đoạn mã trên vào một tệp có tên update_data.coffeevà thực hiện nó như hình dưới đây. Điều này cập nhật thành phố của sinh viên có tên là Ram và hiển thị tất cả các bản ghi trong bảng sau khi thao tác cập nhật như sau.

C:\> coffee update_data.coffee
Successfully connected
Table updated
The contents of the table STUDENT after update operation are ::
1: Ram, Delhi
2: Robert, Mumbai
3: Rahim, Bangalore

Xóa dữ liệu

Đoạn mã CoffeeScript sau đây cho thấy cách chúng ta có thể sử dụng câu lệnh DELETE để xóa bất kỳ bản ghi nào, sau đó tìm nạp và hiển thị các bản ghi còn lại từ bảng có tên STUDENT.

#Creating sqlite3 package
sqlite3 = require('sqlite3').verbose()

#Creating a Database instance
db = new (sqlite3.Database)('test.db')
console.log "Successfully connected"

db.serialize ->
  #Deleting data
  stmt = db.prepare('DELETE FROM STUDENT WHERE name = ?')
  stmt.run 'Ram'
  console.log "Record deleted"
  stmt.finalize()

  #Retrieving data after delete operation
  console.log "The contents of the table STUDENT after delete operation are ::"
  db.each 'SELECT rowid AS id, name, city FROM STUDENT', (err, row) ->
    console.log row.id + ': ' +row.name+', '+ row.city
    return
  return
db.close()

Lưu đoạn mã trên vào một tệp có tên delete_data.coffeevà thực hiện nó như hình dưới đây. Nó xóa bản ghi của sinh viên có tên là Ram và hiển thị tất cả những gì còn lại trong bảng sau thao tác xóa như sau.

Successfully connected
Record deleted
The contents of the table STUDENT after delete operation are ::
2: Robert, Mumbai
3: Rahim, Bangalore