2017-02-17 22 views
-3

どちらのコードが高速ですか?または演算子対3項演算子


三項演算子

action = typeMap[type] ? typeMap[type] : typeMap['default']; 

Or演算子

action = typeMap[type] || typeMap['default'] 

ありがとうございます!

+3

[馬に乗って](https://ericlippert.com/2012/12/17/performance-rant/) – Sayse

+0

彼らは違いがあります。 – user7393973

+3

http://softwareengineering.stackexchange.com/questions/82593/javascript-ternary-operator-vs –

答えて

0

スピードはここでは問題ありませんが、速度は同等で、どれもコードフローのボトルネックになることはありません。彼らは条件を確認しながら、少し違った行動をします。

実際の質問はここにあります:これは誰か読みやすくなります?誰か(またはあなた自身)がこのコードを読んでいれば、どちらを理解できるでしょうか?

それはエレガントではないかもしれないとしても、おそらくいくつかの例では、次のようなソリューションは、このソリューションはまた、真実ことを考えると、あなたはcoditionのより正確な検査を行うことができます

var action = typeMap['default']; 
if (typeMap[type]) { 
    action = typeMap[type]; 
} 

より良いかもしれませんJavaScriptのテーブルが難しいかもしれません。

私はこのソリューションが優れていると言っているわけではありません。自分の状況によってどれが読みやすくなっているかを検討してください。

+0

あなたは正しいと思います。どうもありがとうございます。 – OBellon

+0

私は完全に間違っていました。異なる値でテストしましたが、結果は同じです。 – AymDev

+0

それを指摘していただきありがとうございます、私は実際にあなたの答えをテストしなかった。とにかく、分かち合ってくれてありがとう。 –