Javascript 如果参数为空,则不要附加到字符串
我想编写一个简单的javascript函数来附加到给定参数的值字符串中,但前提是这些参数具有值。以下是一个例子:Javascript 如果参数为空,则不要附加到字符串,javascript,Javascript,我想编写一个简单的javascript函数来附加到给定参数的值字符串中,但前提是这些参数具有值。以下是一个例子: 函数foo(bar){ 返回“hello”+条; }这个解决方案怎么样?它使用三元运算符(如果为else,则简写) 它将通过警报输出以下内容: 你好 然后 你好,脚本47 我使用trim来防止空白 您可以先检查参数是否存在 函数hello(条){ var p=document.getElementById(“foo”); 如果(巴){ p、 innerHTML=“hello”+条
函数foo(bar){
返回“hello”+条;
}
这个解决方案怎么样?它使用三元运算符(如果为else,则简写)
它将通过警报
输出以下内容:
你好
然后
你好,脚本47
我使用trim
来防止空白
您可以先检查
参数是否存在
函数hello(条){
var p=document.getElementById(“foo”);
如果(巴){
p、 innerHTML=“hello”+条;
}否则{
p、 innerHTML=“你好”;
}
}
你好(“世界”)代码>
一种很好的“干净”方法(不同语言的逻辑相同)是测试输入:
function foo(bar){
if (bar) {
return "hello" + bar;
}
return "hello";
}
然后你可以使用传统的三元运算符的表达式,它非常难看:
function foo(bar) {
return "hello" + (bar ? bar : '');
}
但是,通常、常见且广泛使用的javascript一行程序习惯用法可以做完全相同的事情:
function foo(bar) {
return "hello" + (bar || '');
}
因为它更简洁,所以被广泛使用。但对于代码的可读性/可访问性,我更喜欢选项1,即使它需要编写更多的字符(我们正在编写代码,而不是高尔夫,代码需要对其他人可读。有时“其他人”在六个月后就是你)
编辑:
为了完成我的回答,我将添加@oriol建议:
function foo(bar = ''){
return "hello" + bar;
}
它实际上是简洁而优雅的。可以在任何可以运行ES6的地方使用 在ECMAScript 6中,您可以使用:
函数foo(bar=''){
返回“hello”+条;
}
使用三元运算符:
function foo(bar){
return "hello" + (bar ? bar : '');
}
检查参数是否为null,然后执行任何操作
function foo(bar) {
if (!bar) {
alert("no bar defined");
}
else {
alert("hello" + bar);
}
}
返回'hello'+(条| |')代码>啊,我忘了放括号了!非常感谢。添加此作为答案,以便我可以接受。为了澄清,当参数未传递时,其值为未定义
,而不是空
。在这里它可以工作,因为使用了松散的==
,但它不能与==
一起工作。道格拉斯·克罗克福德会避开我。
function foo(bar) {
if (!bar) {
alert("no bar defined");
}
else {
alert("hello" + bar);
}
}