草庐IT

if-null-then-null

全部标签

javascript - 在 if 语句中使用 undefined variable

此代码段导致JavaScript运行时错误:(foo未定义)if(foo){//...}我必须先定义foo,如下所示:varfoo=foo||null//orundefined,0,etc....只有这样我才能做:if(foo){//...}这是为什么呢?更新:这对我来说有点脑残:“当然你不能访问未分配的变量。”有趣的是,你可以对undefinedvariable执行typeof()。我要接受miccet的答案,因为我认为这是最优雅的解决方案。 最佳答案 我感觉到你在问,因为你知道javascript似乎在某些情况下(即没有运行时错

javascript - 在 ES6 模板文字中插入 if 语句

我有一个简单的ajax请求返回一些数据,然后插入到模板文字中。我想知道是否可以在模板中插入“if”语句?如果json对象有第5种颜色,本质上是添加一行代码。$.ajax({url:'http://localhost:8888/ColourCatchr%202/app/search.php'}).done(function(results){varres=jQuery.parseJSON(results);console.log(res);$.each(res,function(index,result){$('.palettes').append(`${result.name}${re

javascript - 无法读取 null 的属性 'length' (javascript)

在尝试调试时,我收到此行的“长度”空错误。它是按照书上的说明写的,所以我不明白为什么它会给我错误?谢谢,=)if(capital.length(这里是要求的完整代码。抱歉)varcapital=window.prompt("WhatisthecapitalofMissouri?","")if(capital.lengthTheCapitalofMissouriisJeffersonCity.";}else{if(!window.confirm("Isthatyourfinalanswer?")){returntrue;document.getElementById("firstdiv"

javascript - 未捕获的类型错误 : Cannot read property 'getElementsByTagName' of null

我正在尝试使用.getElementsByTagName()选择元素。vartags=document.body.getElementsByTagName("*");当前尝试使用从现有答案中吸取的教训https://stackoverflow.com/questions/7410949/javascript-document-getelementsbyclassname-compatibility-with-ie/7410966#7410966但是我的尝试失败了,出现了这个错误:UncaughtTypeError:Cannotreadproperty'getElementsByTagN

javascript - 如何: ServiceWorker check if ready to update

我要实现的目标:使用加载器/微调器渲染页面如果service-worker.js已注册并处于事件状态,则检查更新如果没有更新,则移除loader如果updatefound并且安装了新版本,则重新加载页面否则注册service-worker.js当updatefound时,意味着安装了新的,移除loader我正在使用sw-precache模块来生成service-worker.js和以下注册码:window.addEventListener('load',function(){//showloaderaddLoader();navigator.serviceWorker.register

javascript - 在开关中嵌套 if/else 是否有效的 JavaScript?

这有效吗?switch(foo){case'bar':if(raz=='something'){//execute}else{//dosomethingelse}break;...default://yadayada} 最佳答案 是的,itisperfectlyvalid.你试过了吗? 关于javascript-在开关中嵌套if/else是否有效的JavaScript?,我们在StackOverflow上找到一个类似的问题: https://stackover

javascript - Object.create(Object.prototype) , Object.create(Object) 和 Object.create(null) 之间的区别

我应该为其他人将从中继承的第一个父对象传递哪个参数,哪个参数更有效Object.create(Object.prototype)Object.create(Object)Object.create(null)Object.create(null)返回一个空对象Object.create(Object)返回一个函数,为什么????(我检查了我的日志,它说函数...我使用了console.dir())Object.create(Object)返回一个非空对象这整个事情是如何工作的......我更习惯于Classname.prototype:(不明白这是怎么回事

javascript - 为什么定义在 'if'条件表达式部分的函数在外面不可见?

if(functionf(){}){console.log(f)//Throwanerror:fisnotdefined}为什么日志会报错,f没有在上面的表达式中定义?你会认为这等同于:functionf(){}if(true){console.log(f);//Throwanerror:fisnotdefined} 最佳答案 当你说functionf(){}是一个函数声明语句。该函数将在封闭环境中定义。因此,如果它是在另一个函数中定义的,那么该函数将在该环境中定义,您可以在其中通过名称访问该函数。但是,当您在表达式中使用函数声明时

javascript - 在 IE9 上,Win 7 window.open() 返回 null 而不是打开窗口的引用

我正在尝试类似下面的操作,varmyWindow=null;if(!myWindow||myWindow.closed){myWindow=window.open(url,windowId);}else{myWindow.focus();}所有浏览器都返回window.open()的窗口引用,但IE9返回NULL。是否有人有更多关于返回null的原因或IE9的解决方法的信息? 最佳答案 window.open如果在Internet选项->安全->此区域的安全级别下选中启用保护模式,则返回NULL引用对象>并且ZONE不同,即在我的例

Javascript 正则表达式 : match anything up until something (if there it exists)

我是正则表达式的新手,这可能是一个非常简单的问题(希望如此)。我正在尝试对3种字符串使用一种解决方案“45%”,预期结果:“45”“45”,预期结果:“45”"",预期结果:""我在尝试什么(让字符串为str):str.match(/(.*)(?!%*)/i)[1]这在我的脑海中听起来像是“匹配任何东西的任何实例,直到找到'%',否则就匹配任何东西”在firebug的头脑中,这听起来更像是“只匹配任何东西,完全无视负面前瞻”。也让它变得懒惰-(.*)?-似乎没有帮助。让我们暂时忘记在这种特定情况下我只是匹配数字,所以/\d*/就可以了。我试图理解一个一般规则,以便我可以随时应用它。有人