Chương này tóm tắt ngắn gọn các tính năng của JavaScript mà chúng ta đã học bây giờ, đặc biệt chú ý đến những điều thú vị trong Javascript.
Nội dung chính
1. Cấu trúc Code
Câu lệnh được phân định bằng dấu chấm phẩy:
alert('Hello'); alert('World');
Thông thường, ngắt dòng cũng được coi là dấu phân cách, do đó cũng sẽ hoạt động:
alert('Hello')
alert('World')
Đó gọi là chèn dấu chấm phẩy tự động. Đôi khi, nó không hoạt động, ví dụ:
alert("There will be an error after this message")
[1, 2].forEach(alert)
Hầu hết các hướng dẫn về lối viết đều đồng ý rằng chúng ta nên đặt dấu chấm phẩy sau mỗi câu.
Dấu chấm phẩy không bắt buộc sau các khối code {...}
và cú pháp cấu trúc với chúng như các vòng lặp:
function f() {
// no semicolon needed after function declaration
}
for(;;) {
// no semicolon needed after the loop
}
Tuy nhiên, ngay cả khi chúng ta có thể đặt một dấu chấm phẩy ở đâu đó, đó không phải là một lỗi. Nó sẽ bị bỏ qua.
Thêm trong: Cấu trúc mã.
2. Chế độ nghiêm ngặt(Strict mode)
Để kích hoạt đầy đủ tất cả các tính năng của JavaScript hiện đại, chúng ta nên bắt đầu các tập lệnh với "use strict"
.
'use strict';
...
Lệnh phải ở trên cùng của tập lệnh hoặc ở phần đầu của thân hàm.
Không có "use strict"
, mọi thứ vẫn hoạt động, nhưng một số tính năng hoạt động theo cách thức cũ. Chúng tôi thường thích sử dụng các tính năng hiện đại hơn.
Một số tính năng hiện đại của ngôn ngữ cho phép chế độ nghiêm ngặt hoàn toàn.
Thêm trong: Chế độ hiện đại, “sử dụng nghiêm ngặt” .
3. Biến
Có thể được khai báo bằng cách sử dụng:
let
const
(không đổi, không thể thay đổi)var
(kiểu cũ, sẽ thấy sau)
Một tên biến có thể bao gồm:
- Chữ cái và chữ số, nhưng ký tự đầu tiên có thể không phải là một chữ số.
- Các ký tự
$
và_
là bình thường, ngang bằng với các chữ cái. - Bảng chữ cái phi chữ Latinh và chữ tượng hình cũng được cho phép, nhưng thường không được sử dụng.
Các biến được gõ động. Họ có thể lưu trữ bất kỳ giá trị:
let x = 5;
x = "John";
Có 8 loại dữ liệu:
number
cho cả số nguyên và số nguyên,bigint
cho số nguyên có độ dài tùy ý,string
cho chuỗi,boolean
cho các giá trị logic :true/false
,null
– một loại có một giá trị duy nhấtnull
, có nghĩa là trống rỗng, hoặc không tồn tại.undefined
– một loại có một giá trị duy nhấtundefined
, nghĩa là không được chỉ định,object
vàsymbol
– đối với các cấu trúc dữ liệu phức tạp, chúng ta chưa tìm hiểu chúng.
Các toán tửtypeof
trả về kiểu cho một giá trị, với hai trường hợp ngoại lệ:
typeof null == "object" // error in the language
typeof function(){} == "function" // functions are treated specially
Thêm trong: Biến và kiểu dữ liệu.
4. Sự tương tác
Chúng tôi đang sử dụng trình duyệt làm môi trường làm việc, vì vậy các chức năng UI cơ bản sẽ là:prompt(question, [default])
Hỏi một question
và trả lại những gì khách truy cập đã nhập hoặc null
nếu họ nhấp vào Hủy bỏ. confirm(question)
Hỏi một question
và đề nghị chọn giữa Ok và Hủy. Sự lựa chọn được trả lại là true/false
. alert(message)
Đầu ra mộtmessage
.
Tất cả các chức năng này là phương thức , chúng tạm dừng thực thi code và ngăn khách truy cập tương tác với trang cho đến khi họ trả lời.
Ví dụ:
let userName = prompt("Your name?", "Cafedev");
let isTeaWanted = confirm("Do you want some tea?");
alert( "Visitor: " + userName ); // Cafedev
alert( "Tea wanted: " + isTeaWanted ); // true
Thêm trong: Tương tác: cảnh báo, nhắc nhở, xác nhận.
5. Toán tử
JavaScript hỗ trợ các toán tử sau: Số học
Thường xuyên : * + - /
, cũng %
cho phần còn lại và **
cho sức mạnh của một số.
Các toán tử nhị phân cộng +
chuỗi nối. Và nếu bất kỳ toán hạng nào là một chuỗi, thì một toán hạng khác cũng được chuyển đổi thành chuỗi:
alert( '1' + 2 ); // '12', string
alert( 1 + '2' ); // '12', string
Gán
Có một nhiệm vụ đơn giản: a = b
và kết hợp như thế nào a *= 2
.
Bitwise
Toán tử bitwise làm việc với các số nguyên 32 bit ở mức thấp nhất, mức bit.
Toán tử duy nhất có ba tham số : cond ? resultA : resultB
. Nếu cond
là đúng, trả lại resultA
, nếu không resultB
.
Toán tử logic
Logic AND &&
và OR ||
thực hiện đánh giá ngắn và sau đó trả về giá trị khi dừng (không cần thiết true
/ false
). Logic KHÔNG !
chuyển đổi toán hạng thành kiểu boolean và trả về giá trị nghịch đảo.
Toán tử kết hợp Nullish
Các ??
nhà khai thác cung cấp một cách để chọn một giá trị xác định từ một danh sách các biến. Kết quả a ?? b
là a
trừ khi nó null/undefined
, sau đó b
.
So sánh
Kiểm tra ==
là sự bằng nhau cho các giá trị của các kiểu khác nhau và nó sẽ tự chuyển đổi chúng thành một số (ngoại trừ null
và undefined
bằng nhau và không có gì khác), vì vậy các giá trị này bằng nhau:
alert( 0 == false ); // true
alert( 0 == '' ); // true
So sánh chuyển đổi thành một số.
Toán tử đẳng thức nghiêm ngặt ===
không thực hiện chuyển đổi: các loại khác nhau luôn có nghĩa là các giá trị khác nhau cho nó.
Giá trị null
và undefined
đặc biệt: chúng bằng nhau và không bằng bất cứ thứ gì khác.
So sánh lớn hơn / ít hơn so sánh các chuỗi ký tự theo từng ký tự, các loại khác được chuyển đổi thành một số.
Thêm trong: Toán tử cơ bản, toán học , So sánh , Toán tử logic , Toán tử hợp nhất Nullish ‘??’ .
6. Vòng lặp
- Chúng tôi bao gồm 3 loại vòng:
// 1 while (condition) { ... }
// 2 do { ... } while (condition);
// 3 for(let i = 0; i < 10; i++) { ... }
- Biến được khai báo trong
for(let...)
vòng lặp chỉ hiển thị bên trong vòng lặp. Nhưng chúng ta cũng có thể bỏ qualet
và sử dụng lại một biến hiện có. - Chỉ thị
break/continue
cho phép thoát toàn bộ vòng lặp / vòng lặp hiện tại. Sử dụng nhãn để break các vòng lặp lồng nhau.
Chi tiết trong: Vòng lặp: while và for .
Sau này chúng ta sẽ nghiên cứu thêm các loại vòng lặp để đối phó với các đối tượng.
7. Switch
Cấu trúc chuyển đổi trên máy tính có thể thay thế nhiều if
kiểm tra. Nó sử dụng ===
(So sánh bình đẳng nghiêm ngặt) để so sánh.
Ví dụ:
let age = prompt('Your age?', 18);
switch (age) {
case 18:
alert("Won't work"); // the result of prompt is a string, not a number
break;
case "18":
alert("This works!");
break;
default:
alert("Any value not equal to one above");
}
Chi tiết trong: Câu lệnh “switch”
8. Hàm
Chúng tôi đã trình bày ba cách để tạo một hàm trong JavaScript:
- Khai báo hàm: hàm trong luồng code chính
function sum(a, b) { let result = a + b; return result; }
Hàm biểu thức: hàm trong ngữ cảnh của biểu thức
let sum = function(a, b) {
let result = a + b;
return result;
};
Hàm mũi tên:
/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
*/
// expression at the right side
let sum = (a, b) => a + b;
// or multi-line syntax with { ... }, need return here:
let sum = (a, b) => {
// ...
return a + b;
}
// without arguments
let sayHi = () => alert("Hello");
// with a single argument
let double = n => n * 2;
- Các hàm có thể có các biến cục bộ: những biến được khai báo bên trong cơ thể của nó. Các biến như vậy chỉ được nhìn thấy bên trong hàm.
- Các tham số có thể có các giá trị mặc định :
function sum(a = 1, b = 2) {...}
. - Hàm luôn trả lại một cái gì đó. Nếu không có
return
tuyên bố, thì kết quả làundefined
.
Chi tiết: xem Hàm , Hàm Mũi tên, Hàm biểu thức.
9. Thêm nữa
Đó là một danh sách ngắn gọn các tính năng JavaScript. Cho đến bây giờ chúng tôi chỉ nghiên cứu cơ bản. Hơn nữa trong phần tiếp theo, bạn sẽ tìm thấy nhiều tính năng đặc biệt và nâng cao hơn của JavaScript.
Phần tiếp theo của chúng ta sẽ là phần 3 nói về Object, ace có thể tham khao series ngay bên dưới.
Full series tự học Javascript từ cơ bản tới nâng cao tại đây nha.
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!