论坛首页 Web前端技术论坛

Javascript 中三元运算符的用法

浏览 19262 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-09-21  
一直来都对Javascript的三元运算符很迷惑,不知道究竟应该怎么用,大概是受了例如Java这样的语言的影响,总是觉得三元运算符的条件表达式必须返回Boolean类型。就是这个东西让我对Javascript的三元运算符迷惑了许久,今天终于忍受不下去了,于是自己写代码测试了一番,原来它是这样的。

三元预算表达式: Condition ? doSomething : doOtherThing ;

1. 同所有语言的三元运算一样,Javascript的三元运算同样支持Condition为Boolean类型的情况。当Condition为True的时候,执行doSomething,为False的时候执行doOtherThing。

2. 支持Condition为字符串。当Condition=“”的时候,等同于False,执行doOtherThing;当Condition!=“”的时候,等同于True,执行doSomething。

3. 支持Condition为对象。当Condition=undefined或者null的时候,等同于False,执行doOtherThing;当Condition!=undefined和null的时候,等同于True,执行doSomething。


目前我的总结就是发现了这3中使用方式,是否还有其他的使用方式还不知道。呵呵,不过就算是这样也让我减少了不少看Javascript代码时的疑惑!
   发表时间:2006-09-21  
tomkoo 写道
一直来都对Javascript的三元运算符很迷惑,不知道究竟应该怎么用,大概是受了例如Java这样的语言的影响,总是觉得三元运算符的条件表达式必须返回Boolean类型。就是这个东西让我对Javascript的三元运算符迷惑了许久,今天终于忍受不下去了,于是自己写代码测试了一番,原来它是这样的。

三元预算表达式: Condition ? doSomething : doOtherThing ;

1. 同所有语言的三元运算一样,Javascript的三元运算同样支持Condition为Boolean类型的情况。当Condition为True的时候,执行doSomething,为False的时候执行doOtherThing。

2. 支持Condition为字符串。当Condition=“”的时候,等同于False,执行doOtherThing;当Condition!=“”的时候,等同于True,执行doSomething。

3. 支持Condition为对象。当Condition=undefined或者null的时候,等同于False,执行doOtherThing;当Condition!=undefined和null的时候,等同于True,执行doSomething。


目前我的总结就是发现了这3中使用方式,是否还有其他的使用方式还不知道。呵呵,不过就算是这样也让我减少了不少看Javascript代码时的疑惑!



这样的理解是舍本求末,你应该去看看js中各个原始类型的包装类,他们各自的特点以及相互的关系,转化的默认规则。要不,碰到同一个知识点的下一个应用,你又需要做各种实验来验证自己的建立在经验之上的想法了。
0 请登录后投票
   发表时间:2006-09-21  
这些都是 javascript中的一些基础概念。本身javascript及时类型不严格的一中脚本语言 。在合适的地方,它会将自动进行类型转换 。

在三元表达式中,第一个表达式需要一个bool类型的表达式 。那么 在这里的类型都需要被转换成bool类型。undefined,null,0,""都会被转换成 false。

弄清楚了原理,理解起来就很容易了。
0 请登录后投票
   发表时间:2006-09-22  
谢谢楼上两位的提点,受益匪浅!
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics