Questions tagged «javascript»

有关在ECMAScript(JavaScript / JS)及其各种方言/实现(不包括ActionScript)中进行编程的问题。此标记很少单独使用,但最常与标记[node.js],[jquery],[json]和[html]关联。


11
Angular 2同级组件通信
我有一个ListComponent。在ListComponent中单击某个项目时,该项目的详细信息应显示在DetailComponent中。两者同时显示在屏幕上,因此不涉及路由。 如何告诉DetailComponent单击ListComponent中的哪个项目? 我考虑过向父对象(AppComponent)发出事件,并让父对象使用@Input在DetailComponent上设置selectedItem.id。或者,我可以将共享服务与可观察的订阅一起使用。 编辑:通过事件+ @Input设置所选项目不会触发DetailComponent,但是,以防万一我需要执行其他代码。因此,我不确定这是否可以接受。 但是,这两种方法似乎都比通过Angular 1做事的方式复杂得多,后者是通过$ rootScope。$ broadcast或$ scope。$ parent。$ broadcast实现的。 由于Angular 2中的所有内容都是组件,我很惊讶没有更多有关组件通信的信息。 是否有另一种/更直接的方法来完成此任务?

6
为什么结果根据花括号的位置而有所不同?
为什么代码片段如下,取自这篇文章,产生不同的结果,由于只在大括号的放置一个变化? 当左花括号{在新行上时,test()返回undefined,并且警报中显示“ no-it break:undefined”。 function test() { return { /* <--- curly brace on new line */ javascript: "fantastic" }; } var r = test(); try { alert(r.javascript); // does this work...? } catch (e) { alert('no - it broke: ' + typeof r); } 运行代码段隐藏结果展开摘要 当花括号与处于同一行时return,test()将返回一个对象,并警告“奇妙”。 function test() { …
118 javascript  syntax 

8
Moment.js:日期之间的日期
我正在尝试使用Moment.js检测给定日期是否在两个日期之间。从2.0.0版开始,Tim添加isBefore()并isAfter()用于日期比较。 既然没有isBetween()方法,我认为这会起作用: var date = moment("15/02/2013", "DD/MM/YYYY"); var startDate = moment("12/01/2013", "DD/MM/YYYY"); var endDate = moment("15/01/2013", "DD/MM/YYYY"); if (date.isBefore(endDate) && date.isAfter(startDate) || (date.isSame(startDate) || date.isSame(endDate)) ) { alert("Yay!"); } else { alert("Nay! :("); } 我相信必须有更好的方法来做到这一点。有任何想法吗?

4
如何将target =“ _ blank”添加到JavaScript window.location?
以下将目标设置为_blank: if (key == "smk") { window.location = "http://www.smkproduction.eu5.org"; target = "_blank"; done = 1; } 但这似乎不起作用。如何在新标签页中启动链接? 这是我的代码: function ToKey() { var done = 0; var key = document.tokey.key.value; key = key.toLowerCase(); if (key == "smk") { window.location = "http://www.smkproduction.eu5.org"; target = "_blank" done = 1; } if (done == …
118 javascript 


6
什么是ECMAScript?
在Visual Studio中,当我将脚本类型设置为JavaScript时,这是智能感知中的一个选项。 快速的Google搜索得出了不理想的结果,使我相信它的使用并不十分流行。 它是什么? 有人用吗? (<script type="text/ecmascript">) 为什么?
118 javascript 


27
检测点击外部元素
如何检测元素外部的点击?我正在使用Vue.js,因此它将不在模板元素内。我知道如何在Vanilla JS中执行此操作,但是我不确定在使用Vue.js时是否还有更合适的方法? 这是Vanilla JS的解决方案: div外部的Javascript Detect Click事件 我想我可以使用更好的方法来访问元素?
118 javascript  vue.js 

7
如何用Momentjs获取昨天的日期?
所以,我的问题很简单,如何获得MomentJs的昨天约会?用Javascript非常简单,即 today = new Date(); yesterday = new Date(today.setDate(today.getDate() - 1)) console.log(yesterday) 但是如何使用MomentJs实现呢?

1
升级到Babel 7:无法读取null的属性“绑定”
通过运行以下命令,我刚刚从6 升级到Babel 7: npm remove babel-cli npm install --save-dev @babel/cli @babel/core @babel/preset-env 这是我的.babelrc文件: { "presets": ["env"] } 然后我跑了: babel js/src --out-dir js/dist 结果是: TypeError: Cannot read property 'bindings' of null at Scope.moveBindingTo (/xyz/node_modules/@babel/traverse/lib/scope/index.js:867:13) at BlockScoping.updateScopeInfo (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:364:17) at BlockScoping.run (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:330:12) at PluginPass.BlockStatementSwitchStatementProgram (/xyz/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:70:24) at newFn (/xyz/node_modules/@babel/traverse/lib/visitors.js:193:21) at NodePath._call (/xyz/node_modules/@babel/traverse/lib/path/context.js:53:20) at NodePath.call …

16
如何避免“无法读取未定义的属性”错误?
在我的代码中,我处理了一个数组,其中包含一些条目,其中许多对象彼此嵌套,而有些则没有。它看起来像以下内容: // where this array is hundreds of entries long, with a mix // of the two examples given var test = [{'a':{'b':{'c':"foo"}}}, {'a': "bar"}]; 这给我带来了问题,因为我有时需要遍历数组,而不一致给我带来了如下错误: for (i=0; i<test.length; i++) { // ok on i==0, but 'cannot read property of undefined' on i==1 console.log(a.b.c); } 我知道我可以说if(a.b){ console.log(a.b.c)},但这在最多嵌套5或6个对象的情况下非常繁琐。是否还有其他(更简便)的方法可以让console.log(如果存在)进行操作,而不会引发错误?
118 javascript 



5
在打字稿中始终使用.tsx而不是.ts有什么弊端吗?
我刚刚开始使用TypeScript进行React项目,并问自己应该如何处理常规类文件?我应该使用.ts还是.tsx文件,然后我找不到所有不使用.tsx文件的理由,即使它不是一个React项目! 有什么原因或特定情况我们不应该使用.tsx文件吗?如果没有,为什么TypeScript团队添加整个新扩展名?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.