Hướng dẫn if one line javascript - nếu một dòng javascript

295

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Nó đã được đặt rõ ràng, mặc dù ý kiến ​​không kém, điều đó đã đưa ra các dấu ngoặc xoăn trên một câu lệnh

lemons && document.write("foo gave me a bar");  
4 không lý tưởng cho khả năng duy trì và khả năng đọc.

Nhưng những gì về điều này?

if (lemons) { document.write("foo gave me a bar"); }

Nó thậm chí còn bị nén nhiều hơn và nếu được mở rộng, các dấu ngoặc xoăn sẽ không bị lãng quên. Có bất kỳ vấn đề trắng trợn, và nếu không, những cân nhắc là gì? Tôi cảm thấy như nó vẫn rất dễ đọc, ít nhất là nhiều như một nhà điều hành ternary. Đối với tôi, dường như các nhà khai thác ternary không được đề xuất nhiều do khả năng đọc, mặc dù tôi cảm thấy rằng kết luận đó không hoàn toàn nhất trí.

Người sinh đôi độc ác trong tôi muốn đề xuất điều này, mặc dù cú pháp rõ ràng không có ý nghĩa với nó, và có lẽ chỉ là một ý tưởng tồi.

(syntax) ? document.write("My evil twin emerges"): "";

Hướng dẫn if one line javascript - nếu một dòng javascript

Bobrodes

5,8502 Huy hiệu vàng23 Huy hiệu bạc26 Huy hiệu Đồng2 gold badges23 silver badges26 bronze badges

hỏi ngày 14 tháng 1 năm 2012 lúc 6:43Jan 14, 2012 at 6:43

2

Tôi đã thấy hành vi ngắn mạch của nhà điều hành

lemons && document.write("foo gave me a bar");  
5 đã sử dụng để đạt được điều này, mặc dù những người không quen với điều này có thể thấy khó đọc hoặc thậm chí gọi nó là một người chống lại:

lemons && document.write("foo gave me a bar");  

Cá nhân, tôi sẽ thường sử dụng một dòng

lemons && document.write("foo gave me a bar");  
4 mà không có dấu ngoặc, như thế này:

if (lemons) document.write("foo gave me a bar");

Nếu tôi cần thêm nhiều câu lệnh, tôi sẽ đặt các câu lệnh vào dòng tiếp theo và thêm dấu ngoặc. Vì IDE của tôi không tự động thụt vào, sự phản đối khả năng duy trì đối với thực tiễn này là tranh luận.

Hướng dẫn if one line javascript - nếu một dòng javascript

tiết lộ

2.1101 Huy hiệu vàng22 Huy hiệu bạc36 Huy hiệu đồng1 gold badge22 silver badges36 bronze badges

Đã trả lời ngày 14 tháng 1 năm 2012 lúc 6:49Jan 14, 2012 at 6:49

Peter Olsonpeter OlsonPeter Olson

Huy hiệu vàng 134K4949 gold badges199 silver badges240 bronze badges

10

Tôi sử dụng nó như thế này:

(lemons) ? alert("please give me a lemonade") : alert("then give me a beer");

Hướng dẫn if one line javascript - nếu một dòng javascript

Whirish

4504 Huy hiệu bạc18 Huy hiệu Đồng4 silver badges18 bronze badges

Đã trả lời ngày 27 tháng 1 năm 2015 lúc 6:53Jan 27, 2015 at 6:53

asael2asael2asael2

2.0671 Huy hiệu vàng12 Huy hiệu bạc11 Huy hiệu đồng1 gold badge12 silver badges11 bronze badges

1

Bạn có thể sử dụng định dạng này, thường được sử dụng trong PHP:

(lemon) ? document.write("foo gave me a bar") : document.write("if condition is FALSE");

Hướng dẫn if one line javascript - nếu một dòng javascript

Đã trả lời ngày 17 tháng 6 năm 2014 lúc 11:12Jun 17, 2014 at 11:12

