Tag: JavaScript

“把脚本放在底部”是否正确?

在改善网站性能的最佳实践http://developer.yahoo.com/performance/rules.html中 ,Steve Souders提到了一条规则:“将脚本移到底部”。 这有点混乱。 其实,我注意到很多网页没有把脚本放在底部,而YSlow仍然把A标记为这些网页。 那么,我应该什么时候遵循“把脚本放在底部”的规则呢?

有没有办法使用数字types作为对象的关键?

看来,当我使用一个数字types作为一个对象的关键名称,它总是被转换成一个string。 无论如何,它实际上得到它存储为数字? 正常的types转换似乎不起作用。 例: var userId = 1; console.log( typeof userId ); // number myObject[userId] = 'a value'; console.dir(myObject); Dir输出: { '1': 'a value' } 我想要的是这样的: { 1: 'a value' } build议吗? 谢谢

JQuery $ function()会触发什么事件?

我们有一个JQuery $(function()语句: <script type="text/javascript"> $(function(){ //Code.. }) </script> 愚蠢的问题 – 什么时候该函数执行? 整个HTML页面是由客户端下载的吗? 在$(function()中使用包装代码的好处,而不仅仅是做: <script type="text/javascript"> //Code.. </script>

JavaScript中unshift()和push()的时间复杂度

我知道Javascript中的unshift()和push()方法有什么区别,但是我想知道时间复杂度有什么区别? 我想push()方法是O(1),因为你只是添加一个项目到数组的末尾,但我不确定unshift()方法,因为,我想你必须“移动”所有其他现有的元素转发,我想这是O(log n)或O(n)?

为什么版本2.2及以上的浏览器支持HTML5 Web Workers?

我正在尝试学习一些关于JavaScript线程的知识。 从教程中,我学到了关于HTML5 API web worker的知识。 该API支持JavaScriptmultithreading。 所以我开始弄清楚如何以及在哪里可以使用这个function。 表单http://caniuse.com/#search=worker 我发现这个API只支持低版本的Android浏览器。 它在Android 2.2及更高版本中不可用。 这个结果是正确的吗?我是这样,是因为性能的考虑? 这个API可用于哪个版本?

Javascript数组声明:new Array(),new Array(3),创build行为不同的数组

考虑这个例子的Javascript代码: a = new Array(); a['a1']='foo'; a['a2']='bar'; b = new Array(2); b['b1']='foo'; b['b2']='bar'; c=['c1','c2','c3']; console.log(a); console.log(b); console.log(c); Firebug控制台中的结果如下: 对于([']'必须通过点击'+'button来扩展): [] a1 "foo" a2 "bar" 对于b: [undefined, undefined] 对于c: ["c1", "c2", "c3"] 我的问题是: 我正确使用数组['key'] ='value'语法吗? 为什么数组b不按预期工作? 为什么控制台中的数组a和c显示不同? 也似乎jQuery是无法遍历数组a和它的.each()方法。 你可以推荐Javascript数组行为的任何好的教程? 注意: Google Chrome的Firebug仅显示数组“a”的[],而没有选项来展开它。 编辑:好吧,似乎在Javascript中的数组只有数字键,所以添加一个string作为键名称使一个对象数组。 但为什么不jQuery的。每个工作呢? $.each(a, function () { alert ('derp'); }) 该代码附加到脚本中,不会产生警报。

如何取消jQuery fadeOut()一旦开始?

我有一个基本的div元素来表示一个消息,我显示了几秒钟,然后淡出使用 $('#message').fadeOut(5000); 如果用户将鼠标hover在div上,我希望能够取消淡出。 一旦fadeOut方法开始淡入div,我怎样才能取消淡出? 我现有的代码,如下所示,如果鼠标在显示时进入div,但我需要允许用户在开始淡入淡出之后hover在div上。 $('#message').mouseenter(function() { clearTimeout(this.timeout); }); $('#message').mouseleave(function() { this.timeout = setTimeout("$('#message').fadeOut(5000)", 3000); }); $('#message').fadeIn(2000, function() { this.timeout = setTimeout("$('#message').fadeOut(3000)", 3000); });

在JasmineJStesting中不会触发AngularJS Promisecallback

问题介绍 我试图unit testing一个包装Facebook JavaScript SDK FB对象的AngularJS服务; 然而,testing不起作用,我还没有弄清楚为什么。 另外,当我在浏览器中运行服务代码,而不是使用Karmatesting运行器运行的JasmineJSunit testing时,服务代码就可以工作。 我正在通过$q对象testing一个使用Angular promise的asynchronous方法。 我设置了使用Jasmine 1.3.1asynchronoustesting方法asynchronous运行的testing ,但waitsFor()函数永远不会返回true (请参阅下面的testing代码),它在5秒后超时 。 (Karma不包含Jasmine 2.0asynchronoustestingAPI)。 我认为这可能是因为承诺的then()方法从来没有触发(我有一个console.log()设置来显示),即使我打电话给$scope.$apply()asynchronous方法返回,让Angular知道它应该运行一个摘要循环,并触发then()callback…但我可能是错的。 这是运行testing的错误输出: Chrome 32.0.1700 (Mac OS X 10.9.1) service Facebook should return false if user is not logged into Facebook FAILED timeout: timed out after 5000 msec waiting for something to happen Chrome 32.0.1700 (Mac OS X […]

JavaScript和JavaScript之间的区别

大家都知道this在JavaScript中,但也有self在野外遇到的情况下,如在这里 那么, this和JavaScript的self什么区别呢?

什么是最好的方式来跟踪通过JavaScript的forms的变化?

我想通过JavaScript跟踪表单中input的变化。 我的意图是(但不限于) 只有当事物发生变化时才启用“保存”button 如果用户想要closures该页面并且没有保存,则提醒 想法?