Biểu thức điều kiện trong Javascript

Bài viết Biểu thức điều kiện trong Javascript thuộc chủ đề về Thắc Mắt thời gian này đang được rất nhiều bạn quan tâm đúng không nào !! Hôm nay, Hãy cùng Buyer tìm hiểu Biểu thức điều kiện trong Javascript trong bài viết hôm nay nhé ! Các bạn đang xem nội dung về : “Biểu thức điều kiện trong Javascript”

Đánh giá về Biểu thức điều kiện trong Javascript


Xem nhanh
TÌM x ĐỂ BIỂU THỨC CHỨA CĂN CÓ NGHĨA – XÁC ĐỊNH – TỒN TẠI. TOÁN LỚP 9
#canbachai #rutgoncanthuc

Các em sang đăng kí kênh vlog mới của thầy nhé: https://www.youtube.com/thaycuongvlog

► ĐĂNG KÍ HỌC OFFLINE: THẦY CƯỜNG - 09.76.79.85.58 - HÙNG SƠN - ĐẠI TỪ - THÁI NGUYÊN

★ THEO DÕI THẦY TRÊN FACEBOOK: Facebook của thầy: https://facebook.com/thaycuong84
★ Fanpage: https://www.facebook.com/hoctoanthaycuong
★ ĐỪNG QUÊN LIKE SHARE VÀ SUBSCRIBE ĐỂ ỦNG HỘ THẦY! https://goo.gl/bRVa2w
★ XEM THÊM BÀI GIẢNG TRÊN BLOG: http://hoctoancap2.com
Fanpage:
► COMMENT ĐÓNG GÓP Ý KIẾN BÊN DƯỚI VIDEO, XIN CẢM ƠN !

(❤‿❤) KẾT NỐI

★ Facebook của thầy: https://facebook.com/thaycuong84
★ Youtube channel: https://goo.gl/zXAQXo
★ SUBSCRIBE: https://goo.gl/bRVa2w

=============================================

(❤‿❤) XEM THÊM CÁC CHUYÊN ĐỀ

★ ĐỀ THI TUYỂN SINH VÀO LỚP 10: https://www.youtube.com/playlist?list=PLPnkRD761zEi-4aiAcxyJOw87c6Nkx3X3
★ CHUYÊN ĐỀ ĐẠI SỐ 9: https://www.youtube.com/playlist?list=PLPnkRD761zEjWEhQGc2kMu-ea5OD2DB_0
★ CHUYÊN ĐỀ HÌNH HỌC 9: https://www.youtube.com/playlist?list=PLPnkRD761zEhewxnTmnN1ue9PnrBQMy4u
★ CHUYÊN ĐỀ ĐẠI SỐ 8: https://www.youtube.com/playlist?list=PLPnkRD761zEiv9s9me-QYAVdfeONCaFWn
★ CHUYÊN ĐỀ HÌNH HỌC 8: https://www.youtube.com/watch?v=jyDKExnrXvYu0026list=PLPnkRD761zEiZ0XG0kMCVI3f0DJiNIMu5
★ CHUYÊN ĐỀ ĐẠI SỐ 7: https://www.youtube.com/playlist?list=PLPnkRD761zEj813af2HLnoKKKdfI3Pp3S
★ CHUYÊN ĐỀ HÌNH HỌC 7: https://www.youtube.com/watch?v=7E6JBIBUKfku0026list=PLPnkRD761zEgUHgsPbxK2TBFpqJQE0Ooa
★ CHUYÊN ĐỀ SỐ HỌC 6: https://www.youtube.com/watch?v=KC-YjnRF1Dgu0026list=PLPnkRD761zEjG8kiZmEUluG3pFs6oa3et
★ CHUYÊN ĐỀ HÌNH HỌC 6: https://www.youtube.com/watch?v=6zjeFxEM6i4u0026list=PLPnkRD761zEhebv-8Hpt50mPo38pIAoOV

=======================================
► Donate:

