【发布时间】:2011-05-09 07:30:11
【问题描述】:
这行代码有什么作用?
len = ( s.length>t.length ) ? s.length : t.length
【问题讨论】:
-
这是一个内联条件。
<condition> ? <true value> : <false value>并支持多种语言。
标签: javascript
这行代码有什么作用?
len = ( s.length>t.length ) ? s.length : t.length
【问题讨论】:
<condition> ? <true value> : <false value> 并支持多种语言。
标签: javascript
它将变量len设置为字符串s的长度,或者字符串t的长度,取决于哪个更长。
【讨论】:
var len,那么它是本地的。
如果s.length 大于t.length 则设置len = s.length 否则set len = t.length
【讨论】:
那是使用条件运算符,它也被称为三元,因为它需要三个操作数。
您也可以在 PHP、C、C++ 和其他语言中找到具有相同语法的这种结构。
【讨论】:
相当于:
var len=0;
if(s.length>t.length)
len= s.length;
else
len=t.length;
所以这只是一个简短的方法来做 if else。
【讨论】:
var,所以这不等价——你声明的是一个局部变量,而原版可能一直在使用全局变量。
它正在这样做:
if (s.length > t.length) {
len = s.length;
} else {
len = t.length;
}
【讨论】:
var,所以这不等效——您声明的是一个局部变量,而原版可能使用的是全局变量。
这相当于使用ternary conditional operator 的len = Math.max( s.length, t.length );。
【讨论】:
?: 是三元运算符。它根据条件返回一个值。
x = (condition)?(if-true):(if-false)
所以如果条件为真,x 就是 if-true 部分的值,如果它为假,那么 x 就是 if-false 部分的值。
If 等价于 Corv1nus 之前所说的。
【讨论】:
len 将被分配 s 或 t 的长度,这取决于哪个具有更大的长度
【讨论】:
如果 s 的长度大于 t 的长度,则将“len”设为 s 的长度。 如果 s 的长度小于或等于 t 的长度,则将“len”设为 t 的长度。
【讨论】: