Hướng dẫn what is expression and statement in javascript? - biểu thức và câu lệnh trong javascript là gì?

Giới thiệu

Vì vậy, một vài năm trước, tôi đã dạy phát triển web tại một bootcamp mã hóa địa phương và một sinh viên đã hỏi tôi câu hỏi này:

Sự khác biệt giữa một câu lệnh của người Viking và một biểu thức của người Viking trong JavaScript là gì?

Tôi cảm thấy như tôi biết câu trả lời cho câu hỏi này, nhưng khi tôi cố gắng giải thích nó, tôi không thể nói nó thành lời. Tôi đã có một cảm giác về nó, nhưng kiến ​​thức thực sự của tôi thật mơ hồ.

Không có gì khiêm tốn hơn việc dạy 😅. Học sinh có một sở trường để xác định "điểm mờ" trong sự hiểu biết của chúng tôi.

Tôi đã nhận ra rằng câu hỏi này là cực kỳ quan trọng. Đó là một trụ cột bê tông chịu tải sẽ giúp hỗ trợ một tấn kiến ​​thức JavaScript.

Điều này đặc biệt đúng cho các nhà phát triển React. Hầu hết các quy tắc JSX mà bạn phải ghi nhớ và luôn quên tuân theo, là kết quả của tính toán tuyên bố/biểu thức này.

Trong bài đăng trên blog này, tôi sẽ chia sẻ một số biểu mô mà tôi đã có về sự khác biệt này và cách chúng tôi có thể sử dụng thông tin này trong công việc hàng ngày của chúng tôi.

Tại cốt lõi của nó, một biểu thức là một chút mã JavaScript tạo ra một giá trị.

Ví dụ, đây là tất cả các biểu thức:

  • 4 → sản xuất 
    4

  • 6 → sản xuất 
    6

  • 8 → Sản xuất 
    9

  • 0 → sản xuất 
    1 hoặc 
    2

  • 3 → sản xuất biểu tượng cảm xúc

  • 4 → Sản xuất số 
    5

Biểu thức có thể chứa các biểu thức. Ví dụ: bạn đếm bao nhiêu biểu thức trong đoạn mã JS này? Đoán đoán, và sau đó kéo thanh trượt để xem từng điểm được tô sáng:

Một chương trình JavaScript là một chuỗi các câu lệnh. Mỗi câu lệnh là một hướng dẫn cho máy tính làm một cái gì đó.

Dưới đây là một số ví dụ về các tuyên bố trong JavaScript:

Đây là cách tôi muốn nghĩ về điều này: các câu nói là cấu trúc cứng nhắc giữ chương trình của chúng tôi với nhau, trong khi các biểu thức điền vào các chi tiết.

Các câu lệnh thường có "khe" cho các biểu thức. Chúng ta có thể đặt bất kỳ biểu thức nào chúng ta thích vào các khe đó.

Ví dụ: khai báo một biến có một khe biểu thức:

Chúng ta có thể sử dụng bất kỳ biểu thức nào chúng ta đã thấy trước đó trong vị trí đó:

Về mặt cú pháp hợp lệ, các biểu thức có thể hoán đổi cho nhau. Nếu một câu lệnh có một khe biểu thức, chúng ta có thể đặt bất kỳ biểu thức nào ở đó và mã sẽ chạy. Chúng tôi sẽ không gặp lỗi cú pháp.any expression there, and the code will run. We won't get a syntax error.

Điều đó nói rằng, chúng ta vẫn có thể gặp phải các vấn đề khác. Ví dụ: mã sau có hiệu lực về mặt cú pháp, nhưng chúng tôi sẽ gặp sự cố trên tab Trình duyệt nếu chúng tôi cố gắng chạy nó, vì nó gây ra một vòng lặp vô hạn:

Bạn muốn biết liệu một phần của JS là một biểu thức hay một tuyên bố? Cố gắng đăng nhập nó!