MacromacroMacro

5294 Huy hiệu bạc2 Huy hiệu Đồng4 silver badges2 bronze badges

4

Như đã được nêu, bạn có thể sử dụng:

&& Phong cách

lemons && document.write("foo gave me a bar");  

hoặc

Phong cách không có khung

if (lemons) document.write("foo gave me a bar");

trở lại ngắn mạch

Tuy nhiên, nếu bạn muốn sử dụng câu lệnh One Line ____24 để ngắn mạch một hàm, bạn cần phải đi với phiên bản không có giá đỡ như vậy:

if (lemons) return "foo gave me a bar";

như

lemons && return "foo gave me a bar"; // does not work!

sẽ cung cấp cho bạn một

lemons && document.write("foo gave me a bar");  
8

Đã trả lời ngày 26 tháng 10 năm 2018 lúc 18:41Oct 26, 2018 at 18:41

MarcmarcMarc

4.0841 Huy hiệu vàng33 Huy hiệu bạc33 Huy hiệu đồng1 gold badge33 silver badges33 bronze badges

4

có thể sử dụng cái này,

(syntax) ? document.write("My evil twin emerges"): "";
0

Giải thích: Nếu

lemons && document.write("foo gave me a bar");  
9 là đúng thì
if (lemons) document.write("foo gave me a bar");
0, nếu không,
if (lemons) document.write("foo gave me a bar");
1

Đã trả lời ngày 22 tháng 6 năm 2017 lúc 8:27Jun 22, 2017 at 8:27

2

Một dòng này sạch hơn nhiều.

(syntax) ? document.write("My evil twin emerges"): "";
1

Tôi thích điều này. Hy vọng nó sẽ giúp ai đó

Đã trả lời ngày 23 tháng 9 năm 2016 lúc 13:56Sep 23, 2016 at 13:56

Hướng dẫn if one line javascript - nếu một dòng javascript

shakee93shakee93shakee93

4.5862 Huy hiệu vàng26 Huy hiệu bạc31 Huy hiệu đồng2 gold badges26 silver badges31 bronze badges

Như nhiều người đã nói, nếu bạn đang tìm kiếm một dòng 1 thực tế nếu sau đó:

(syntax) ? document.write("My evil twin emerges"): "";
2

được ưa thích. Tuy nhiên, nếu bạn đang tìm cách làm nếu/khác thì Ternary là bạn của bạn (và cũng siêu tuyệt vời):

(syntax) ? document.write("My evil twin emerges"): "";
3

ALSO:

(syntax) ? document.write("My evil twin emerges"): "";
4

Tuy nhiên, tôi đã thấy một ví dụ rất thú vị. Hét lên @Peter-Oslson cho &&

(syntax) ? document.write("My evil twin emerges"): "";
5

Cuối cùng, nó không phải là một câu lệnh IF mà thực hiện mọi thứ trong một vòng lặp với bản đồ/giảm hoặc hứa hẹn.resolve () cũng rất thú vị. Hét lên @brunettdan

Đã trả lời ngày 13 tháng 3 năm 2018 lúc 1:16Mar 13, 2018 at 1:16

KemacalkemacalKemacal

3813 Huy hiệu bạc5 Huy hiệu Đồng3 silver badges5 bronze badges

// Một ví dụ đơn giản khác

(syntax) ? document.write("My evil twin emerges"): "";
6

Đã trả lời ngày 27 tháng 7 năm 2015 lúc 7:14Jul 27, 2015 at 7:14

user3413838user3413838user3413838

2704 Huy hiệu bạc14 Huy hiệu Đồng4 silver badges14 bronze badges

4

Tôi đã thấy nhiều câu trả lời với nhiều phiếu bầu ủng hộ bằng cách sử dụng nhà điều hành ternary. Ternary là tuyệt vời nếu a) bạn có một tùy chọn thay thế và b) bạn đang trả lại một giá trị khá đơn giản từ một điều kiện đơn giản. Nhưng mà...

