Chương này mô tả các biểu thức và toán tử của JavaScript, bao gồm phép gán, so sánh, số học, bitwise, logic, chuỗi, bậc ba và hơn thế nữa.

Bạn đang xem : là gì … trong js

Một toán tử gán sẽ gán một giá trị cho toán hạng bên trái của nó dựa trên giá trị của toán hạng bên phải của nó.
Toán tử gán đơn giản là bằng ( = ), sẽ gán giá trị của toán hạng bên phải cho toán hạng bên trái của nó.
Nghĩa là, x = f () là một biểu thức gán giá trị của f () cho x .

Ngoài ra còn có các toán tử gán ghép là viết tắt của các phép toán được liệt kê trong bảng sau:

Gán cho thuộc tính

Nếu một biểu thức đánh giá thành một đối tượng , thì phía bên trái của biểu thức gán có thể thực hiện phép gán cho các thuộc tính của biểu thức đó.
Ví dụ:

  

let

obj

=

{

}

;

obj

.

x

=

3

;

bảng điều khiển

.

nhật ký

(

obj

.

x

)

;

bảng điều khiển

.

nhật ký

(

obj

)

;

const

key

=

"y"

;

obj

[

key

]

=

5

;

bảng điều khiển

.

nhật ký

(

obj

[

khóa

]

)

; bảng điều khiển

.

nhật ký

(

obj

)

;

Để biết thêm thông tin về các đối tượng, hãy đọc Làm việc với các đối tượng .

Nếu một biểu thức không đánh giá một đối tượng, thì các phép gán cho các thuộc tính của biểu thức đó không được gán:

  

let

val

=

0

;

bảng điều khiển

.

nhật ký

(

val

.

x

=

3

)

;

bảng điều khiển

.

nhật ký

(

val

.

x

)

;

bảng điều khiển

.

nhật ký

(

val

)

;

Có lỗi khi gán giá trị cho các thuộc tính không thể sửa đổi hoặc cho các thuộc tính của một biểu thức không có thuộc tính ( null hoặc undefined ). < / p>

Cấu trúc phá hủy

Đối với các bài tập phức tạp hơn, cú pháp chuyển nhượng cơ cấu lại là một biểu thức JavaScript giúp bạn có thể trích xuất dữ liệu từ các mảng hoặc đối tượng bằng cách sử dụng cú pháp phản ánh cấu trúc của mảng và
đối tượng theo nghĩa đen.

  

var

foo

=

[

'một'

,

'hai' < / p>

,

'ba'

]

;

var

một

=

foo

[

0

]

;

var

hai

=

foo

[

1

]

;

var

ba

=

foo

[

2

]

;

var

[

một

,

hai

,

ba

]

=

foo

;

Đánh giá và lồng ghép

Nói chung, các phép gán được sử dụng trong một khai báo biến (nghĩa là với const , let , hoặc var ) hoặc dưới dạng các câu lệnh độc lập).

 
 

let

x

=

f

(

)

;

x

=

g

(

)

;

Tuy nhiên, giống như các biểu thức khác, các biểu thức gán như x = f () đánh giá thành một giá trị kết quả.
Mặc dù giá trị kết quả này thường không được sử dụng, nhưng sau đó nó có thể được sử dụng bởi một biểu thức khác.

Việc xâu chuỗi các bài tập hoặc lồng ghép các bài tập trong các biểu thức khác có thể dẫn đến hành vi đáng ngạc nhiên.
Vì lý do này, một số hướng dẫn kiểu JavaScript không khuyến khích gán chuỗi hoặc lồng nhau ).
Tuy nhiên, đôi khi có thể xảy ra chuỗi nhiệm vụ và lồng ghép, vì vậy điều quan trọng là bạn phải hiểu được cách chúng hoạt động.

Bằng cách xâu chuỗi hoặc lồng một biểu thức gán, bản thân kết quả của nó có thể được gán cho một biến khác.
Nó có thể được ghi lại, nó có thể được đặt bên trong một lời gọi hàm hoặc chữ của mảng, v.v.

 let 

x

;

const

y

=

(

x

=

f

(

)

)

;

bảng điều khiển

.

nhật ký

(

y

)

;

bảng điều khiển

.

nhật ký

(

x

=

f

(

)

)

;

console

.

nhật ký

(

[

0

,

x

=

f

(

)

,

0

]

)

;

bảng điều khiển

.

nhật ký

(

f

(

0

,

x

=

f

(

)

,

0

)

)

;

Kết quả đánh giá khớp với biểu thức ở bên phải của dấu = trong
Cột “Ý nghĩa” của bảng trên. Điều đó có nghĩa là x = f () đánh giá thành
x + = f () đánh giá thành tổng kết quả x + f () ,
x ** = f () đánh giá thành sức mạnh kết quả x ** y , v.v.

Trong trường hợp gán logic, x & amp; & amp; = f () ,
x || = f () x ?? = f () , giá trị trả về là của
hoạt động logic mà không cần gán, vì vậy x & amp; & amp; f () ,
x || f () và x ?? f () , tương ứng.

