我正在尝试学习 JavaScript。第一天!我想连接名字和姓氏。这是我到目前为止所拥有的。它工作正常,但如果我不输入其中一个字段,它只会显示为 null
。我该如何避免这种情况?我将把该子句放在以下代码的什么位置?提前感谢您的帮助!
function ShowFullName()
{
var varFirstName = Xrm.Page.getAttribute("lauren_firstname").getValue();
var varLastName = Xrm.Page.getAttribute("lauren_lastname").getValue();
Xrm.Page.getAttribute("lauren_name").setValue(varFirstName + " " + varLastName);
};
最佳答案
您可以利用 all variables are truthy or falsy在 JavaScript 中。换句话说,每个变量都可以强制(转换)为 true
或 false
。
null
是falsy,而带有内容的字符串是truthy。这意味着:
var a = null;
var b = 'hello';
if (a) {
// does not run
} else {
// runs
}
if (b) {
// runs
}
您也可以使用其他类型的表达式,例如 ternary expression或 logical OR operator :
alert(a ? 'yes' : 'no'); // => no
alert(b ? 'yes' : 'no'); // => yes
alert(a || b); // => hello
在这种情况下,逻辑或是我们最有趣的选择。当您使用运算符时,会发生以下情况:
- 如果左侧评估真实,则返回该值。
- 否则,返回右侧求值的值。
在上面的例子中,a
是null
,所以它是falsy。该表达式返回右侧,即 b
的值。所以我们可以通过编写 varFirstName || 来利用这种行为''
,它将返回名字(如果有),或者如果它为空,则右侧为我们提供一个空字符串。
function ShowFullName() {
var varFirstName = Xrm.Page.getAttribute("lauren_firstname").getValue();
var varLastName = Xrm.Page.getAttribute("lauren_lastname").getValue();
Xrm.Page.getAttribute("lauren_name").setValue(((varFirstName || '') + " " + (varLastName || '')).trim());
}
我添加了一个调用 trim
从结果中删除多余的空格。
关于javascript - JavaScript 新手,如何进行 null 检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13056520/