Câu hỏi ban đầu không có một giải pháp thay thế và toán tử ternary chỉ có một nhánh (thực) duy nhất buộc bạn phải trả lời một câu trả lời được giải thích.

if (lemons) document.write("foo gave me a bar");
2

Tôi nghĩ rằng biến thể phổ biến nhất là

if (lemons) document.write("foo gave me a bar");
3, và, như bạn sẽ biết từ việc đọc vô số bài báo cho bất kỳ ngôn ngữ nào về đúng, sai, sự thật Nhập một bãi mìn (mặc dù là một mỏ khai thác được ghi chép tốt.)

Ngay khi bất kỳ phần nào của ternary trở nên phức tạp, bạn sẽ tốt hơn với một hình thức có điều kiện rõ ràng hơn.

Một chặng đường dài để nói rằng tôi đang bỏ phiếu cho

if (lemons) document.write("foo gave me a bar");
4.

Đã trả lời ngày 10 tháng 7 năm 2019 lúc 3:52Jul 10, 2019 at 3:52

Anita Grahamanita GrahamAnita Graham

4371 Huy hiệu vàng5 Huy hiệu bạc12 Huy hiệu đồng1 gold badge5 silver badges12 bronze badges

(syntax) ? document.write("My evil twin emerges"): "";
7

Đã trả lời ngày 19 tháng 7 năm 2020 lúc 5:10Jul 19, 2020 at 5:10

Hướng dẫn if one line javascript - nếu một dòng javascript

AbdulmajeedabdulmajeedAbdulmajeed

4517 Huy hiệu bạc7 Huy hiệu đồng7 silver badges7 bronze badges

0

Nó cũng có thể được thực hiện bằng cách sử dụng một dòng khi sử dụng các khối

lemons && document.write("foo gave me a bar");  
4 như sau:

(syntax) ? document.write("My evil twin emerges"): "";
8

Nó cũng hoạt động với các vòng

if (lemons) document.write("foo gave me a bar");
6.

Sergiol

3.9344 Huy hiệu vàng43 Huy hiệu bạc78 Huy hiệu đồng4 gold badges43 silver badges78 bronze badges

Đã trả lời ngày 5 tháng 2 năm 2014 lúc 12:00Feb 5, 2014 at 12:00

NoitidartnoitidartNoitidart

33.6K32 Huy hiệu vàng131 Huy hiệu bạc297 Huy hiệu Đồng32 gold badges131 silver badges297 bronze badges

2

Ví dụ trong các hàm mũi tên:

(syntax) ? document.write("My evil twin emerges"): "";
9

Trong lời hứa:

lemons && document.write("foo gave me a bar");  
0

Otherwise:

lemons && document.write("foo gave me a bar");  
1

Nếu đó chỉ là một điều kiện đơn giản, tôi thích sử dụng nếu (giá trị) bất cứ khi nào có thể bởi vì từ này nếu khi bắt đầu tuyên bố nói nhiều hơn về những gì đang xảy ra hơn là paranthesis và câu hỏi.if(value) whenever possible because the word if in the beginning of the statement says more about what's happening than paranthesis and questionmarks.

Đã trả lời ngày 1 tháng 2 năm 2017 lúc 10:09Feb 1, 2017 at 10:09

Brunettdanbrunettdanbrunettdan

9879 Huy hiệu bạc7 Huy hiệu Đồng9 silver badges7 bronze badges

lemons && document.write("foo gave me a bar");  
2

Ngay cả việc chỉ định hoạt động, chúng tôi cũng có thể làm với dấu ngoặc tròn

lemons && document.write("foo gave me a bar");  
3

Đã trả lời ngày 18 tháng 7 năm 2018 lúc 10:25Jul 18, 2018 at 10:25

Hướng dẫn if one line javascript - nếu một dòng javascript

1