小编T.J*_*der的帖子

Object.is vs ===

我偶然发现了一个使用此比较的代码示例:

var someVar = 0;
Object.is(false, someVar); //Returns false 
Run Code Online (Sandbox Code Playgroud)

我知道false == 0会是true这就是为什么我们有===.

有什么Object.is不同===

javascript ecmascript-6

135
推荐指数
2
解决办法
1万
查看次数

124
推荐指数
4
解决办法
11万
查看次数

JavaScript中的字符串原语和String对象有什么区别?

取自MDN

字符串文字(用双引号或单引号表示)和从非构造函数上下文中的String调用返回的字符串(即,不使用new关键字)是原始字符串.JavaScript会自动将基元转换为String对象,因此可以对原始字符串使用String对象方法.在要在原始字符串上调用方法或发生属性查找的上下文中,JavaScript将自动包装字符串原语并调用方法或执行属性查找.

因此,我认为(逻辑上)字符串基元上的操作(方法调用)应该比字符串对象上的操作慢,因为任何字符串基元method在应用于字符串之前都会转换为字符串对象(额外工作).

但在这个测试案例中,结果却相反.所述码块1的运行速度比较快的块-2代码,两个代码块在下面给出:

代码块-1:

var s = '0123456789';
for (var i = 0; i < s.length; i++) {
  s.charAt(i);
}
Run Code Online (Sandbox Code Playgroud)

代码块-2:

var s = new String('0123456789');
for (var i = 0; i < s.length; i++) {
    s.charAt(i);
}
Run Code Online (Sandbox Code Playgroud)

结果在浏览器中有所不同,但代码块-1总是更快.任何人都可以解释一下,为什么代码块-1代码块-2快.

javascript string object

106
推荐指数
7
解决办法
4万
查看次数

设置JQuery event.preventDefault()时,在window.open上绕过弹出窗口阻止程序

我想在超链接的单击事件上有条件地显示JQuery对话框.

我有条件,例如在条件1上打开一个JQuery对话框,如果不满足条件1,则导航到由'href'标签引用的页面,该标签的点击事件有问题.

我能够在链接的点击事件上调用一个函数.此函数现在通过执行另一个URL(执行我的Spring控制器并返回响应)来检查所述条件.

所有的作品都只有window.open被弹出窗口拦截器阻挡.