VIETINBANK - 10800.5291.645 - CHỦ TK: CAO MẠNH CƯỜNG

#hoctoanthaycuong #luyenthivao10

Biểu thức khó khăn là một trong số những khía cạnh rất quan trong trong mọi ngôn ngữ lập trình. Chúng ta đã quen với các mệnh đề điều kiện như if..elif..else hay switch. Chúng là những cú pháp hữu dụng để tạo ra những quyết định trong lập trình.

Bài viết này sẽ tập trung vào các biểu thức điều kiện trong Javascript và cách sử dụng chúng một cách ngắn gọn so với các mệnh đề điều kiện.

Trước khi đi vào nội dung chính, chúng ta cần phân biệt giữa biểu thức và mệnh đề trong Javascript. Nếu coi Javascript là một ngôn ngữ có ngữ pháp thì biểu thức chính là cụm từ, trong khi đó mệnh đề là một câu hoàn chỉnh.

Biểu thức có khả năng là bất kỳ thể hiện nào mà Javascript engine có khả năng tính toán và trả về một giá trị. Chẳng hạn như: thể hiện của biến, phép gán, biểu thức hàm, phép logic, toán tử bitwise, phép truy cập thuộc tính của đối tượng, lời gọi hàm, eval, ….

Đoạn code dưới đây chỉ ra một vài biểu thức Javascript:

// number literal 0xFF // array literal [] // object literal // regexp literal /^d+$/ // logical AND operation (x && y) // bitwise XOR operation (x ^ y) // ternary operation (x ? y : z) // arithmetic operation (x + y) / z // assignment x = 'string' // function expression (function x(y) ) // function invocation x(100) // object property access obj.students[0].name 

Mệnh đề là bất kỳ thể hiện hay câu lệnh nào mà Javascript engine có khả năng thực thi để chạy chương trình hoặc gây ra những ảnh hưởng kèm theo khác. Ví dụ: mệnh đề khó khăn, khai báo biến hoặc hàm, vòng lặp, throw, return, try/catch/finally, …

một số biểu thức Javascript như phép gán và lời gọi hàm có khả năng gây ra những ảnh hưởng kèm theo. do đó, chúng lại được coi là một mệnh đề (mệnh đề biểu thức).

Trong Javascript, phép điều kiện có thể là bất kỳ biểu thức hợp lệ nào. Thông thường, biểu thức điều kiện sẽ được tính toán để trả về một trong hai giá trị kiểu booleans: true hoặc false

Việc hiểu đúng phương pháp mà Javascript engine chuyển đổi biểu thức khó khăn về tổng giá trị boolean là điều cần thiết để viết các phép logic khó khăn một cách chính xác và khả dự.

Mọi Người Xem :   Ngành nuôi trồng thủy sản là gì? Tổng hợp thông tin từ A - Z

Hai khái niệm cơ bản có khả năng hiểu về phép chuyển đổi này:

  • Xác định giá trị truthy and falsy
  • Hiểu về phép logic short-circuiting

Truthy vs Falsy

Mọi giá trị trong Javascript đều có khả năng phân loại thành truthy hay falsy. Những tổng giá trị sau được coi là falsy trong Javascript.

  • '' hoặc "" hoặc `` (chuỗi rỗng)
  • hoặc -0 (số )
  • null
  • undefined
  • NaN
  • false

Những tổng giá trị khác các tổng giá trị trên sẽ được coi là truthy. Các giá trị truthy sẽ được ép kiểu ngầm định thành tổng giá trị true. Trong khi giá trị falsy sẽ trả về tổng giá trị false.

tuy nhiên, việc chuyển đổi này có khả năng được khai báo tường minh nhờ hàm Boolean.

function toBoolean(value) return Boolean(value); 

ngoài ra, toán tử logic NOT (!) cũng chuyển đổi một tổng giá trị về kiểu boolean. Toán tử ! chuyển đổi toán hạng của nó thành tổng giá trị phủ định ở kiểu boolean. Vì vậy, tổng giá trị này luôn là tổng giá trị boolean.

