相关疑难解决方法(0)

我如何解决JavaScript的parseInt八进制行为?

尝试在JavaScript中执行以下操作:

parseInt('01'); //equals 1
parseInt('02'); //equals 2
parseInt('03'); //equals 3
parseInt('04'); //equals 4
parseInt('05'); //equals 5
parseInt('06'); //equals 6
parseInt('07'); //equals 7
parseInt('08'); //equals 0 !!
parseInt('09'); //equals 0 !!
Run Code Online (Sandbox Code Playgroud)

我刚刚学会了JavaScript认为前导零指示八进制整数的困难方式,并且由于没有"8"或"9"在base-8中,该函数返回零.无论喜欢与否,这都是设计的.

解决方法有哪些?

注意:为了完整起见,我即将发布解决方案,但这是我讨厌的解决方案,所以请发布其他/更好的答案.


更新:

JavaScript标准的第5版(ECMA-262)引入了一个突破性的变化,消除了这种行为.Mozilla 写得很好.

javascript integer octal

280
推荐指数
8
解决办法
6万
查看次数

关键字"new"在JavaScript中有什么副作用?

我正在研究jQuery的插件,我收到了这个JSLint错误:

Problem at line 80 character 45: Do not use 'new' for side effects.

(new jQuery.fasterTrim(this, options));
Run Code Online (Sandbox Code Playgroud)

我没有太多运气找到有关此JSLint错误或new可能有任何副作用的信息.

我试过谷歌搜索 "不要使用'新'副作用." 得到0结果.Binging给了我2个结果,但他们都只引用了JSLint源代码.希望这个问题会改变这一点.:-)

更新#1: 以下是上下文的更多来源:

  jQuery.fn.fasterTrim = function(options) {
    return this.each(function() {
      (new jQuery.fasterTrim(this, options));
    });
  };
Run Code Online (Sandbox Code Playgroud)

更新#2: 我使用Starter jQuery插件生成器作为我的插件的模板,其中包含该代码.

javascript jquery jslint jquery-plugins new-operator

20
推荐指数
4
解决办法
5403
查看次数

Javascript"=="运算符谎言

以下让我很困惑.正如评论中所指出的那样,比较似乎是单独工作的,但是当它们组合在一起时却没有

while应该在同一个月的所有日子里运行,然后将i递增1,然后重新开始.

我已经用console.log完成了整个序列,试图找出它,但它没有任何意义.一切似乎彼此相等,但仍未通过while语句中的"=="测试.

  var i=0;
  var currentdate = 0;
  var currentmonth = 0;
  var opensmonth = 0;
  var opens = [
  { "date":"3/30/2006","zip":"30038","latitude":"33.676358","longitude":"-84.15381"},
  { "date":"4/31/2006","zip":"30519","latitude":"34.089419","longitude":"-83.94701"}
  ];
  intid = setInterval("stepthrough()", 250);
  function stepthrough() {
    //figure out first date.
    if (currentdate == 0) { // we've not been run before
      currentdate = opens[0]["date"];
      currentmonth = currentdate.split("/", 1);
      console.log("Current Month: >" + currentmonth +"<");
    }
    console.log("Current month: " + currentmonth + " And opensdate: " + opens[i]["date"].split("/", 1));

    // 
    // TWILIGHT ZONE ENTERED. …
Run Code Online (Sandbox Code Playgroud)

javascript

5
推荐指数
2
解决办法
194
查看次数