Tag: JavaScript

ECMAScript 6文档生成器

我正在寻找EcmaScript 6的文档生成器。我没有find一个。 JSDoc 3没有支持https://github.com/jsdoc3/jsdoc/issues/555 Docco没有发现 SmartComments没有发现,但不太可能,太小的项目 YuiDoc没有发现 NaturalDocs没有发现,但没有专注于JavaScript SphinxDoc没有find 那么真的没有ES 6的文档生成器了吗?

如何检查DOM是否准备好没有框架?

这个问题是如此像在这里和在networking上的其他人 – 如何检查DOM是否加载了Javascript? 但是这里有一个问题: 不使用像jQuery等框架; 不知道你的脚本是否已经通过一个静态放置的<script>标记加载,或者在DOM已经加载后很久以后通过其他一些Javascript加载。 这可以或多或less可靠地完成,并具有跨浏览器兼容性? 补充:让我澄清:我正在写一个独立的.JS文件,可以包含在任意的网页。 我想要在加载DOM 之后执行代码。 但我不知道我的脚本将如何被包括在内。 可以通过放置一个<script>标签(在这种情况下,传统的onload或DOM准备就绪解决scheme将起作用)。 或者可以通过AJAX或其他方式加载,在DOM已经加载之后很久(所以前面提到的解决scheme永远不会被触发)。

移动Safari自动对焦文本字段

在移动Safari中,我无法在设置延迟时间后将焦点放在文本字段上。 我附上了一些展示该问题的示例代码。 如果点击button,则触发.focus(),一切按预期工作。 如果将焦点挂在callback函数上(如setTimeout函数),则只会在移动Safari中失败。 在所有其他浏览器中,有一个延迟,然后焦点发生。 令人困惑的是,即使在移动的Safari浏览器中也会触发“焦点”事件。 这(和〜类似的意见在SO)让我觉得这是一个移动Safari浏览器的错误。 任何指导将被接受。 我已经在模拟器和iPhone 3GS / 4 iOS4上进行了testing。 HTML示例: <!DOCTYPE html> <html lang='en'> <head> <title>Autofocus tests</title> <meta content='width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0' name='viewport'> <meta content='yes' name='apple-mobile-web-app-capable'> </head> <body> <h1> Show keyboard without user focus and select text: </h1> <p> <button id='focus-test-button'> Should focus on input when you click me after […]

如何释放JavaScript中的内存

我正在使用包含大量数据(数百万整数)的canvas和ImageData对象。 所以使用一些数组已经占用了大量的内存(高达300MB)。 有没有办法在不需要的时候释放一些数组的内存? 我试图将undefined分配给该variables。 这样对吗?

任何性能都有利于“locking”JavaScript对象?

JavaScript 1.8.5(ECMAScript 5)增加了一些有趣的方法, 可以通过不同程度的彻底性来防止对传递对象的未来修改 : Object.preventExtensions(obj) Object.seal(obj) Object.freeze(obj) 大概这些的主要观点是要发现错误:如果你知道你不想在某个点之后修改一个对象,那么你可以locking它,这样如果你以后不经意修改它,就会抛出一个错误。 (如果你已经完成了"use strict";那就是)。 我的问题:在V8等现代JS引擎中,使用上述方法locking对象是否有任何性能优势(例如,更快的属性查找,减less的内存占用)? (另见John Resig的很好的解释 – 虽然没有提到性能。)

在Javascript中比较NaN值是否相等

我需要在Javascript中比较两个数值的相等性。 值也可以是NaN 。 我已经拿出这个代码: if (val1 == val2 || isNaN(val1) && isNaN(val2)) … 这工作正常,但它看起来臃肿。 我想使它更简洁。 有任何想法吗?

使用querySelectorAll来检索直接的孩子

我能够做到这一点: <div id="myDiv"> <div class="foo"></div> </div> myDiv = getElementById("myDiv"); myDiv.querySelectorAll("#myDiv > .foo"); 也就是说,我可以成功检索具有class .foo的myDiv元素的所有直接子元素。 问题是,我不得不在select器中包含#myDiv ,因为我在myDiv元素上运行查询(所以显然是多余的)。 我应该能够closures#myDiv ,但是select器不是合法的语法,因为它以>开头。 有谁知道如何编写一个select器,它只是select器运行的元素的直接子元素?

如何使用requestAnimationFrame?

我是新来的animation,但我最近使用setTimeout创build了一个animation。 FPS太低,所以我find了一个解决scheme,使用requestAnimationFrame ,在这个链接中描述。 到目前为止,我的代码是: //shim layer with setTimeout fallback window.requestAnimFrame = (function(){ return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(/* function */ callback){ window.setTimeout(callback, 1000 / 60); }; })(); (function animloop(){ //Get metrics var leftCurveEndX = finalLeft – initialLeft; var leftCurveEndY = finalTop + finalHeight – initialTop; var rightCurveEndX = finalLeft […]

Javascript引擎的优点

我现在对JavaScript引擎感到困惑。 我知道V8是一个大问题,因为它将JavaScript编译为本机代码。 然后我开始阅读关于Mozilla SpiderMonkey的信息 ,从我的理解是用C编写的,并且可以编译JavaScript。 那么这和V8有什么不​​同?如果这是真的,为什么Firefox不这样做? 最后, 犀牛是否真的将JavaScript编译为Java字节码,以便获得Java的所有速度优势? 如果没有,为什么人们在桌面上编写脚本时不能运行V8?

你如何检测express.js应用程序的环境?

如何检测expressJS应用程序运行的环境? (开发,testing,生产?)。 process.env没有任何内容表示环境… 我知道你可以在你的configuration文件中的每个环境下声明variables,但是这对你dynamic加载模块没有帮助。