Questions tagged «javascript»

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

12
字符串基元和JavaScript中的String对象有什么区别?
取自MDN 字符串文字(用双引号或单引号引起来)和非构造函数上下文中从字符串调用返回的字符串(即,不使用new关键字)是原始字符串。JavaScript自动将基元转换为String对象,以便可以将String对象方法用于基元字符串。在要在原始字符串上调用方法或发生属性查找的情况下,JavaScript将自动包装字符串原始并调用该方法或执行属性查找。 因此,我认为对字符串基元进行(逻辑上)的操作(方法调用)应比对字符串对象进行的操作慢,因为在将字符串基元应用于字符串之前,任何字符串基元都将转换为字符串对象(额外工作)method。 但是在这个测试案例中,结果是相反的。所述码块1的运行速度比较快码块-2 ,两者的码块在下面给出: 代码块1: var s = '0123456789'; for (var i = 0; i < s.length; i++) { s.charAt(i); } 代码块2: var s = new String('0123456789'); for (var i = 0; i < s.length; i++) { s.charAt(i); } 结果在浏览器中会有所不同,但是代码块1总是更快。谁能解释一下,为什么代码块1比代码块2快。

4
TypeScript中的“声明类”和“接口”有什么区别
在TypeScript中,创建.d.ts源声明文件时,这是更可取的,为什么? declare class Example { public Method(): void; } 要么 interface Example { Method(): void; } 我可以说的区别是接口不能具有静态方法,因此您必须为此使用类。两者都不产生任何JS输出,所以也许没关系吗?

8
如何在jQuery中监听并按住?
我希望能够在用户单击按钮时触发一个事件,然后将其按住1000到1500毫秒。 是否有jQuery核心功能或已经启用了此功能的插件? 我应该自己滚吗?我应该从哪里开始?


9
JavaScript的Math.random有多随机?
六年来,我在网站上拥有一个随机数生成器页面。长期以来,它是Google在“随机数生成器”上的第一个或第二个结果,已被用于决定数十个(甚至数百个)讨论论坛和博客上的竞赛和绘图(我知道,因为我在我的网站上看到了引荐来源网络日志,通常可以去看看)。 今天,有人给我发电子邮件告诉我,这可能不像我想的那么随意。她尝试生成非常大的随机数(例如1到10000000000000000000之间),发现它们几乎总是相同的数字。的确,我将函数包装在一个循环中,这样我可以生成数千个数字,并且可以肯定的是,对于非常大的数字,变化仅约为2个数量级。 为什么? 这是循环版本,因此您可以自己尝试一下: http://andrew.hedges.name/experiments/random/randomness.html 它既包含来自Mozilla开发人员网络的直接实现,也包含1997年的一些代码,这些代码我从一个不存在的网页上擦掉(Paul Houle的“中央随机化器1.3”)。查看源代码以了解每种方法的工作原理。 我读过这里和其他地方的约赛特旋转。我感兴趣的是,为什么JavaScript的内置Math.random函数的结果不会有更大的变化。谢谢!
116 javascript  random 


