Questions tagged «javascript»

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

23
在JavaScript中遍历数组的最快方法是什么?
我从书中得知,您应该为循环编写这样的代码: for(var i=0, len=arr.length; i < len; i++){ // blah blah } 因此arr.length不会每次都计算。 其他人则说编译器会对此做一些优化,因此您可以编写: for(var i=0; i < arr.length; i++){ // blah blah } 我只想知道哪种是最佳实践?

14
平滑滚动到div id jQuery
我一直在尝试滚动到div id jquery代码以正常工作。基于另一个堆栈溢出问题,我尝试了以下操作 演示http://jsfiddle.net/kevinPHPkevin/8tLdq/ $('#myButton').click(function() { $.scrollTo($('#myDiv'), 1000); }); 但这没有用。它只是捕捉到div。我也试过 $('#myButton').click(function(event) { event.preventDefault(); $.scrollTo($('#myDiv'), 1000); }); 没有进展。

3
内容安全策略如何工作?
我在开发人员控制台中收到很多错误: 拒绝评估字符串 拒绝执行内联脚本,因为它违反了以下内容安全策略指令 拒绝加载脚本 拒绝加载样式表 这是怎么回事?内容安全策略如何工作?如何使用Content-Security-PolicyHTTP标头? 具体来说,如何... ...允许多个来源? ...使用不同的指令? ...使用多个指令? ...处理端口? ...处理不同的协议? ...允许的file://协议? ...使用内联样式,脚本和标签<style>以及<script>? ...允许eval()吗? 最后: 到底是什么'self'意思?

22
Array.push()如果不存在?
如果两个值都不存在,如何推入数组?这是我的数组: [ { name: "tom", text: "tasty" }, { name: "tom", text: "tasty" }, { name: "tom", text: "tasty" }, { name: "tom", text: "tasty" }, { name: "tom", text: "tasty" } ] 如果我尝试使用name: "tom"or或再次将其推入数组text: "tasty",我什么都不想发生...但是如果这两个都不存在,那么我希望它.push() 我怎样才能做到这一点?

14
如何在JavaScript中输出ISO 8601格式的字符串?
我有一个Date对象。如何呈现title以下片段的一部分? <abbr title="2010-04-02T14:12:07">A couple days ago</abbr> 我有另一个图书馆的“相对语言时间”部分。 我尝试了以下方法: function isoDate(msSinceEpoch) { var d = new Date(msSinceEpoch); return d.getUTCFullYear() + '-' + (d.getUTCMonth() + 1) + '-' + d.getUTCDate() + 'T' + d.getUTCHours() + ':' + d.getUTCMinutes() + ':' + d.getUTCSeconds(); } 但这给了我: "2010-4-2T3:19"




30
如何检查JavaScript对象是否为DOM对象?
我试图得到: document.createElement('div') //=> true {tagName: 'foobar something'} //=> false 在我自己的脚本中,我以前只是使用它,因为我从来不需要tagName作为属性: if (!object.tagName) throw ...; 因此,对于第二个对象,我想出了以下方法作为一种快速解决方案-大部分都能奏效。;) 问题是,这取决于浏览器是否强制执行只读属性,而并非所有人都这样做。 function isDOM(obj) { var tag = obj.tagName; try { obj.tagName = ''; // Read-only for DOM, should throw exception obj.tagName = tag; // Restore for normal objects return false; } catch (e) { return …
247 javascript  dom  object 


22
使用JavaScript获取数字的小数部分
我有类似3.2和的浮点数1.6。 我需要将数字分成整数和小数部分。例如,的值3.2将被分为两个数字,即3和0.2 获取整数部分很容易: n = Math.floor(n); 但是我在获取小数部分时遇到了麻烦。我已经试过了: remainer = n % 2; //obtem a parte decimal do rating 但是它并不总是能正常工作。 先前的代码具有以下输出: n = 3.1 => remainer = 1.1 我在这里想念的是什么?


30
在JavaScript中检测IE版本(v9之前的版本)
如果他们使用的是Internet Explorerv9之前的版本,我想将我们网站的用户退回至错误页面。只是不值得我们花费时间和金钱来支持IE pre-v9。使用其他所有非IE浏览器的用户都可以使用,并且不应被退回。这是建议的代码: if(navigator.appName.indexOf("Internet Explorer")!=-1){ //yeah, he's using IE var badBrowser=( navigator.appVersion.indexOf("MSIE 9")==-1 && //v9 is ok navigator.appVersion.indexOf("MSIE 1")==-1 //v10, 11, 12, etc. is fine too ); if(badBrowser){ // navigate to error page } } 这段代码会成功吗? 拒绝一些可能会以我的方式发表的评论: 是的,我知道用户可以伪造useragent字符串。我不担心 是的,我知道编程专家更喜欢嗅探功能支持而不是浏览器类型,但在这种情况下,我认为这种方法不可行。我已经知道所有(相关)非IE浏览器都支持我需要的功能,而所有pre-v9 IE浏览器都不支持。在整个站点中逐个功能地检查将是浪费。 是的,我知道有人尝试使用IE v1(或> = 20)访问该网站不会将'badBrowser'设置为true,并且警告页面也无法正确显示。这是我们愿意承担的风险。 是的,我知道Microsoft具有可用于精确浏览器版本检测的“条件注释”。从IE开始,IE不再支持条件注释IE 10,从而使该方法绝对无用。 还有其他明显的问题要注意吗?

10
使用Number对象保存属性并递增数字的这段代码中发生了什么?
最近的一条推文包含此JavaScript代码段。 有人可以一步一步解释它发生了什么吗? > function dis() { return this } undefined > five = dis.call(5) Number {[[PrimitiveValue]]: 5} > five.wtf = 'potato' "potato" > five.wtf "potato" > five * 5 25 > five.wtf "potato" > five++ 5 > five.wtf undefined > five.wtf = 'potato?' "potato?" > five.wtf undefined > five 6 …
246 javascript 

15
获取两个日期时间之间的时差
我知道我可以使用momentjs做任何事情,还可以做一些涉及日期的事情。但是令人尴尬的是,我很难去做一件看起来很简单的事情:得到两次之间的差。 例: var now = "04/09/2013 15:00:00"; var then = "04/09/2013 14:20:30"; //expected result: "00:39:30" 我试过的 var now = moment("04/09/2013 15:00:00"); var then = moment("04/09/2013 14:20:30"); console.log(moment(moment.duration(now.diff(then))).format("hh:mm:ss")) //outputs 10:39:30 我不明白那里的“ 10”是什么。我住在巴西,所以如果相关的话,我们是utc-0300。 结果moment.duration(now.diff(then))是持续时间正确的内部值: days: 0 hours: 0 milliseconds: 0 minutes: 39 months: 0 seconds: 30 years: 0 所以,我想我的问题是:如何将momentjs持续时间转换为时间间隔?我肯定可以用 duration.get("hours") +":"+ duration.get("minutes") …

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.