检查javascript变量是否为字符串并对其进行修剪的最简洁的方法是什么?

检查javascript变量是否为字符串并对其进行修剪的最简洁的方法是什么?,javascript,ecmascript-6,Javascript,Ecmascript 6,我可以做到: let value = array[index]; if (typeof value === 'string') { value = value.trim(); } let value = array[index] value = typeof value === 'string' && value.trim() || value 只是好奇,是否有一个更紧凑的方法来做到这一点 您不应该需要|。您只需执行typeof value===“string”;这

我可以做到:

let value = array[index];
if (typeof value === 'string') {
    value = value.trim();
}
let value = array[index]

value = typeof value === 'string' && value.trim() || value

只是好奇,是否有一个更紧凑的方法来做到这一点

您不应该需要
|
。您只需执行
typeof value===“string”
;这就足够了

如果您想以更难阅读但更简洁的方式进行操作,您可以:

let value = array[index];
if (typeof value === 'string') {
    value = value.trim();
}
let value = array[index]

value = typeof value === 'string' && value.trim() || value
或三元:

let value = array[index]

value = typeof value === 'string' ? value.trim() : value
不过,你的方式可能还不错。一个好的经验法则是更喜欢可读性更强但更冗长的代码(而不是可读性更低但更紧凑的代码)

@NNNN指出了一种更简洁的方式:


typeof value=='string'&&(value=value.trim())

您不应该需要
|
。您只需执行
typeof value===“string”
;这就足够了

如果您想以更难阅读但更简洁的方式进行操作,您可以:

let value = array[index];
if (typeof value === 'string') {
    value = value.trim();
}
let value = array[index]

value = typeof value === 'string' && value.trim() || value
或三元:

let value = array[index]

value = typeof value === 'string' ? value.trim() : value
不过,你的方式可能还不错。一个好的经验法则是更喜欢可读性更强但更冗长的代码(而不是可读性更低但更紧凑的代码)

@NNNN指出了一种更简洁的方式:


typeof value=='string'&&(value=value.trim())

那么您不能省略
实例的检查吗?您是否也打算更新原始数组元素?是否遇到性能问题?如果没有,我就不会担心了。
typeof value.trim==“function”和&value.trim()…?如果它像鸭子一样嘎嘎叫……
typeof
就足够了,不需要
instanceof
为什么你有一个不知道其类型的值?那么你不能省略
instanceof
检查吗?您是否也打算更新原始数组元素?是否遇到性能问题?如果没有,我就不会担心了。
typeof value.trim==“function”和&value.trim()…?如果它像鸭子一样嘎嘎叫……
typeof
就足够了,不需要
instanceof
为什么你有一个你不知道类型的值?
If(typeof value=='string')value=value.trim()
比你显示的任何一个选项都要紧凑。@nnnnnn是的,你可以这样做。我不喜欢删除大括号
{}
虽然一般来说对于
if
语句来说(如果你使用的是丑陋的工具,因为它可能会错误地解释代码的话,我想这只是前端的一个问题)
if(typeof value=='string'){value=value.trim()}
更紧凑…
typeof value=='string'&(value=value.trim())
相当紧凑,但与没有
{}
if
相同(没有将
==
更改为
==
并删除空格等)。@JoshBeam在什么情况下,丑陋的人会因为缺少花括号而感到困惑?
if(type of value=='string')value=value.trim()
比您显示的任何一个选项都更简洁。@nnnnnn是的,您可以这样做。我不喜欢删除大括号
{}
,但一般来说,对于
if
语句(我想这只是前端的一个问题,如果您使用丑陋的工具,因为它可能会错误地解释代码)
if(typeof value==“string”){value=value.trim()}
更加紧凑…
typeof value=='string'&&(value=value.trim())
相当紧凑,但与没有
{}
相同(无需将
==
更改为
=
并删除空格等).@JoshBeam在什么情况下,一个丑陋的人会因为缺少花括号而感到困惑?