3
Chrome扩展程序-获取DOM内容
我正在尝试从弹出窗口中访问activeTab DOM内容。这是我的清单: { "manifest_version": 2, "name": "Test", "description": "Test script", "version": "0.1", "permissions": [ "activeTab", "https://api.domain.com/" ], "background": { "scripts": ["background.js"], "persistent": false }, "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'", "browser_action": { "default_icon": "icon.png", "default_title": "Chrome Extension test", "default_popup": "index.html" } } 我真的很困惑,背景脚本(持久性事件页:false)还是content_scripts是可行的方法。我已经阅读了所有文档和其他SO帖子,但对我而言仍然没有意义。 有人可以解释为什么我可能会在另一个上使用。 这是我一直在尝试的background.js: chrome.extension.onMessage.addListener( function(request, sender, sendResponse) { …



5
如何使用基于JWT的身份验证处理文件下载?
我正在Angular中编写一个webapp,其中身份验证是通过JWT令牌处理的,这意味着每个请求都带有一个“ Authentication”标头,其中包含所有必要的信息。 这对于REST调用非常有效,但是我不明白如何处理后端托管的文件的下载链接(这些文件位于托管Web服务的同一服务器上)。 我不能使用常规<a href='...'/>链接,因为它们将不带有任何标题,并且身份验证将失败。同样的咒语window.open(...)。 我想到的一些解决方案: 在服务器上生成一个临时的不安全的下载链接 将身份验证信息作为url参数传递并手动处理情况 通过XHR获取数据并保存文件客户端。 以上所有都不令人满意。 1是我现在正在使用的解决方案。我不喜欢它有两个原因:首先,它不是理想的安全方式;其次,它可以工作,但是特别是在服务器上,它需要进行大量工作:要下载某些东西,我需要调用一个生成新的“随机”服务的服务网址,将其存储在某个位置(可能在数据库上)一段时间,然后将其返回给客户端。客户端获取url,并使用window.open或类似的名称。当请求时,新的url应该检查它是否仍然有效,然后返回数据。 2似乎至少要完成同样的工作。 3即使使用可用的库也似乎需要大量工作,并且存在许多潜在问题。(我需要提供自己的下载状态栏,将整个文件加载到内存中,然后要求用户将文件保存在本地)。 但是,该任务似乎是一项非常基本的任务,因此我想知道是否可以使用更简单的方法。 我不一定要寻找“角度方式”的解决方案。普通的Javascript就可以了。


7
对useEffect中的异步函数的React Hook警告:useEffect函数必须返回清除函数,否则不返回任何内容
我正在尝试useEffect示例,如下所示: useEffect(async () => { try { const response = await fetch(`https://www.reddit.com/r/${subreddit}.json`); const json = await response.json(); setPosts(json.data.children.map(it => it.data)); } catch (e) { console.error(e); } }, []); 运行代码段隐藏结果展开摘要 我在控制台中收到此警告。但是我认为异步调用的清理是可选的。我不确定为什么会收到此警告。链接沙箱示例。https://codesandbox.io/s/24rj871r0p

16
如何在React中强制使用挂钩重新渲染组件?
考虑下面的钩子示例 import { useState } from 'react'; function Example() { const [count, setCount] = useState(0); return ( <div> <p>You clicked {count} times</p> <button onClick={() => setCount(count + 1)}> Click me </button> </div> ); } 基本上,我们使用this.forceUpdate()方法强制组件在React类组件中立即重新呈现,如以下示例所示 class Test extends Component{ constructor(props){ super(props); this.state = { count:0, count2: 100 } this.setCount = …

30
如何使用JavaScript将字符串中每个单词的首字母大写?
我正在尝试编写一个函数,该函数将字符串中每个单词的首字母大写(将字符串转换为标题大小写)。 例如,当输入为时"I'm a little tea pot",我希望"I'm A Little Tea Pot"是输出。但是,该函数返回"i'm a little tea pot"。 这是我的代码: function titleCase(str) { var splitStr = str.toLowerCase().split(" "); for (var i = 0; i < splitStr.length; i++) { if (splitStr.length[i] < splitStr.length) { splitStr[i].charAt(0).toUpperCase(); } str = splitStr.join(" "); } return str; } console.log(titleCase("I'm a …

13
jQuery可以提供标签名称吗?
我在HTML页面上有几个具有相同类的元素-但是它们是不同的元素类型。我想在遍历元素时找出元素的标签名称-但.attr不会使用“标签”或“标签名称”。 这就是我的意思。考虑页面上的以下元素: <h1 class="rnd">First</h1> <h2 id="foo" class="rnd">Second</h2> <h3 class="rnd">Third</h3> <h4 id="bar" class="rnd">Fourth</h4> 现在,我想运行类似的代码,以确保所有元素都具有一个ID(如果尚未定义): $(function() { $(".rnd").each(function(i) { var id = $(this).attr("id"); if (id === undefined || id.length === 0) { // this is the line that's giving me problems. // .attr("tag") returns undefined $(this).attr("id", "rnd" + $(this).attr("tag") + "_" + …
115 javascript  jquery 

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.