小编Joh*_*nGa的帖子

为什么'NaN'和'Undefined'不是Javascript中的保留关键字?

我们可以做的:

NaN = 'foo' 
Run Code Online (Sandbox Code Playgroud)

以及

undefined = 'foo'
Run Code Online (Sandbox Code Playgroud)

为什么他们不是保留关键字?

编辑1(DownVoters):

  1. 我认为它应该实现,以确保当我们寻找一个number,它是一个number:)

  2. 如果我们应该使用IsNaN()typeof为什么NaNundefined需要?

javascript keyword

15
推荐指数
2
解决办法
4102
查看次数

为什么当年份小于1884年时,它会消除几毫秒?

DateTime start = new DateTime().withYear(1884);
System.out.println(start);
System.out.println(start.minusYears(1));
Run Code Online (Sandbox Code Playgroud)

产量

1884-01-11T08:26:10.234-08:00
1883-01-11T08:26:10.234-07:52:58
Run Code Online (Sandbox Code Playgroud)

编辑1:我不对.它没有删除1.02秒

DateTime start = new DateTime().withYear(1884);
DateTime other = start.minusYears(1);
long diffMs = start.getMillis() - other.getMillis(); //31536422000
Run Code Online (Sandbox Code Playgroud)

编辑2:

有趣的是,我对输出感到困惑toString();- (-08:00,-07:52:58)

编辑3:

使用Java Calendar,我看不出任何差异:

Calendar cal = Calendar.getInstance();
cal.set(start.getYear(), 
        start.getMonthOfYear(), 
        start.getDayOfMonth(), 
        start.getHourOfDay(), 
        start.getMinuteOfHour(), 
        start.getSecondOfDay());
System.out.println(cal.getTime());

cal = Calendar.getInstance();
cal.set(start.getYear()- 1, 
        start.getMonthOfYear(), 
        start.getDayOfMonth(), 
        start.getHourOfDay(), 
        start.getMinuteOfHour(), 
        start.getSecondOfDay());
System.out.println(cal.getTime());
Run Code Online (Sandbox Code Playgroud)

输出:

Mon Feb 11 18:46:42 PST 1884
Sun Feb 11 18:46:42 PST 1883
Run Code Online (Sandbox Code Playgroud)

java date jodatime

13
推荐指数
1
解决办法
393
查看次数

如何检查'调试器;' 关键字存在?

有时一些开发人员忘记删除debugger;javascript代码,并在IE上产生javascript错误.if(window.console){console.log('foo');}如果调试器存在,您如何检查(如控制台:)

顺便说一句:我不想检测浏览器是否是IE,如果可能我想要一个通用的方法谢谢,

javascript

10
推荐指数
2
解决办法
5141
查看次数

不推荐使用MapReduceBase和Mapper

public static class Map extends MapReduceBase implements Mapper
Run Code Online (Sandbox Code Playgroud)

MapReduceBase,MapperJobConfHadoop 0.20.203中弃用.

我们现在应该怎么用?

编辑1 - 对于MapperMapReduceBase,我发现我们只需要扩展Mapper

