小编exe*_*ook的帖子

为什么"使用严格"会在此示例中提高性能10倍?

扩展String.prototype性能之后,我真的很感兴趣,因为只需添加"use strict"一个String.prototype方法就可以提高性能10倍.该解释BERGI是短暂的,并没有向我解释.为什么两种几乎相同的方法之间存在如此巨大的差异,只是在"use strict"顶部有所不同?你能更详细地解释一下这背后的理论吗?

String.prototype.count = function(char) {
  var n = 0;
  for (var i = 0; i < this.length; i++)
    if (this[i] == char) n++;
  return n;
};

String.prototype.count_strict = function(char) {
  "use strict";
  var n = 0;
  for (var i = 0; i < this.length; i++)
    if (this[i] == char) n++;
  return n;
};
// Here is how I measued speed, using Node.js 6.1.0

var STR = …
Run Code Online (Sandbox Code Playgroud)

javascript performance

127
推荐指数
1
解决办法
5054
查看次数

C/C++ NaN常数(字面值)?

这可以分配NaN给一个doublefloat在C/C++中吗?就像你在JavaScript中一样:a = NaN.所以稍后您可以检查变量是否为数字.

c++ nan

100
推荐指数
4
解决办法
8万
查看次数

clang:如何列出支持的目标架构?

目前我对ARM一般感兴趣,特别是iphone/android目标.但我只想更多地了解铿锵声,因为它感觉在未来几年中扮演重要角色.

我试过了

clang -cc1 --help|grep -i list
clang -cc1 --help|grep arch|grep -v search
clang -cc1 --help|grep target

 -triple <value>         Specify target triple (e.g. i686-apple-darwin9)
Run Code Online (Sandbox Code Playgroud)

我知道clang有-triplet参数,但是如何列出所有可能的值呢?我发现clang在交叉编译方面与gcc非常不同,在GCC世界中你应该为所有东西都有单独的二进制文件,比如PLATFORM_make或PLATFORM_ld(i*86-pc-cygwin i*86 - * - linux-gnu等.http: ://git.savannah.gnu.org/cgit/libtool.git/tree/doc/PLATFORMS)

在clang世界中,它只有一个二进制文件(正如我在一些论坛上看到的那样).但是如何获得支持的目标列表?如果我的目标不支持我的发行版(linux/windows/macos/whatever),我怎么能得到支持更多平台的那个?

如果我SVN最新铿锵如下:

svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
Run Code Online (Sandbox Code Playgroud)

我会获得大多数平台吗?看起来Clang并没有立即考虑交叉编译,但是因为它基于llvm,它理论上应该是非常交叉友好的?谢谢!

llvm clang

81
推荐指数
6
解决办法
7万
查看次数

为什么'ABC'.replace('B','$`')给AAC

为什么这个代码打印AAC而不是预期A$`C

console.log('ABC'.replace('B', '$`'));
Run Code Online (Sandbox Code Playgroud)

==>

AAC
Run Code Online (Sandbox Code Playgroud)

以及如何使它达到预期的效果?

javascript regex

70
推荐指数
2
解决办法
3065
查看次数

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

Node.js格式化控制台输出

是否有一种简单的内置方式将格式化数据输出到Node.js中的控制台?

缩进,向左或向右对齐字段,添加前导零?

console node.js

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

如何让Git在控制台窗口中正确显示UTF-8编码的路径名?

我有UTF-8的文件名,git处理它们好,它会正确创建文件,github页面也显示正确.除了它将在下面的控制台中显示它.是否可以在控制台中正确显示git在ASCII 127之外显示UTF-8编码字符?

git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   .gitignore
#       modified:   editfile.js
#       modified:   "\321\203\321\201\321\202\320\260\320\275\320\276\320\262"
#
no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)

UPDATE

我被问到我的语言环境,这里是locale命令的输出

LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

git

52
推荐指数
1
解决办法
8995
查看次数

将0x1234转换为0x11223344

如何以高性能方式将十六进制数0x1234扩展为0x11223344?

unsigned int c = 0x1234, b;
b = (c & 0xff) << 4 | c & 0xf | (c & 0xff0) << 8
        | (c & 0xff00) << 12 | (c & 0xf000) << 16;
printf("%p -> %p\n", c, b);
Run Code Online (Sandbox Code Playgroud)

输出:

0x1234 -> 0x11223344
Run Code Online (Sandbox Code Playgroud)

我需要这个用于颜色转换.用户以0xARGB的形式提供数据,我需要将其转换为0xAARRGGBB.是的,可能有数百万,因为每个都可能是一个像素.1000x1000像素等于一百万.

实际情况更复杂,因为单个32位值包含前景色和背景色.所以0xARGBargb成为:[ 0xAARRGGBB, 0xaarrggbb ]

哦,是的,还有一件事,在实际的应用程序中我也否定了alpha,因为在OpenGL中 0xFF是非透明的,0x00是最透明的,这在大多数情况下是不方便的,因为通常你只需要一个RGB部分并且假设透明度是非本.

c c++ bit-manipulation

48
推荐指数
6
解决办法
3898
查看次数

Node.js支持=>(箭头功能)

Node.js是否支持=> function关键字别名?如果是,从哪个版本开始?如何启用此语言扩展?

(function() { console.log('it works!') })()
Run Code Online (Sandbox Code Playgroud)

(() => { console.log('it works!') })()
Run Code Online (Sandbox Code Playgroud)

javascript node.js

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

为什么[object Object]提到"对象"两次?

[object Object]是JavaScript对象的默认字符串表示形式.

我会明白,如果它只是[Object]或者[object],为什么[object Object]?为什么第一个单词是小写,第二个单词是大写?它是JSON还是JavaScript的一部分?

javascript json object

40
推荐指数
3
解决办法
5294
查看次数