草庐IT

Javascript 为什么 FOR IN 是一种不好的做法?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:JavaScript“For…in”withArrays人们总是告诉我使用FORIN是一种不好的做法,你能告诉我为什么吗?为什么for和i一起使用更好?我一直喜欢使用FORIN,因为我也使用PHP,我经常使用foreach,它与javascript中的FORIN非常相似:)

javascript - 有没有一种简单的方法可以在文本框中单击并拖动滚动?

我有一个带有overflow:auto和滚动条的div,我希望能够拖动内容进行滚动。我不需要能够选择文本。是否有捷径可寻?一个jQuery插件会很好,否则普通的旧JavaScript就可以了。看来我说的还不够清楚。有一个我想要滚动的固定高度的div。我不想拾取滚动条,而是想在文本中沿相反方向单击并拖动。就像在iPhone上一样。就像在Photoshop中按住空格并拖动一样。-------------------|||||||||||||| 最佳答案 这是拖动和滚动div的一个很好的实现https://github.com/mvlan

javascript - 是否有一种与环境无关的方法来检测 Javascript 主机对象?

我正在编写一个Javascript堆栈跟踪库。该库需要检测特定对象或函数是否由程序员创建或是否作为环境的一部分(包括内置对象)存在。宿主对象由于其不可预测的行为而变得有点问题,因此我采用与环境无关的方法来确定Javascript中的特定对象是否是宿主对象(请参阅ECMAScript3-4.3.8)。但是,将宿主对象与native对象和原始值区分开来对其他项目中的程序员很有用,尤其是在无浏览器环境中,所以我想关注这一点,而不是宿主对象在我的库中引起的问题或区分程序员-创建的对象。到目前为止,我只能提出依赖于运行javascript代码的环境的解决方案。例如://IEOnly:doesno

javascript - Web Workers 是一种安全的方式来沙盒不受信任的 JavaScript 代码吗

我想知道WebWorker是否是对不受信任的JavaScript代码进行沙盒处理的安全方法。例如,在绘图应用程序的上下文中,开发人员可以在其中实现新的绘图工具,您可以将他们的代码放入webworker中,并且每当用户单击Canvas时,向他们发送包含光标位置的JSON消息,以及图像数据数组,当脚本完成时,它会传回一条包含新图像数据的消息。这是否安全,或者是否存在我没​​有想到的风险? 最佳答案 DOM对Webworker不可用,但可以访问同源内容,例如indexedDB。请参阅我的相关问题:Canworkersbesecureeno

javascript - 为什么我收到这个 jsfiddle 错误,document.write 可以是 eval 的一种形式

我正在测试我在读书时找到的代码。我在JSfiddle中测试它时遇到此错误,document.write可以是eval的一种形式。vartext=''+'Thisisbold!';vartags=/[^]+|]*)>/g;vara,i;while((a=tags.exec(text))){for(i=0;i我在document.writeln()的两行上都收到了上述JSfiddle警告。 最佳答案 请注意,这只是一个警告-但应该得到尊重。它实际上是由一个名为JSLint的检查器生成的-http://www.jameswiseman.c

javascript - 使用 jQuery 获取 div 的背景图像。是否有一种内置方法可以去除 url() 部分?

我正在使用这段代码获取div的背景图片。varbgImage=$('#content').css('backgroundImage');这将返回url%28http://example.com/images/layout/content-trans.png%29我知道您可以执行element.height()来获取元素的高度而不附加px(parseInt()也可以),所以我想知道jQuery是否有类似的方法来获取实际背景图像减去url()元数据。我想我可以使用正则表达式,例如/url\((.*)\)/,但我宁愿先知道是否有内置方法。 最佳答案

javascript - 为什么几个 javascript 库将 $ 用于一种或另一种用途

我见过几个使用$的javascript库,例如jQuery、mootools、prototype等,甚至一些关于javascript的书籍也建议使用$作为document.getElementById的函数替代品。这只是随机事件吗? 最佳答案 在ECMA规范中实际上将$作为有效变量名引入的原因是为了区分机器生成的代码和人类编写的代码。大多数JS库使用$是因为你很少想命名你的一些变量$,因此它可以避免变量的冲突和意外覆盖。(但是现在因为每个库都在使用$,如果你想使用两个库,你就麻烦了)。

javascript - 有没有一种简单的方法可以将十进制时间(例如1.074分钟)转换为mm :ss format using moment. js?

我想知道是否有一种简单的方法,即使用moment.js库,将十进制时间间隔(例如1.074分钟)转换为其等效的“mm:ss”值。我目前使用的函数在负时间下效果不佳(它以“-m:ss”格式输出值):functionsecTommss(sec){varmin=Math.floor(sec/60)sec=Math.round(Math.abs(sec)%60);returnmin+":"+(sec 最佳答案 这里有一些JavaScript可以满足您的要求:functionminTommss(minutes){varsign=minutes

javascript - 是否有一种树结构或算法可以在树中的各个级别之间进行洗牌?

我有一个我认为很有趣的问题。基本上,我有一个项目列表,其中每个项目都有一组固定的元数据,具有不同的值。例如:项目1:{类型=“文本”,作者=“用户A”,编辑日期=“03/03/2003”项目2:{Type="Table",Author="UserA",EditedDate="04/05/2006"}项目3:{Type="Image",Author="UserB",EditedDate="05/05/2005"}项目4:{类型=“文本”,作者=“用户B”,编辑日期=“05/07/2007”现在,就目前而言,该项目列表已展开并显示在表格中。但是,我们想找到一种方法允许用户在树中浏览它,但增

javascript - 当您不知道属性是什么时,有没有一种方法可以在 javascript 中干净地使用隐藏类?

我有一个(GIS)项目,它向客户显示大量客户数据(数千条记录)。在必要/可能/需要的地方,我们使用服务器端分页/过滤/数据操作,但在某些情况下,将JSON格式的数据发送到客户端并让他们的浏览器进行过滤是最有效的。数据量很大,因此我们对其进行格式化以节省带宽和解析时间-我们发送的结构不是单个对象,而是首先包含属性名称,然后是单个平面数组中的值。在客户端,我们在进行其他处理之前将其重建为更传统的json对象。例如:{attrNames:["foo","bar"],values:[1,2,3,4,...])->[{foo:1,bar:2},{foo:3,bar:4},...]执行此操作的代码