草庐IT

javascript - 如何在 JavaScript 中没有大量 if 语句的情况下避免 "the property of undefined"错误?

我经常发现自己在处理像这样的深层物体:varx={y:{z:{a:true}}}代码中的某处:if(x.y.z.a===true){//dosomething}在某些情况下,任何x、y、z变量都可能未定义,在这种情况下,您会得到“无法读取未定义的属性*”可能的解决方案是:if(x&&x.y&&x.y.z&&x.y.z.a===true){//dosomething}jsfiddle:http://jsfiddle.net/EcFLk/2/但是有没有更简单/更快捷的方法呢?内联解决方案(不使用特殊功能)会很棒。谢谢。 最佳答案 不,你

Javascript 在 If 语句中错误地执行 MVC 代码

我对下面的代码有点困惑。它在Windows7上的VS2010中运行良好,现在我已经将硬件升级到Windows8和VS2012,但它没有。我的MVC应用程序中有以下JavaScript代码:vartoday;if("@Model.Birthday.HasValue"){vartoday=newDate("@Model.Birthday.Value.Year","@Model.Birthday.Value.Month"-1,"@Model.Birthday.Value.Day");}else{today=newDate();}模型从具有如下属性的ViewModel拉取:publicSyst

javascript - 如何在 JSON 中使用 if 语句?

如何在JSON中使用if语句下面是代码:..........................................................................................varconfig=[{"name":"SiteTitle","bgcolor":"","color":"","position":"TL","text":"step1","time":5000},{"name":"Jawal","bgcolor":"","color":"","text":"step2","position":"BL","time":5000},{"n

javascript - if 语句导致 TypeError : Cannont call unchain of undefined

我在我的Handlebars模板中使用了if语句。if语句有效,但是当您尝试更改路由时,它会导致UncaughtTypeError:Cannotcallmethod'unchain'ofundefined。我在下面的jsbin中重现了错误演示:http://emberjs.jsbin.com/UnUVorUn/9代码:http://emberjs.jsbin.com/UnUVorUn/9/edit 最佳答案 你的问题发生是因为你的IsLink以大写字母开头,有一个bug在Handlebars模板中使用时,已在1.3.0中修复。但是如

javascript - 三元语句是否比 javascript 中的 if/then/else 语句更快?

我看到了很多:varsomething=(is_something_true())?3:4;在javascript中。这比varsomething;if(is_something_true()){something=3;}else{something=4;}还是为了方便写得简明扼要? 最佳答案 请享受这个——如果差异在统计上是有效的,那么结果(真或假)也很重要——显然这只是机器上影响浏览器性能的其他东西:Hereisthelink两者之间有一个根本的区别,三元语句是表达式而不是控制流。如果有人将它写成三元表达式而不是标准的if/th

javascript - != "undefined"上的 If 语句条件检查失败

我正在尝试为谷歌地图信息窗口生成一些HTML内容。我有7个值,如果它们不等于null、undefined或“”(空字符串),则应该显示这些值。但显然我的if(e.Property!=null||e.Property!="undefined"||e.Property=="")当Property时不起作用是undefined.大多数情况是e.Email未定义。因此,我的代码没有跳过那部分,而是仍然插入了html+"部分。当我alert()它返回的e.Emailundefined如果是这样的话,它应该捕捉并跳过。我试过写if(typeofe.Property!=null||typeofe.P

javascript - 为什么在 if 条件下先是 Constant

这个问题在这里已经有了答案:Orderinconditionalstatements[duplicate](2个答案)关闭9年前。我经常看到结构是否被这样编码:if(true==a)if(false==a)为什么他们把常量放在第一位而不是变量?如本例所示:if(a==true)if(b==true)

javascript - 此 JavaScript "if"语句的较短代码

是否有使用JavaScript或jQuery编写以下内容的简便方法?if(this.id==="a"||this.id==="b"||this.id==="c"||this.id==="d") 最佳答案 这个怎么样?if(this.idin{"a":1,"b":1,"c":1,"d":1}){...}...还是这个?if("abcd".indexOf(this.id)>-1){...} 关于javascript-此JavaScript"if"语句的较短代码,我们在StackOverflo

javascript - if (var.length >0){} 和 if (var){} 之间的区别

在javascript中使用有区别吗if(foo.length>0){//runcodeinvolvingfoo}和if(foo){//runcodeinvolvingfoo}如果是这样,有人可以解释一下区别并举例说明它们不一样吗? 最佳答案 这是一个不相同的例子:varx=[];alert(x?'yes':'no');//displays"yes"alert((x.length>0)?'yes':'no');//displays"no" 关于javascript-if(var.leng

javascript - ng-if/ng-repeat 是否可以取模?

使用Angularng-repeat,我试图创建一个轮播,每个有3个s。我可以用每张幻灯片1个div轻松创建它,但无法获得3个。使用js,我通常使用模数(%)来确定索引是否可以被3整除,然后打开/关闭li那里。这可能与Angular相关吗?这就是我所拥有的(每张幻灯片1个项目):{{item}}这就是我要实现的目标(每张幻灯片3个项目):Item1Item2Item3Item4Item5Item6编辑此问题已被isherwood标记为重复。这个问题非常清楚地询问在ng-if中使用模数,而不是在Controller中。建议的副本很接近,但BettySt回答了下面的确切问题,并提供了代码示