JavaScript新手,如何进行空检查?
我正在努力学习JavaScript。第一天!我想把名字和姓氏连在一起。这就是我目前所拥有的。它工作正常,但如果我不输入其中一个字段,它只会显示为JavaScript新手,如何进行空检查?,javascript,null,Javascript,Null,我正在努力学习JavaScript。第一天!我想把名字和姓氏连在一起。这就是我目前所拥有的。它工作正常,但如果我不输入其中一个字段,它只会显示为null。我如何避免这种情况?在下面的代码中,我将把该条款放在哪里?提前谢谢你的帮助 function ShowFullName() { var varFirstName = Xrm.Page.getAttribute("lauren_firstname").getValue(); var varLastName = Xrm.Page.g
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);
};
您可以检查某些内容是否为null,如:
if (obj == null) {
// do this
}
大概是
if (varFirstName == null) { varFirstname = "";}
这会将firstName设置为空字符串请尝试以下操作:
function ShowFullName()
var varFirstName = Xrm.Page.getAttribute("lauren_firstname").getValue();
var varLastName = Xrm.Page.getAttribute("lauren_lastname").getValue();
if(varFirstName == null || varFirstName.ToLower() == "null") {
varFirstName = "";
}
if(varLastName == null || varLastName.ToLower() == "null") {
varLastName = "";
}
Xrm.Page.getAttribute("lauren_name").setValue(varFirstName + " " + varLastName);
};
您可以利用以下事实:在JavaScript中。换句话说,每个变量都可以强制(转换)为
true
或false
null
是虚假的,包含内容的字符串是真实的。这意味着:
var a = null;
var b = 'hello';
if (a) {
// does not run
} else {
// runs
}
if (b) {
// runs
}
您也可以使用其他类型的表达式,如a或:
在这种情况下,逻辑OR是我们最有趣的选择。使用运算符时,会发生以下情况:
a
是null
,因此它是falsy。表达式返回右侧的值b
。因此,我们可以通过编写varFirstName | |“
,来利用这种行为,它将返回名字(如果有),或者如果它为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 || '')).trim());
}
我添加了一个调用,以从结果中删除额外的空格。学习JScript(或任何内容)的一部分是学习使用文档。当然,欢迎您在这里提问,但请注意,您需要展示研究成果。顺便问一下,您使用的是什么库?或者,“JScript”实际上不是一个拼写错误吗?对像我这样的新人有什么建议吗。我被推到了这个世界上,我正在网上阅读,并试图尽我所能理解如何使用JavaScript。我需要一个初学者指南。有什么建议吗?我目前正试图在Microsoft Dynamics CRM 2011中使用它。@Lauren:Google“Douglas Crockford”并在YouTube上观看他的演讲。你好,Darren,我在我的两个var声明下面添加了您的建议。我添加了以下内容:if(varFirstName==null){varFirstName=“”;}if(varLastName==null){varLastName=“”;}对不起,我按回车键太快了。我输入了名字Lauren,但它仍然显示为“null”,所以在我的全名框中显示为Lauren null……我做错了什么?它是否返回null(大写字母N)?如果是这样的话,那么它看起来像是一个字符串“Null”被返回,因为Null对象的拼写都是小写的。改为使用:如果(varLastName==null | | varLastName==null){varLastName=“”;},-| |表示“或”您也可以尝试检查未定义的。使用:如果(varLastName未定义){varLastName=”“;}Darren,感谢您的帮助。我采纳了上面杰夫的建议,效果很好,现在我看到你也提出了同样的建议。非常感谢你的帮助,我真的很感激。杰夫!非常感谢你的帮助,我真的很感激。这很有效!对像我这样的新人有什么建议吗。我被推到了这个世界上,我在网上阅读,试图尽我所能去理解。我需要一个初学者指南。有什么建议吗?抱歉@Lauren我对JScript了解不多,只是碰巧我知道Xrm.Page.getAttribute将提供对Xrm.Page.data.entity.attributes.get方法的直接访问。是否确实需要
.ToLower()
位?如果它不是null
,它会在.ToLower()之后变成null
?(我对xrm一无所知,但我知道js…)是的,这是必要的,因为它将返回字符串“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 || '')).trim());
}