Khi xâu chuỗi các biểu thức này mà không có dấu ngoặc đơn hoặc các toán tử nhóm khác
giống như các ký tự mảng, các biểu thức gán được nhóm từ phải sang trái
(chúng liên kết phải ), nhưng chúng được đánh giá từ trái sang phải.

Lưu ý rằng, đối với tất cả các toán tử gán khác với chính = ,
các giá trị kết quả luôn dựa trên các giá trị của toán hạng trước đó
hoạt động.

Ví dụ: giả sử rằng các hàm sau f g
và các biến x y đã được khai báo:

  

function

f

(

)

{

bảng điều khiển

.

nhật ký

(

'F!'

)

;

trả về

2

;

}

function

g

(

)

{

bảng điều khiển

.

nhật ký

(

'G!'

)

;

trả về

3

;

}

let

x

,

y

;

Hãy xem xét ba ví dụ sau:

  y 

=

x

=

f

(

)

y

=

[

f

(

)

,

x

=

g

(

)

]

x

[

f

(

)

]

=

g

< p class = "dấu chấm câu"> (

)

Ví dụ đánh giá 1

y = x = f () tương đương với y = (x = f ()) ,
bởi vì toán tử gán = phải-kết hợp .
Tuy nhiên, nó đánh giá từ trái sang phải:

  1. Biểu thức gán y = x = f () bắt đầu đánh giá.
    1. y ở phía bên trái của bài tập này đánh giá
      thành một tham chiếu đến biến có tên y .
    2. Biểu thức gán x = f () bắt đầu đánh giá.
      1. x ở phía bên trái của bài tập này đánh giá
        thành một tham chiếu đến biến có tên x .
      2. Lệnh gọi hàm f () in ra “F!” vào bảng điều khiển và
        sau đó đánh giá thành số 2 .
      3. Kết quả 2 đó từ f () được gán cho x .
    3. Biểu thức gán x = f () hiện đã kết thúc đánh giá;
      kết quả của nó là giá trị mới của x , là 2 .
    4. Đến lượt kết quả 2 đó cũng được gán cho y .
  2. Biểu thức gán y = x = f () hiện đã kết thúc đánh giá;
    kết quả của nó là giá trị mới của y – tương đương với 2 .
    x y được gán cho 2 ,
    và bảng điều khiển đã in “F!”.
Ví dụ đánh giá 2

y = [f (), x = g ()] cũng đánh giá từ trái sang phải:

  1. Biểu thức gán y = [f (), x = g ()] bắt đầu đánh giá.
    1. y ở bên trái của bài tập này đánh giá
      thành một tham chiếu đến biến có tên y .
    2. Mảng bên trong ký tự [f (), x = g ()] bắt đầu đánh giá.
      1. Lệnh gọi hàm f () in ra “F!” vào bảng điều khiển và
        sau đó đánh giá thành số 2 .
      2. Biểu thức gán x = g () bắt đầu đánh giá.
        1. x ở phía bên trái của bài tập này đánh giá
          thành một tham chiếu đến biến có tên x .
        2. Lệnh gọi hàm g () in ra “G!” vào bảng điều khiển và
          sau đó đánh giá thành số 3 .
        3. Kết quả 3 đó từ g () được gán cho x .
      3. Biểu thức gán x = g () hiện đã kết thúc đánh giá;
        kết quả của nó là giá trị mới của x , là 3 .
        Kết quả 3 đó trở thành phần tử tiếp theo
        trong ký tự mảng bên trong (sau 2 từ f () ).
    3. Mảng bên trong chữ [f (), x = g ()]
      hiện đã đánh giá xong;
      kết quả của nó là một mảng có hai giá trị: [2, 3] .
    4. Mảng [2, 3] đó hiện được gán cho y .
  2. Biểu thức gán y = [f (), x = g ()]
    bây giờ đã đánh giá xong;
    kết quả của nó là giá trị mới của y – có nghĩa là [2, 3] .
    x hiện được gán cho 3 ,
    y hiện được gán cho [2, 3] ,
    và bảng điều khiển đã in “F!” rồi “G!”.
Ví dụ đánh giá 3