sử dụng toán tử ! sẽ trả về false trên những tổng giá trị truthytrue trên những tổng giá trị falsy. Để chuyển về tổng giá trị boolean tương ứng, chúng ta cần sử dụng ! hai lần.

function toBoolean(value) return !!value; 

Short-Circuiting (Mạch chập)

Toán tử AND (&&) và OR (||) đều đặn yêu cầu hai toán hạng và được dùng để thực hiện phép toán Boolean trên những toán hạng này.

Cho hai toán hạng kiểu boolean (true hoặc false)

  • && chỉ trả về true nếu cả hai toán hạng có giá trị kiểu boolean là true, nếu không nó sẽ trả về fasle.
  • || chỉ trả về false nếu cả hai toán hạng có giá trị kiểu boolean là false, nếu không nó sẽ trả về true.

Chú ý rằng toán tử && có độ ưu tiên hơn ||. do đó, nó sẽ được tính toán trước. Khi sử dụng cả hai toán tử này trong cùng một biểu thức, có thể sử dụng dấu ngoặc () để nhóm các phép tính theo thứ tự ưu tiên.

false && true || true; // true false && (true || true); // false 

Khi dùng những toán tử này, toán hạng đầu tiên luôn được tính toán trước. tuy nhiên, toán hạng thứ hai có thể không bao giờ được dùng tùy theo kết quả tính toán của toán hạng đầu tiên. Điều này được gọi là short-circuiting (mạnh chập hay đoản mạch).

Toán tử &&|| không phải lúc nào cũng trả về giá trị kiểu boolean. Thông thường, chúng có khả năng trả về bất kỳ giá trị nào. Dưới đây là mô tả chính xác về tính đoản mạch của chúng:

  • Toán tử && sẽ kiểm tra toán hạng đầu tiên. Nếu kết quả là truthy thì toán hạng sẽ được tính toán và kết quả trả về là tổng giá trị của toán hạng thứ hai. mặc khác nếu giá trị của toán hạng đầu tiên là falsy thì toán hạng thứ hai không bao giờ được tính toán, kết quả trả về là tổng giá trị falsy của toán hạng đầu.
(a && b) === a; // `a` is falsy (a && b) === b; // `a` is truthy 
  • Toán tử || cũng sẽ kiểm tra toán hạng đầu tiên. Nếu kết quả là truthy thì toán hạng thứ hai sẽ không bao giờ được tính toán, kết quả trả về là giá trị truthy từ toán hạng đầu tiên. tuy nhiên, nếu giá trị của toán hạng đầu là falsy thì kết quả trả về là tổng giá trị của toán hạng thứ hai.
(a || b) === a; // `a` is truthy (a || b) === b; // `a` is falsy 

✅ Mọi người cũng xem : về nhà mới gọi là gì

1. Đơn giản hóa mệnh đề If

Rất nhiều câu điện kiện if có thể đơn giản được thay thế bởi biểu thức điều kiện bằng cách áp dụng khái niệm mạch chập. Xem xét ví dụ sau:

if (user && user.canDeletePost) deletePost(); 

Trong đoạn code này, mệnh đề if đảm bảo rằng hàm deletePost() chỉ được gọi khi phép điều kiện trả về true

Mệnh đề if trên có khả năng được thay thế bằng biểu thức điều kiện rất đơn giản như sau:

user && user.canDeletePost && deletePost(); 

Mặc dù biểu thức điều kiện này có cách thực thi giống với mệnh đề khó khăn trên, nhưng thực chất chúng khác nhau.

Mọi Người Xem :   Chất là gì lượng là gì? Ví dụ về lượng và chất trong cuộc sống

Mệnh đề khó khăn trả về một giá trị. do đó, nó có thể được gán cho một biến hoặc được dùng ở nơi khác mà bắt buộc một giá trị chi tiết.

