假设我在JavaScript中有一个函数:
function something (variable) {
console.log(variable);
}
Run Code Online (Sandbox Code Playgroud)
如果没有传递变量,如何设置,默认为null?
在回调中,我构建了一个我构建的对象,以便在我的Express应用程序中发送:
this.response = {
owner: data.actions[1].causes[0].shortDescription,
build_version: data.actions[0].parameters[0].value,
branch_to_merge: data.actions[0].parameters[1].value,
jira_tickets: data.actions[0].parameters[2].value,
build_description: data.actions[0].parameters[3].value,
outcome: data.result
};
Run Code Online (Sandbox Code Playgroud)
如果我获得的响应与我习惯的不同,我会得到一个致命cannot find 'property' of undefined错误,导致我的服务器崩溃:data.actions[1].causes[0].shortDescription.
我想知道该怎么办,我想我可以把它放在一个try catch但似乎错了.
什么被认为是解决这个问题的好方法?
是否可以作为 if 块的一部分检查空值,而不需要对null和进行一对显式检查undefined。
例如,不想这样做:
if(key === null || key === undefined) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
这是行不通的,因为它还包含其他虚假值,例如零和空数组。
if(!key)
Run Code Online (Sandbox Code Playgroud) 我已经尝试过这两个:
如果富
如果 foo[0] == bar.baz[0]
输入.form-control-成功(类型=“文本”)
别的
输入.form-control-danger(类型=“文本”)
别的
输入(类型=“文本”)
除非 foo === 未定义
如果 foo[0] == bar.baz[0]
输入.form-control-成功(类型=“文本”)
别的
输入.form-control-danger(类型=“文本”)
别的
输入(类型=“文本”)
但在这两种情况下我都会收到错误
无法读取未定义的属性“0”
在线上if foo[0] == bar.baz[0]。
情况是有时foo会传递给 pug,有时则不会。
foo当它被传递时是一个数组,如果它被传递,我需要根据它的第 x个元素是否与另一个数组的第 x个元素相同来执行一些操作。
我正在尝试将参数传递给URL。为此,我正在使用Angular HttpParams。仅当date不为null或未定义时,如何设置日期参数?
码:
let params = new HttpParams()
.set('Id', Id)
.set('name', name)
if (startDate !== null) {
params.set('startDate', startDate.toDateString());
}
if (endDate !== null) {
params.set('endDate', endDate.toDateString());
}
Run Code Online (Sandbox Code Playgroud) 假设我有以下jQuery代码.它工作得很好,但是我需要包含.after($('<div />'))唯一的if var insertAfter等于true.有一种优雅的jQuery方式吗?
$('#whatEver')
.parent()
.show()
.width(123)
.addClass('bebo')
.before($('<div />'))
.after($('<div />'))
.parent()
.addClass('bla');
Run Code Online (Sandbox Code Playgroud) 在c#中有没有更短的方法来写这个:
if(myobject!=null){
}
Run Code Online (Sandbox Code Playgroud)
在JavaScript中我们可以这样做:
if(myobject){
}
Run Code Online (Sandbox Code Playgroud)
免责声明:我知道这在JavaScript中也会匹配'true'.这只能用于应该是特定类型对象的变量.
我发现了一些类似的问题,但他们提出的问题略有不同:
我们如何区分var foo;和var foo=undefined;?
typeof foo将返回"undefined"并foo in window返回true;
我试图检查变量的值是否为空,但它不起作用。我还必须停止脚本并且不要插入行
网页
<input type="text" name="for_intitule" id="form_intitule">
Run Code Online (Sandbox Code Playgroud)
jQuery
var form_intitule = $('input[name=form_intitule]').val();
if(form_intitule == null){
alert('fill the blank');
return false;
}
Run Code Online (Sandbox Code Playgroud)
更新 :
$('#insertForm').on('click', function(){
var form_intitule = $('input[name=form_intitule]').val();
if($('input[name=form_intitule]').val().trim().length == 0){
alert('fill the blank');
}
$.ajax({
type: "GET",
url: "lib/function.php?insertForm="+insertForm+"&form_intitule="+form_intitule,
dataType : "html",
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest + '--' + textStatus + '--' + errorThrown);
},
success:function(data){
}
});
});
Run Code Online (Sandbox Code Playgroud) 虽然有JavaScript的语义差别null和undefined,很多时候他们可以被视为是相同的.检查值是null还是未定义的最佳方法是什么?
现在我正在做以下事情:
if (typeof value === "undefined" || value === null) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
这是非常冗长的.当然,我可以为此创建一个函数并在任何地方导入,但我希望有更好的方法来实现这一点.
另外,我知道
if (value == null) {
}
Run Code Online (Sandbox Code Playgroud)
将90%的时间完成工作,除非值为零......或者错误......或者一些可能导致模糊错误的隐含事物.
我真的不明白为什么Visual Studio在下面执行"ra.split('')"时给出了警告"限定符可以是'null'或'undefined'",即使在我进行了无效检查之后.我有这个代码:
var ra = data.RiskAnalysis;
if (typeof ra !== "undefined") {
var ebwg = ra.split('');
}
Run Code Online (Sandbox Code Playgroud)
正如你可以在这个stackoverflow-post中读到的那样,'typeof ra'如果值为null,则会返回'object'.
这是一个错误吗?或者我的支票不够?
我看了这个问题:
但它没有帮助.
我有以下代码:
if (_modeID != 8 && _modeID != 9)
// do something
Run Code Online (Sandbox Code Playgroud)
_modeID 在一个单独的文件中定义并分配一个值.
我遇到了一个错误,由于某种原因,var _modeID = someIntVal;它永远不会执行,所以当if上面的语句运行时根本就没有_modeID.
我将它扩展为if (_modeID === null || _modeID === undefined || (_modeID != 8 && _modeID != 9)但仍会引发以下错误:
ReferenceError - Java脚本错误:'_modeID'未定义
我希望在这种情况下,第一个或第二个条件会评估为真,但显然不是.谁能解释我做错了什么?
var _modeID = undefined; if (_modeID === undefined) ...简单地if (_modeID === undefined) ...假设这两个片段是"完整"文件是不一样的?