public static class Map extends Mapper
            <LongWritable, Text, Text, IntWritable> {
  private final static IntWritable one = new IntWritable(1);
  private Text word = new Text();

  public void map(LongWritable key, Text value, 
         OutputCollector<Text, IntWritable> output, 
         Reporter reporter) throws IOException {
    String line = value.toString();
    StringTokenizer tokenizer = new StringTokenizer(line);
    while (tokenizer.hasMoreTokens()) {
      word.set(tokenizer.nextToken());
      output.collect(word, one); …
Run Code Online (Sandbox Code Playgroud)

java hadoop mapreduce

10
推荐指数
1
解决办法
9538
查看次数

Javascript中的const关键字范围

1. >>> const a = 2
2. >>> var a = 3
3. >>> a = 4
4. >>> a // print 2
Run Code Online (Sandbox Code Playgroud)

为什么允许操作线3?const似乎比没有任何关键字更"全局"......

javascript const

10
推荐指数
2
解决办法
9664
查看次数

将值与'undefined'进行比较的最佳方法是什么?

之间有什么区别吗?

var a;
(a == undefined)
(a === undefined)
((typeof a) == "undefined")
((typeof a) === "undefined")
Run Code Online (Sandbox Code Playgroud)

我们应该使用哪一个?

javascript

9
推荐指数
1
解决办法
869
查看次数

超级测试,测试安全的REST API

我正在编写一个受API保护的REST API的集成测试jwt.一个API操作POST /user/token返回jwt给定的a username和a password,然后该令牌用于操作列表,例如:

GET /user/:id
Run Code Online (Sandbox Code Playgroud)

路由使用的位置jwt({secret: secret.secretToken}),因此令牌包含在http标头中Authorization.

使用超级测试进行测试时,我可以进行嵌套测试,但我想首先获取令牌,然后使用此令牌进行其他操作测试.

POST /user/token => 12345
GET /user/:id, `Authorization Bearer 12345`
GET /user/:foo, `Authorization Bearer 12345`
Run Code Online (Sandbox Code Playgroud)

如何避免为每个操作测试生成新令牌(见下文),但只使用一个由POST/user/token生成的令牌.

it('should get a valid token for user: user1', function(done) { 
  request(url)
    .post('/user/token')
    .send({ _id: user1._id, password: user1.password })
    .expect(200) // created
      .end(function(err, res) {
        // test operation GET /user/:id
Run Code Online (Sandbox Code Playgroud)

node.js jwt supertest express-jwt

8
推荐指数
1
解决办法
9959
查看次数

是否有可能编写一个比Perl中的等效脚本更快的shell脚本?

我在Perl和shell中编写了多个脚本,并且比较了实际的执行时间.在所有情况下,Perl脚本比shell脚本快10倍以上.

所以我想知道是否有可能编写一个比Perl中的同一个脚本更快的shell脚本?为什么Perl比shell更快,尽管我在Perl脚本中使用系统函数?

shell perl performance benchmarking

7
推荐指数
1
解决办法
4394
查看次数

显示小时,日,月和年的相对时间

我写了一个函数

toBeautyString(epoch) : String
Run Code Online (Sandbox Code Playgroud)

给出一个epoch,返回一个字符串,显示从现在开始的小时和分钟的相对时间

例如:

// epoch: 1346140800 -> Tue, 28 Aug 2012 05:00:00 GMT 
// and now: 1346313600 -> Thu, 30 Aug 2012 08:00:00 GMT
toBeautyString(1346140800) 
-> "2 days and 3 hours ago"
Run Code Online (Sandbox Code Playgroud)

我现在想要将此功能扩展到月份和年份,因此它将能够打印:

2 years, 1 month, 3 days and 1 hour ago
Run Code Online (Sandbox Code Playgroud)

只有没有任何外部库的epoch.此功能的目的是为用户提供更好的方式来显示过去的时间.

我发现这个:计算C#中的相对时间,但粒度不够.

function toBeautyString(epochNow, epochNow){
    var secDiff = Math.abs(epochNow - epochNow);
    var milliInDay = 1000 * 60 * 60 * 24;
    var milliInHour = 1000 * 60 * 60;

    var …
Run Code Online (Sandbox Code Playgroud)

algorithm time

7
推荐指数
1
解决办法
1906
查看次数

StringBuilder在Java中初始化

我需要使用这个方法,在查看源代码之后,我注意到一个StringBuilder不熟悉的初始化(我总是使用no-argument构造函数StringBuilder,ie new StringBuilder()).

在方法中:

StringBuilder sb = new StringBuilder(items.size() << 3);
Run Code Online (Sandbox Code Playgroud)

来自JavaDoc:

java.lang.StringBuilder.StringBuilder(int capacity)

构造一个字符串构建器,其中没有字符和capacity参数指定的初始容量.

为什么这里需要换班?

源代码:

/** Creates a backslash escaped string, joining all the items. */
  public static String join(List<?> items, char separator) {
    StringBuilder sb = new StringBuilder(items.size() << 3);
    boolean first=true;
    for (Object o : items) {
      String item = o.toString();
      if (first) {
        first = false;
      } else {
        sb.append(separator);
      }
      for (int i=0; i<item.length(); i++) {
        char …
Run Code Online (Sandbox Code Playgroud)

java stringbuilder bit-manipulation

7
推荐指数
2
解决办法
4140
查看次数