Việc dùng biểu thức khó khăn như này đồng nghĩa với việc phải rất cận trọng về khái niệm mạch chập. Rất có khả năng toán hạng không được thực thi như đã đề cập ở mục trước của bài viết về mạch chập.

2. Mệnh đề If…Else

Xem xét ví dụ dễ dàng sau để xác định độ mạnh của mật khẩu:

let strength = null; if (password.length > 7) strength = 'Strong'; else strength = 'Weak'; 

Ý tưởng của đoạn code trên rất đơn giản: Kiểm tra nếu mật khẩu có độ dài lớn hơn 7 ký tự thì gán trị cho biến là "Strong" , ngược lại gán à "Weak"

Đoạn code trước có khả năng được rút gọn như sau:

const strength = (password.length > 7) && 'Strong' || 'Weak'; 

Đoạn code này thực hiện giống hệt như đoạn code lúc trước, tất cả chỉ trong một dòng. Điều này trông tạm ổn. Đoạn code dưới đây sẽ giải thích cơ chế tính toán của biểu thức điều kiện ở đoạn code trên.

let password = 'long_password'; console.log(password.length > 7); // true console.log(password.length > 7 && 'Strong'); // "Strong" console.log(password.length > 7 && 'Strong' || 'Weak'); // "Strong" password = 'short'; console.log(password.length > 7); // false console.log(password.length > 7 && 'Strong'); // false console.log(password.length > 7 && 'Strong' || 'Weak'); // "Weak" 

Có một cách khác để viết lại những biểu thức điện kiện if...else là dùng toán tử khó khăn, hay còn được gọi là toán tử ba ngôi (ternary operator). Cú pháp như sau:

// If condition is truthy, evaluate and return A, // otherwise evaluate and return B condition ? A : B 

Đoạn code kiểm tra mật khẩu lúc trước có thể được viết lại sử dụng toán tử ba ngôi như sau:

const strength = (password.length > 7) ? 'Strong' : 'Weak'; 

Mặc sử dụng trong ví dụ này, toán tử ba ngôi và toán tử logic vận hành giống nhéu nhưng cần nhớ rằng chúng không thể thay thế được cho nhéu.

Tốt hơn hết là nên sử dụng toán tử ba ngôi trong những trường hợp không biết rõ về toán hạng sẽ được thực hiện.

Xem xét đoạn code sau để hiểu về sự nguy hiểm của việc dùng toán tử logic cho những trường hợp như này:

// LOGICAL OPERATORS // If condition is truthy and A is truthy, return A, // otherwise evaluate and return B // Danger: A will never be returned if it is falsy condition && A || B // TERNARY OPERATOR // If condition is truthy, evaluate and return A, // otherwise evaluate and return B condition ? A : B 

Dưới đây là một mệnh đề rất quen thuộc thường được tìm thấy ở các thư viện AJAX đa nền tảng:

let xmLHttp = null; if (window.XMliên hệttpRequest) // Modern browsers xmliên lạcttp = new XMLHttpRequest(); else if (window.ActiveXObject) // Older versions of Internet Explorer (IE <= 6) xmLHttp = new ActiveXObject('Microsoft.XMLHTTP'); 

sử dụng toán tử logic:

const xmLHttp = window.XMliên hệttpRequest && new XMLHttpRequest() || window.ActiveXObject && new ActiveXObject('Microsoft.XMLHTTP') || null; 

sử dụng toán tử ba ngôi:

const xmLHttp = window.XMliên hệttpRequest ? new XMLHttpRequest() : window.ActiveXObject ? new ActiveXObject('Microsoft.XMliên hệTTP') : null; 

Dưới đây là một vài mẹo và cú pháp viết tắt hữu dụng khi sử dụng các toán tử logic và toán tử điều kiện:

Chuẩn hóa về kiểu Boolean

Cho tổng giá trị value cần chuẩn hóa để luôn trả về tổng giá trị kiểu boolean theo quy tắc sau:

  • Nếu value là giá trị boolean thì trả về giá trị value
  • Nếu value không phải giá trị boolean , giá trị boolean mặc định sẽ được trả về (true hoặc fasle)

Đoạn code dưới đây mô tả phép chuẩn hóa trên:

// boolOrFalse() // Return value if it is a boolean, // otherwise return false const boolOrFalse = value => return (typeof value === 'boolean') && value; console.log(boolOrFalse()); // false console.log(boolOrFalse(0)); // false console.log(boolOrFalse('')); // false console.log(boolOrFalse(false)); // false console.log(boolOrFalse(true)); // true // boolOrTrue() // Return value if it is a boolean, // otherwise return true const boolOrTrue = value => value; console.log(boolOrTrue()); // true console.log(boolOrTrue(0)); // true console.log(boolOrTrue('')); // true console.log(boolOrTrue(false)); // false console.log(boolOrTrue(true)); // true 

Định lý De Morgan

Định lý toán học quen thuộc này có khả năng được mô tả như sau:

// These two are equivalent !A && !B == !(A || B) // Also these two !A || !B == !(A && B) 

✅ Mọi người cũng xem : chất xơ là gì

Mọi Người Xem :   Chuyên viên tuyển dụng tiếng anh là gì

Sự đồng nhất của Boolean

Khi xử lý với tổng giá trị boolean, có một số phép đồng nhất luôn đúng. Cho A, BC là những tổng giá trị boolean, đoạn code sau sẽ chỉ ra sự đồng nhất này:

// NOT Conversion !!A == A !!B == B !!C == C // AND to OR Conversion A && B == !(!A || !B) // OR to AND Conversion A || B == !(!A && !B) // Removing nested AND A || (B && C) == A || B && C // Removing nested OR A && (B || C) == !(!A || !B && !C) 

Những toán tử ba ngôi phức hợp

Như đã đề cập ở các phần trước của bài viết, toán tử ba ngôi có khả năng được lồng với nhau để xử lý những đoạn logic liên quan đến mệnh đề if...else

mặc khác, để có thể sử dụng chúng hiệu quả trong những biểu thức phức hợp thì cần hiểu về độ ưu tiên và tính kết hợp của toán tử ba ngôi.

  • Toán tử ba ngôi có độ ưu tiên thấp nhất so với các toán tử khác. Vì vậy nó được tính toán cuối cùng khi được sử dụng chung với các toán tử khác có độ ưu tiên cao hơn.
/ this expression A ? B + C && D : E || F && G // will be evaluated as A ? ((B + C) && D) : (E || (F && G)) 
  • Toán tử ba ngôi có tính kết hợp từ phải qua trái. do đó, đối với các toán tử ba ngôi được sử dụng trong cùng một biểu thức, chúng được phân tích từ phải sang trái.
// this expression A ? B : C ? D : E ? F : G // will be evaluated as (A ? B : (C ? D : (E ? F : G))) 

Khi dùng nhiều toán tử ba ngôi trong cùng một biểu thức, dấu ngoặc () có thể cần được dùng để thay đổi thứ tự tính toán. Ví dụ:

// this expression A ? B : (C ? D : E) ? F : G // will be evaluated as (A ? B : ((C ? D : E) ? F : G)) 
  1. Cool JavaScript Shortcuts and Tips for Everyday Use
  2. Hacks for Creating JavaScript Arrays
  3. JavaScript ES6: 5 new abstractions to improve your code
  4. ES6 Destructuring: The Complete Guide
  5. JavaScript typeof

✅ Mọi người cũng xem : mua cơm dừa non ở đâu

** Lược dịch **

Glad Chinda, Conditional JavaScript for Experts, Medium



Các câu hỏi về biểu thức điều kiện là gì


