Questions tagged «javascript»

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

10
为什么instanceof对某些文字返回false?
"foo" instanceof String //=> false "foo" instanceof Object //=> false true instanceof Boolean //=> false true instanceof Object //=> false false instanceof Boolean //=> false false instanceof Object //=> false // the tests against Object really don't make sense 数组文字和对象文字匹配... [0,1] instanceof Array //=> true {0:1} instanceof Object //=> true …


7
将多个元素推送到数组
我试图将多个元素作为一个数组推送,但出现错误 > a = [] [] > a.push.apply(null, [1,2]) TypeError: Array.prototype.push called on null or undefined 我正在尝试做与红宝石中类似的事情,我当时以为apply是这样的*。 >> a = [] => [] >> a.push(*[1,2]) => [1, 2]
284 javascript 

30
以YYYYMMDD格式计算给定生日的年龄
给定出生日期格式为YYYYMMDD,我如何计算以岁为单位的年龄?是否可以使用该Date()功能? 我正在寻找比现在使用的解决方案更好的解决方案: var dob = '19800810'; var year = Number(dob.substr(0, 4)); var month = Number(dob.substr(4, 2)) - 1; var day = Number(dob.substr(6, 2)); var today = new Date(); var age = today.getFullYear() - year; if (today.getMonth() < month || (today.getMonth() == month && today.getDate() < day)) { age--; } alert(age); …
284 javascript  date 

5
javascript文件名命名约定是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 4年前关闭。 改善这个问题 文件应命名为-hyphens.js,camelCased.js还是其他名称? 我在这里找不到这个问题的答案。



11
在Chrome中查找JavaScript函数定义
Chrome的开发人员工具令人难以置信,但他们似乎没有(我能找到)的一件事是找到JavaScript函数定义的一种方法。这对我来说非常方便,因为我正在一个包含许多外部JS文件的网站上工作。当然grep可以解决此问题,但在浏览器中会更好。我的意思是,浏览器必须知道这一点,那么为什么不公开呢?我所期望的是: 从页面中选择“检查元素”,突出显示“元素”选项卡中的行 右键单击该行,然后选择“转到函数定义” 正确的脚本已加载到“脚本”选项卡中,并且会跳转到函数定义 首先,这个功能是否存在,我只是想念它? 如果没有,我猜这可能来自WebKit,但是找不到针对Developer Tool功能请求或WebKit的Bugzilla的任何内容。


10
如何解决JavaScript的parseInt八进制行为?
尝试在JavaScript中执行以下操作: parseInt('01'); //equals 1 parseInt('02'); //equals 2 parseInt('03'); //equals 3 parseInt('04'); //equals 4 parseInt('05'); //equals 5 parseInt('06'); //equals 6 parseInt('07'); //equals 7 parseInt('08'); //equals 0 !! parseInt('09'); //equals 0 !! 我刚刚了解到JavaScript认为前导零表示八进制整数的困难方式,并且由于在基数8中没有"8"或"9",所以该函数返回零。是否喜欢,这是设计使然。 有哪些解决方法? 注意:为了完整起见,我将发布一个解决方案,但这是我讨厌的解决方案,因此请发布其他/更好的答案。 更新: JavaScript标准的第5版(ECMA-262)引入了一项重大更改,消除了此行为。Mozilla有一个很好的写了。

25
jQuery单击事件触发多次
我试图用Java脚本编写视频扑克游戏,以降低其基础知识,但我遇到了一个问题,其中jQuery click事件处理程序多次触发。 它们被附加到用于下注的按钮上,并且在游戏过程中第一手下注时效果很好(仅触发一次);但是在秒针下注中,每次按下一个下注或下注按钮都会触发两次点击事件(因此,每次按下正确的赌注量是两次)。总体而言,在按一次下注按钮时触发单击事件的次数遵循此模式- 序列的第i个词用于从游戏开始时对第i只手进行下注:1、2、4 ,7、11、16、22、29、37、46,无论值多少,它看起来都是n(n + 1)/ 2 +1-而且我不够聪明,无法弄清楚,我使用OEIS。:) 这是正在起作用的click事件处理程序的函数;希望它很容易理解(让我知道是否可以,我也想做得更好): /** The following function keeps track of bet buttons that are pressed, until place button is pressed to place bet. **/ function pushingBetButtons() { $("#money").text("Money left: $" + player.money); // displays money player has left $(".bet").click(function() { var amount = …

4
$ on和$广播角度
我有一个footerController和codeScannerController具有不同的视图。 angular.module('myApp').controller('footerController', ["$scope", function($scope) {}]); angular.module('myApp').controller('codeScannerController', ["$scope", function($scope) { console.log("start"); $scope.startScanner = function(){... 当我<li>在footer.html中单击时,应该在codeScannerController中得到此事件。 <li class="button" ng-click="startScanner()">3</li> 我认为可以使用$on和来实现$broadcast,但是我不知道如何在任何地方都找不到示例。

14
将数据URI转换为文件,然后追加到FormData
我一直在尝试重新实现HTML5图像上载器,例如Mozilla Hacks网站上的那个,但是它可以与WebKit浏览器一起使用。任务的一部分是从canvas对象中提取图像文件,并将其附加到FormData对象中进行上传。 问题在于,虽然canvas具有toDataURL返回图像文件表示形式的功能,但FormData对象仅接受File API中的 File或Blob对象。 Mozilla解决方案在Firefox上使用了以下仅Firefox功能canvas: var file = canvas.mozGetAsFile("foo.png"); ...这在WebKit浏览器上不可用。我能想到的最好的解决方案是找到一种将Data URI转换为File对象的方法,我认为这可能是File API的一部分,但是我一生都找不到能够做到这一点的方法。 可能吗?如果没有,还有其他选择吗? 谢谢。
282 javascript  html  webkit 

8
如何计算两个日期之间的天数
我有两个输入日期来自Date Picker控件。我选择了开始日期2/2/2012和结束日期2/7/2012。我为此编写了以下代码。 我应该得到6的结果,但是我却得到5。 function SetDays(invoker) { var start = $find('<%=StartWebDatePicker.ClientID%>').get_value(); var end = $find('<%=EndWebDatePicker.ClientID%>').get_value(); var oneDay=1000 * 60 * 60 * 24; var difference_ms = Math.abs(end.getTime() - start.getTime()) var diffValue = Math.round(difference_ms / oneDay); } 谁能告诉我如何获得确切的区别?
282 javascript 

7
如何拒绝异步/等待语法?
如何拒绝异步/等待功能返回的承诺? 例如本来 foo(id: string): Promise<A> { return new Promise((resolve, reject) => { someAsyncPromise().then((value)=>resolve(200)).catch((err)=>reject(400)) }); } 转换为异步/等待 async foo(id: string): Promise<A> { try{ await someAsyncPromise(); return 200; } catch(error) {//here goes if someAsyncPromise() rejected} return 400; //this will result in a resolved promise. }); } 那么,在这种情况下,我如何才能正确拒绝这一承诺?

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.