Questions tagged «javascript»

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




5
Chrome调试器为何认为封闭的局部变量未定义?
使用此代码: function baz() { var x = "foo"; function bar() { debugger; }; bar(); } baz(); 我得到这个意外的结果: 当我更改代码时: function baz() { var x = "foo"; function bar() { x; debugger; }; bar(); } 我得到了预期的结果: 另外,如果eval内部函数中有任何调用,我可以按自己的意愿访问变量(与传递给的对象无关eval)。 同时,Firefox开发人员工具在两种情况下均具有预期的行为。 Chrome表示调试器的行为不如Firefox方便吗?我已经观察了一段时间,直到并包括41.0.2272.43 beta(64位)。 Chrome的JavaScript引擎是否可以“拉平”功能? 有趣的是,如果我添加内部函数中引用的第二个变量,则该x变量仍未定义。 我了解到,使用交互式调试器时,通常会有范围和变量定义的怪癖,但在我看来,根据语言规范,应该为这些怪癖提供“最佳”解决方案。因此,我很好奇这是否是由于Chrome比Firefox更优化了。以及在开发过程中是否可以轻松禁用这些优化(是否应该在打开开发工具时将其禁用?)。 另外,我可以使用断点和debugger语句来重现此内容。

16
HtmlSpecialChars是否等同于Javascript?
显然,这比我想象的要难找到。而且它是如此简单... 是否有等效于Javascript中内置的PHP htmlspecialchars的函数?我知道自己很容易实现,但是使用内置函数(如果可用)会更好。 对于那些不熟悉PHP的人,htmlspecialchars会将类似的内容<htmltag/>转换为<htmltag/> 我知道这一点escape(),encodeURI()因此不能这样工作。

30
如何在数组中获取唯一值
如何获得数组中唯一值的列表?我是否总是必须使用第二个数组,或者是否有类似于JavaScript中Java哈希表的东西? 我将仅使用JavaScript和jQuery。不能使用其他库。
167 javascript  jquery 

7
为什么在JavaScript中定义函数之前就可以使用它?
即使在不同的浏览器中,此代码也始终有效: function fooCheck() { alert(internalFoo()); // We are using internalFoo() here... return internalFoo(); // And here, even though it has not been defined... function internalFoo() { return true; } //...until here! } fooCheck(); 但是,我找不到关于为什么它应该起作用的单一参考。我首先在John Resig的演示文稿中看到了这一点,但仅被提及。那里或任何地方都没有解释。 有人可以启发我吗?

9
如何为JavaScript Set自定义对象相等性
新的ES 6(和谐)引入了新的Set对象。Set使用的身份算法类似于===运算符,因此不太适合比较对象: var set = new Set(); set.add({a:1}); set.add({a:1}); console.log([...set.values()]); // Array [ Object, Object ] 如何自定义Set对象的相等性以进行深层对象比较?有没有像Java一样的东西equals(Object)?


12
React / JSX动态组件名称
我正在尝试根据组件的类型动态呈现组件。 例如: var type = "Example"; var ComponentName = type + "Component"; return <ComponentName />; // Returns <examplecomponent /> instead of <ExampleComponent /> 我尝试了这里提出的解决方案React / JSX动态组件名称 这给我一个编译时的错误(使用browserify进行gulp)。我使用数组语法的地方应该是XML。 我可以通过为每个组件创建一个方法来解决此问题: newExampleComponent() { return <ExampleComponent />; } newComponent(type) { return this["new" + type + "Component"](); } 但这将意味着为我创建的每个组件提供一种新方法。必须对此问题有一个更优雅的解决方案。 我很乐意提出建议。


14
如何替换div元素内的文本?
我需要动态设置DIV元素内的文本。什么是最好的浏览器安全方法?我有prototypejs和scriptaculous可用。 <div id="panel"> <div id="field_name">TEXT GOES HERE</div> </div> 该函数的外观如下: function showPanel(fieldName) { var fieldNameElement = document.getElementById('field_name'); //Make replacement here }
166 javascript  html  dom 


4
为什么在V8中使用此代码段,<=比<慢?
我正在阅读使用V8打破JavaScript速度限制的幻灯片,并且有一个类似下面代码的示例。我不知道为什么&lt;=比&lt;这种情况要慢,有人可以解释吗?任何意见表示赞赏。 慢: this.isPrimeDivisible = function(candidate) { for (var i = 1; i &lt;= this.prime_count; ++i) { if (candidate % this.primes[i] == 0) return true; } return false; } (提示:质数是长度为prime_count的数组) 快点: this.isPrimeDivisible = function(candidate) { for (var i = 1; i &lt; this.prime_count; ++i) { if (candidate % this.primes[i] == 0) …
166 javascript  v8 

9
在学术CS界,“未打字”是否还意味着“动态打字”?
我正在读一张幻灯片,上面写着“未键入JavaScript”。这与我认为是正确的相矛盾,因此我开始努力尝试以了解更多信息。 JavaScript的所有答案都是非类型化语言吗?他说JavaScript 并不是没有类型的,而是提供了我熟悉和满意的各种形式的静态,动态,强和弱类型的示例,所以这不是走的路。 因此,我问了JavaScript的创建者Brendan Eich,他说: 学术类型使用“无类型”来表示“没有静态类型”。他们足够聪明,可以看到值具有类型(duh!)。上下文很重要。 以学术为重点的计算机科学人员是否使用“未类型化”作为“动态类型化”的同义词(这是否有效?),或者还有更深层的我想念的东西吗?我同意布伦丹(Brendan)的观点,即上下文很重要,但任何引用的解释都将是非常有用的,因为我目前的“继续阅读”书籍都没有在这个主题上发挥作用。 我想详细说明这一点,以便提高我的理解力,因为即使Wikipedia也没有提及这种替代用法(无论如何我还是可以找到)。如果我弄错了,我不想在将来混用该术语或质疑该术语的使用:-) (我也看过一个顶级Smalltalker,说Smalltalk也是“未键入的”,所以它不是一次性的,这使我着手完成此任务!:-))

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.