Nếu có bắt kỳ câu hỏi thắc mắt nào vê biểu thức điều kiện là gì hãy cho chúng mình biết nhé, mõi thắt mắt hay góp ý của các bạn sẽ giúp mình cải thiện hơn trong các bài sau nhé <3 Bài viết biểu thức điều kiện là gì ! được mình và team xem xét cũng như tổng hợp từ nhiều nguồn. Nếu thấy bài viết biểu thức điều kiện là gì Cực hay ! Hay thì hãy ủng hộ team Like hoặc share. Nếu thấy bài viết biểu thức điều kiện là gì rât hay ! chưa hay, hoặc cần bổ sung. Bạn góp ý giúp mình nhé!!

Các Hình Ảnh Về biểu thức điều kiện là gì


Các hình ảnh về biểu thức điều kiện là gì đang được chúng mình Cập nhập. Nếu các bạn mong muốn đóng góp, Hãy gửi mail về hộp thư [email protected] Nếu có bất kỳ đóng góp hay liên hệ. Hãy Mail ngay cho tụi mình nhé

Tham khảo thêm tin tức về biểu thức điều kiện là gì tại WikiPedia

Bạn hãy xem thêm nội dung chi tiết về biểu thức điều kiện là gì từ web Wikipedia tiếng Việt.◄ Tham Gia Cộng Đồng Tại

???? Nguồn Tin tại: https://buyer.com.vn/

???? Xem Thêm Chủ Đề Liên Quan tại : https://buyer.com.vn/hoi-dap/

Related Posts

Tính chất hóa học của Bari (Ba) | Tính chất vật lí, nhận biết, điều chế, ứng dụng. 1

Tính chất hóa học của Bari (Ba) | Tính chất vật lí, nhận biết, điều chế, ứng dụng.

ContentsĐánh giá về Biểu thức điều kiện trong JavascriptTruthy vs FalsyShort-Circuiting (Mạch chập)1. Đơn giản hóa mệnh đề If2. Mệnh đề If…ElseChuẩn hóa về kiểu BooleanĐịnh lý…
Sorbitol là gì? Tác dụng của sorbitol C6H14O6 trong cuộc sống 2

Sorbitol là gì? Tác dụng của sorbitol C6H14O6 trong cuộc sống

ContentsĐánh giá về Biểu thức điều kiện trong JavascriptTruthy vs FalsyShort-Circuiting (Mạch chập)1. Đơn giản hóa mệnh đề If2. Mệnh đề If…ElseChuẩn hóa về kiểu BooleanĐịnh lý…
Bạc là gì? Những ứng dụng của bạc trong cuộc sống 3

Bạc là gì? Những ứng dụng của bạc trong cuộc sống

ContentsĐánh giá về Biểu thức điều kiện trong JavascriptTruthy vs FalsyShort-Circuiting (Mạch chập)1. Đơn giản hóa mệnh đề If2. Mệnh đề If…ElseChuẩn hóa về kiểu BooleanĐịnh lý…
CH3Cl - metyl clorua - Chất hoá học 4

CH3Cl – metyl clorua – Chất hoá học

ContentsĐánh giá về Biểu thức điều kiện trong JavascriptTruthy vs FalsyShort-Circuiting (Mạch chập)1. Đơn giản hóa mệnh đề If2. Mệnh đề If…ElseChuẩn hóa về kiểu BooleanĐịnh lý…
I2 - Iot - Chất hoá học 5

I2 – Iot – Chất hoá học

ContentsĐánh giá về Biểu thức điều kiện trong JavascriptTruthy vs FalsyShort-Circuiting (Mạch chập)1. Đơn giản hóa mệnh đề If2. Mệnh đề If…ElseChuẩn hóa về kiểu BooleanĐịnh lý…
7 lý do thú vị giải thích vì sao bạn thường xuyên bị muỗi đốt 6

7 lý do thú vị giải thích vì sao bạn thường xuyên bị muỗi đốt

ContentsĐánh giá về Biểu thức điều kiện trong JavascriptTruthy vs FalsyShort-Circuiting (Mạch chập)1. Đơn giản hóa mệnh đề If2. Mệnh đề If…ElseChuẩn hóa về kiểu BooleanĐịnh lý…