Nếu nó chạy, mã là một biểu thức. Nếu bạn gặp lỗi, đó là một tuyên bố (hoặc, có thể, JS không hợp lệ).

Như một phần thưởng, chúng ta thậm chí có thể thấy những gì biểu thức giải quyết được, vì nó sẽ được in trong bảng điều khiển trình duyệt!

Điều này hoạt động bởi vì tất cả các đối số chức năng phải là biểu thức. Biểu thức tạo ra một giá trị, và giá trị đó sẽ được chuyển vào hàm. Các câu lệnh không tạo ra một giá trị và vì vậy chúng không thể được sử dụng làm đối số chức năng.all function arguments must be expressions. Expressions produce a value, and that value will be passed into the function. Statements don't produce a value, and so they can't be used as function arguments.

Ngay cả khi là một nhà phát triển có kinh nghiệm, tôi đã phụ thuộc một tấn vào

6. Đó là một công cụ đa năng tuyệt vời!

Liên kết đến tiêu đề nàyBiểu thức như câu lệnh

Đây là một biểu thức:

7.

Điều gì xảy ra nếu chúng ta tạo một tệp JS chỉ bao gồm biểu thức này? Hãy tưởng tượng chúng ta lưu nội dung sau đây là

8:

Tệp này có bao nhiêu câu? Zero hay một?

Đây là thỏa thuận: Biểu thức không thể tự mình tồn tại. Chúng luôn là một phần của một tuyên bố. Và trong trường hợp này, chúng tôi có một tuyên bố trông như thế này:

Tuyên bố về cơ bản là trống ngoài khe biểu thức của nó. Biểu thức của chúng tôi

7 điền vào khe này và tuyên bố của chúng tôi đã hoàn tất.

Nói cách khác, tất cả các dòng sau đây là các câu lệnh hợp lệ:

Thông thường, các hướng dẫn sẽ nói sai rằng các biểu thức là các câu nói, nhưng điều này không hoàn toàn đúng. Biểu thức và tuyên bố là những điều riêng biệt. Nhưng một tuyên bố có thể bao quanh một biểu thức mà không cung cấp bất kỳ ký tự bổ sung nào. Hãy nghĩ về nó giống như bọc một chiếc bánh sandwich trong bọc co lại rõ ràng.Think of it like wrapping a sandwich in clear shrink wrap.

Các tuyên bố thường kết thúc trong một đại hội, đánh dấu sự kết thúc của tuyên bố. Bán đại hội không cần thiết cho các câu lệnh nhất định, như các câu lệnh

0, vòng lặp 
1 và khai báo chức năng.

Liên kết đến tiêu đề nàyBiểu thức như câu lệnh

Đây là một biểu thức:

7.

Điều gì xảy ra nếu chúng ta tạo một tệp JS chỉ bao gồm biểu thức này? Hãy tưởng tượng chúng ta lưu nội dung sau đây là

8:

Nhưng có một điều bắt được - chúng ta không thể đặt bất kỳ JavaScript nào vào trong các dấu ngoặc xoăn. Cụ thể, chúng ta chỉ có thể bao gồm các biểu thức, không phải câu lệnh. Các dấu ngoặc đơn về cơ bản tạo ra một khe biểu thức trong JSX của chúng tôi.create an expression slot within our JSX.

Nếu chúng ta cố gắng nhúng một câu lệnh ở đây, như câu lệnh IF/ELSE, chúng ta sẽ gặp lỗi:

Điều này nổ tung vì các câu lệnh không tạo ra một giá trị, chỉ các biểu thức tạo ra một giá trị. Nếu chúng ta muốn nhúng nếu/khác logic trong JSX của mình, chúng ta cần sử dụng biểu thức toán tử ternary:

Điều này có vẻ như là một giới hạn JSX/React kỳ lạ, nhưng nó thực sự là một giới hạn của JavaScript.it's actually a JavaScript limitation.

