草庐IT

javascript - if 语句中的逗号

我在一些JavaScript中遇到过一个相当令人困惑的语句:if(n="value",a==b){...我认为这是先给n赋值,然后比较(a==b)判断是否继续if声明。但为什么?这样做比说...有什么好处吗?n="value";if(a==b){...或者...if(a==b){n="value";... 最佳答案 在JavaScript中,无论何时将多个表达式放在一对括号内,它们都会被计算为最后一个表达式,如下例所示:vara=(1,2);varb=a+1;//b=2+1=3因此,在您的情况下,解释器执行属性n="value",然

javascript - Angular 2 自定义验证器 : check if the input value is an integer?

在Angular2项目中,我需要验证一些输入。如何轻松检查输入值是否为整数?我尝试使用Number(control.value)为空字段返回0-不好。或parseInt(control.value,10)不考虑空格:如果我有类似的东西:1space0,24=1,024它返回1-它通过了验证器没有错误。Lodash函数如:_.isInteger(control.value)或_.isNumeric(control.value)//每次都返回false-这是预期的,因为输入值是字符串而不是数字。像这样组合方法会创建一个包含许多if/else语句的困惑函数,即便如此,我也不确定我是否得到了所

javascript - 拒绝来自 then() 的 promise

如何从then()中拒绝一个promise?例如:Promise.all(promiseArr).then(()=>{if(cond){//reject}}).catch(()=>{/*dosomething*/});我发现的唯一相关问题是:Howtorejectapromisefrominsidethenfunction但它是从2014年开始的,所以现在必须有更好的方法来支持ES6。 最佳答案 ES6/ES2015仍然是JavaScript,并且没有提供任何关于promise拒绝的新内容。事实上,原生promise是ES6。要么是

javascript - 如何从 CasperJS 中的 "then"方法传递数据?

在使用CasperJS时,通常有多个then方法。下面是一个例子:casper.then(function(){vara="test";//...})casper.then(function(){//howtousethevariableainthefirst"then"})我的问题是,将值从前面的then传递到后面的then的常用方法是什么?对于上述例子,如何在第二个then中使用a? 最佳答案 有很多方法,但最简单的是使用全局变量。如果您不想让全局变量弄乱您的脚本(这不应该与浏览器中的全局变量一样重要,因为您可能有不同的库),您

javascript - 身份验证 - 调用 $http 的 .then() 成功回调而不是错误回调

这可能只是因为误解了如何在MEAN堆栈应用程序中最好地进行身份验证,或者我对promises和$http的.then()方法如何工作缺乏了解,但每当我尝试使用不正确的凭据向我的后端节点服务器进行身份验证,它正在调用$http的.then()方法的成功回调而不是错误回调。这是我的设置:我正在使用jsonwebtoken和express-jwt包,AngularJS拦截器将token添加到请求并检查状态401responseErrors,一个TokenService设置/删除等JWT和一个UserService来处理登录、注销等。从调试来看,这是正在发生的事情:发送登录请求服务器捕获请求,

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