新手求问?:与 || 的区别

在函数返回值或者赋值的时候经常看到用 ? :|| 这两种方式,比如:

return event ? event : window.event;

以及

return event.target || event.srcElement;

在我简单理解都是前者有值的话就取前者,想请问一下这两种方式有区别吗?

阅读 4.3k
6 个回答

就你这个例子来说,没区别。看个人习惯,我习惯第2种少写些代码。

第1种用在根据条件取不同的值的时候比较多,比如

return isDog ? "汪汪" : "喵喵";

我觉着没什么区别,只是写法不一样。
?: 如果event为就直接取?后的值
|| 会先判断左边的是不是真,如果是真就不会在继续判断后面的,直接返回

所以如果有区别的话,?:的效率会高||一丢丢(在第一个表达式不是true的情况下)

结果上没区别

写法不一样而已,完全就是个人喜好

确实没有区别,哪个比较的爽,用哪一个

这俩例子上看没有区别;
根据条件取不同的值的时候就需要第一种了:

//  Math.max(a,b)
    a > b ?  a : b ;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题