Tôi nghĩ rằng chúng ta thường đổ lỗi phản ứng cho các quy tắc dường như tùy ý, như cách các thành phần phải trả về một yếu tố cấp cao nhất. Nhưng thường xuyên hơn không, React chỉ cảnh báo chúng tôi về giới hạn JavaScript.

Hiểu được sự khác biệt giữa các tuyên bố và biểu thức là bước đầu tiên quan trọng để làm sáng tỏ toàn bộ phạm trù cảnh báo và lỗi phản ứng. Chúng ta cũng cần tìm hiểu về cách JSX biên dịch thành JavaScript và cách phản ứng của chu kỳ và chu kỳ kết xuất hoạt động, nhưng, than ôi, những chủ đề đó nằm ngoài phạm vi của bài đăng trên blog này!

Ngẫu nhiên, tôi đang trong quá trình tạo ra một khóa học phản ứng toàn diện, tài nguyên tôi muốn tồn tại khi tôi đang học phản ứng. Nó được gọi là niềm vui của React, và bạn có thể đăng ký cập nhật ngay hôm nay!

Một chương trình JavaScript bao gồm một chuỗi các câu lệnh. Mỗi câu lệnh là một hướng dẫn để làm một cái gì đó, như tạo một biến, chạy một điều kiện if/other hoặc bắt đầu một vòng lặp.

Các biểu thức tạo ra một giá trị và các giá trị này được đặt vào các câu lệnh, giống như một hộp mực siêu Nintendo thay đổi những gì Super Nintendo làm.

Biểu thức luôn là một phần của một tuyên bố, ngay cả khi tuyên bố đó trống rỗng. Ví dụ: mã bên dưới chạy một vòng lặp mà không cần sử dụng câu lệnh

4, nhưng nó vẫn bao gồm một câu lệnh Wraph Blapper Wrapper.

Có thể mất một thời gian để sự khác biệt này trở nên trực quan, nhưng hy vọng bài đăng trên blog này đã làm rõ một vài điều!

Cập nhật mới nhất

Ngày 11 tháng 7 năm 2022

Lượt truy cập

Biểu hiện và tuyên bố là gì?

Trong thuật ngữ ngôn ngữ lập trình, một biểu thức trên mạng là sự kết hợp giữa các giá trị và hàm được trình biên dịch kết hợp và giải thích để tạo ra một giá trị mới, trái ngược với một câu lệnh bất cứ điều gì.

Chức năng là một biểu thức hoặc câu lệnh trong JavaScript?

JavaScript có một câu lệnh hàm cũng như biểu thức chức năng.Điều này thật khó hiểu vì chúng có thể trông giống hệt nhau.Một câu lệnh hàm là tốc ký cho một câu lệnh VAR có giá trị hàm.. This is confusing because they can look exactly the same. A function statement is shorthand for a var statement with a function value.

Sự khác biệt giữa biểu thức và tuyên bố Java là gì?

Các khai báo và bài tập biến, chẳng hạn như các bản trong phần trước, là các câu lệnh, cũng như các cấu trúc ngôn ngữ cơ bản như điều kiện và vòng lặp.Biểu thức mô tả các giá trị;Một biểu thức được đánh giá để tạo ra một kết quả, được sử dụng như một phần của một biểu thức khác hoặc trong một tuyên bố.Expressions describe values; an expression is evaluated to produce a result, to be used as part of another expression or in a statement.

Sự khác biệt giữa biểu thức chức năng và câu lệnh chức năng là gì?

Biểu thức chức năng hoạt động giống như khai báo hàm hoặc câu lệnh hàm, sự khác biệt duy nhất là tên hàm không được bắt đầu trong một biểu thức hàm, nghĩa là các hàm ẩn danh được tạo trong các biểu thức chức năng.Các biểu thức chức năng chạy ngay khi chúng được xác định.a function name is NOT started in a function expression, that is, anonymous functions are created in function expressions. The function expressions run as soon as they are defined.