$('a[href*=/viewpage?number]').live('click', function(e) {
    e.preventDefault();
    redirectionURL = this.href;
    pageId= getUrlVars(redirectionURL)["number"];
    $.getJSON("redirect/" + pageId, {}, function(status) {
        if (status == null) {
            alert("Error in verifying the status.");
        } else if(!status) {
            $("#agreement").dialog("open");
        } else {
            window.open(redirectionURL);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

如果我e.preventDefault();从代码中删除,popoup阻止程序不会阻止页面,但是对于condition1,它会打开对话框并打开'href'页面.

如果我解决了一个,它会为另一个人带来问题.我无法同时兼顾两种情况.

你能帮我解决这个问题吗?

一旦这个问题得到解决,我还有另外一个问题需要解决,即导航对话的OK事件:)

jquery window.open popup-blocker jquery-callback

96
推荐指数
5
解决办法
17万
查看次数

我为什么要使用ES6课程?

我对ES6课程有很多疑问.

因为我了解如何使用函数和WebComponent,React等.我没有看到使用它的许多好处.

我想知道使用类的好处是什么.我读到public/private/static将成为ES7的一部分.所以我认为目前没有必要使用它.

此外,类是OOP的概念还是它仍然是一个'javascript对象概念'?这是否意味着我不能使用它来修改它class?或者它只是相同的对象,但有两种不同的方式来声明它.

速度有好处吗?如果你有一个像Big Java app这样的大型应用程序,可能更容易维护/理解?

class

信息:这个问题现在是3个半哟.由于TJ Crowder,答案仍然准确.但是Javascript已经发展了很多!风险自负.

javascript ecmascript-6

81
推荐指数
2
解决办法
3万
查看次数

找到下一个匹配的兄弟姐妹的高效,简洁的方法?

坚持官方的jQuery API,有没有更简洁,但不是低效率,发现比其他指定选择相匹配的元素的下一个兄弟的方式nextAll:first伪类?

当我说官方API时,我的意思是不是黑客攻击内部,直接进入Sizzle,在混合中添加一个插件等等(如果我最终必须这样做,那就这样吧,但这不是这个问题的答案. )

例如,鉴于此结构:

<div>One</div>
<div class='foo'>Two</div>
<div>Three</div>
<div class='foo'>Four</div>
<div>Five</div>
<div>Six</div>
<div>Seven</div>
<div class='foo'>Eight</div>
Run Code Online (Sandbox Code Playgroud)

如果我有一个divin this(也许在一个click处理程序中,无论如何)并且想要找到与选择器"div.foo"匹配的下一个兄弟div,我可以这样做:

var nextFoo = $(this).nextAll("div.foo:first");
Run Code Online (Sandbox Code Playgroud)

...它有效(例如,如果我从"五"开始,它跳过"六"和"七"并为我找到"八"),但它很笨重,如果我想匹配任何一个的第一个几个选择器,它变得更加笨拙.(当然,这是一个很多更简洁比原始DOM循环将是...)

我基本上想要:

var nextFoo = $(this).nextMatching("div.foo");
Run Code Online (Sandbox Code Playgroud)

......哪里nextMatching可以接受全系列的选择器.我总是感到惊讶,next(selector)不这样做,但事实并非如此,并且文档清楚它的作用,所以......

我可以随时编写并添加它,但如果我这样做并坚持使用已发布的API,事情会变得非常低效.例如,一个天真的next循环:

jQuery.fn.nextMatching = function(selector) {
    var match;

    match = this.next();
    while (match.length > 0 && !match.is(selector)) {
        match = match.next();
    }
    return match;
};
Run Code Online (Sandbox Code Playgroud)

...... 明显nextAll("selector:first").这并不奇怪,nextAll可以把整个事情交给Sizzle,而Sizzle已经彻底优化了.上面的天真循环创建并丢弃各种临时对象,并且每次都必须重新解析选择器,没有什么大惊喜它很慢.

当然,我不能只是抛出一个:first …

jquery jquery-selectors

75
推荐指数
2
解决办法
2万
查看次数

在黑暗的Visual Studio编辑器中显示插入鼠标光标

我使用了一个背景很暗的颜色主题,除了当鼠标在编辑器窗格上方时VS2010使用默认的插入点鼠标光标,并且光标是黑色的时候效果很好 - 这使得它几乎不可能看到(如果背景实际上是黑色而不是非常黑暗.

是否有一种简单的方法告诉VS2010使用插入点鼠标光标的简易版本?

到目前为止我尝试过的事情:

  1. 我安装了Visual Studio Color Theme Editor(它可以实现UI的其余部分,而不仅仅是编辑器),希望如果我使用其中一个黑暗的主题,它会自动执行此操作,但没有这样的运气.

  2. 我尝试在控制面板中使用不同的鼠标指针,但即使光标在某些情况下发生了变化(例如,如果我选择了一个"非常大"的方案),它仍然是黑色的,几乎看不见.

visual-studio-2010 visual-studio

68
推荐指数
3
解决办法
3万
查看次数

67
推荐指数
3
解决办法
3万
查看次数

当我已经分叉了另一个分叉时,我怎么能分叉原始仓库

我之前已经分叉了jockm/vert.x并向他发送了拉取请求.现在我想分叉vert-x/vert.x(jockm/vert.x的上游)并向它们发送不同的pull请求.但是,当我单击Fork按钮时,毫无疑问我最终会进入jockm/vert.x的tjcrowder/vert.x分支.是否可以同时分叉vert-x/vert.x和jockm/vert.x,以便我可以适当地发送每个pull请求?

我担心答案可能与关于相反情况的这个问题相同("没有GitHub方式,但你可以添加一个远程回购")但我希望不然 - 尤其是因为我看不出答案如何允许我向新的遥控器发送拉取请求.

github git-fork

60
推荐指数
3
解决办法
2万
查看次数

究竟什么-XX:-TieredCompilation呢?

使用java -XX:+PrintFlagsFinal我找到了TieredCompilation旗帜,我在线阅读了一下.

然而,我仍然不知道究竟它设置时会发生什么false.

我知道编译系统支持5个执行级别,基本上分为解释器C1和C2:

  • 0级 - 翻译
  • 级别1 - 具有完全优化的C1(无分析)
  • 级别2 - 具有调用和后备计数器的C1
  • 3级 - 具有完整性能分析的C1(2级+ MDO)
  • 4级 - C2

资料来源:http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/2b2511bd3cc8/src/share/vm/runtime/advancedThresholdPolicy.hpp#l34

两个问题:

(1)通过设置-XX:-TieredCompilation,这些级别中的一些只是禁用了吗?如果是的话,哪个?

(2)是否有一些标志来决定是禁用C1还是C2,还是根本不编译?

java jit jvm

54
推荐指数
3
解决办法
2万
查看次数