x [f ()] = g () cũng đánh giá từ trái sang phải.
(Ví dụ này giả định rằng x đã được gán cho một số đối tượng.
Để biết thêm thông tin về các đối tượng, hãy đọc Làm việc với các đối tượng .)

  1. Biểu thức gán x [f ()] = g () bắt đầu đánh giá.
    1. Quyền truy cập thuộc tính x [f ()] ở bên trái của bài tập này
      bắt đầu đánh giá.

      1. x trong quyền truy cập thuộc tính này đánh giá
        thành một tham chiếu đến biến có tên x .
      2. Sau đó, lệnh gọi hàm f () in ra “F!” vào bảng điều khiển và
        sau đó đánh giá thành số 2 .
    2. Quyền truy cập thuộc tính x [f ()] vào bài tập này
      hiện đã đánh giá xong;
      kết quả của nó là một tham chiếu thuộc tính biến: x [2] .
    3. Sau đó, lệnh gọi hàm g () in ra “G!” vào bảng điều khiển và
      sau đó đánh giá thành số 3 .
    4. 3 đó hiện được gán cho x [2] .
      (Bước này sẽ chỉ thành công nếu x được gán cho một đối tượng .)
  2. Biểu thức gán x [f ()] = g () hiện đã kết thúc đánh giá;
    kết quả của nó là giá trị mới của x [2] – xảy ra là 3 .
    x [2] hiện được gán cho 3 ,
    và bảng điều khiển đã in “F!” rồi “G!”.

Tránh các chuỗi phân công

Chuỗi các phép gán hoặc lồng nhau các phép gán trong các biểu thức khác có thể
dẫn đến hành vi đáng ngạc nhiên. Vì lý do này,
không khuyến khích gán chuỗi trong cùng một câu lệnh ).

Cụ thể, đặt một chuỗi biến trong const , let hoặc var < / code> câu lệnh thường không hoạt động.
Chỉ biến ngoài cùng / ngoài cùng bên trái mới được khai báo;
bất kỳ biến nào khác trong chuỗi gán không được khai báo bởi câu lệnh const / let / var .
Ví dụ:

  

let

z

=

y

=

x

=

f

(

)

;

Câu lệnh này dường như khai báo các biến x , y z .
Tuy nhiên, nó chỉ thực sự khai báo biến z .
y x là các tham chiếu không hợp lệ đến các biến không tồn tại (ở chế độ nghiêm ngặt ) hoặc tệ hơn, sẽ ngầm tạo ra biến toàn cục cho x y chế độ cẩu thả .


Xem thêm những thông tin liên quan đến chủ đề cái gì ... trong js

ASYNC JavaScript trong 30 phút (CALLBACK, PROMISES, ASYNC AWAIT)

  • Tác giả: HoleTex
  • Ngày đăng: 2021-11-28
  • Đánh giá: 4 ⭐ ( 2556 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Học ASYNC JavaScript trong 30 phút (CALLBACK, PROMISES, ASYNC AWAIT)

    Xử lý bất đồng bộ trong JS là một công việc chúng ta sẽ phải đối mặt rất thường xuyên. Và hôm nay chúng ta sẽ cùng nhau tìm hiểu về các cách khác nhau để xử lý bất đồng bộ trong JS, cũng như là tìm hiểu về các vấn đề khi xử lý bất đồng bộ với Callback như là Callback Hell
    - Callback
    - Promises
    - Async/Await

    📢 Liên hệ với mình tại:
    Facebook: https://www.facebook.com/holetex/​
    Instagram: https://www.instagram.com/holetex/
    Github: https://github.com/holetexvn
    Facebook cá nhân: https://www.facebook.com/minhtung09/
    Email: holetex@outlook.com

    async js holetex callback asyncawait promises

Boolean trong JavaScript

  • Tác giả: freehost.page
  • Đánh giá: 3 ⭐ ( 2787 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

DOM Là Gì? Thao Tác Với DOM Bằng Javascript

  • Tác giả: codelearn.io
  • Đánh giá: 3 ⭐ ( 2530 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Để thao tác được với các thẻ HTML thì phải thông qua một cơ chế ta gọi là DOM. Vậy DOM là gì và cách thao tác với DOM bằng JavaScript nhé!

[Tự học Javascript] Lặp lại(Iterables) trong Javascript

  • Tác giả: cafedev.vn
  • Đánh giá: 5 ⭐ ( 3868 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Đối tượng lặp(Iterable) là một sự khái quát của mảng. Đó là một khái niệm cho phép chúng ta làm cho bất kỳ đối tượng nào có thể sử dụng được trong một vòng lặp for..of.

Tổng quan về Javascript - Những lý do nên học Javascript

  • Tác giả: suntech.edu.vn
  • Đánh giá: 4 ⭐ ( 1428 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

5 quy tắc binding trong JavaScript

  • Tác giả: topdev.vn
  • Đánh giá: 3 ⭐ ( 4293 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Khái niệm "this" trong JavaScript là một trong những cái khó hiểu nhất của ngôn ngữ này, Các trường hợp của this có thể chia thành 5 khía cạnh binding.

[JavaScript] Bài 1 - JavaScript Là Cái Gì?

  • Tác giả: viblo.asia
  • Đánh giá: 5 ⭐ ( 6281 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cùng với HTML và CSS, JavaScript là 1 trong số bộ 3 ngôn ngữ khởi đầu cho bất kỳ ai muốn học lập trình web. Nếu như HTML cho phép chúng ta cấu trúc nội dung của trang web, CSS cho phép chúng ta thiết...

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Các cách khác nhau để đọc tệp văn bản trong Java - java đọc từ một tệp

By ads_php