相关疑难解决方法(0)

IE8:parseInt('07')vs parseInt('08')

在IE8中发现一个奇怪的事情:

parseInt('01')
//1
parseInt('02')
//2
parseInt('03')
//3
/*...*/
parseInt('07')
//7
parseInt('08')
//0 !!!
parseIntr('09')
//9 ok
Run Code Online (Sandbox Code Playgroud)

有人可以澄清吗?

javascript parseint internet-explorer-8

6
推荐指数
1
解决办法
3822
查看次数

在javascript中输出Console.log

为什么console.log(00);console.log(01);打印0在浏览器控制台1,而不是00 01?

console.log(00); // prints 0;
console.log(01); // prints 1;
console.log(011); // prints 9;
console.log(0111); // prints 73;
Run Code Online (Sandbox Code Playgroud)

javascript

6
推荐指数
4
解决办法
1692
查看次数

JavaScript setFullYear()方法返回错误的日期

今天早上我注意到了JavaScript setFullYear方法的一个特殊问题.

使用这样的方法时:

d.setFullYear(2012,2,8);
Run Code Online (Sandbox Code Playgroud)

返回正确的值:

Thu Mar 08 2012 10:30:04 GMT+0000 (GMT Standard Time)
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用parseInt方法返回整数,则返回的日期不正确:

d.setFullYear(parseInt("2012"), parseInt("02"), parseInt("08"));
Run Code Online (Sandbox Code Playgroud)

收益:

Wed Feb 29 2012 10:31:30 GMT+0000 (GMT Standard Time)
Run Code Online (Sandbox Code Playgroud)

看来parseInt方法返回的值不正确,但是当我测试它时:

document.write(parseInt("2"));

然后返回正确的值(2)

这里有一个工作小提琴:http://jsfiddle.net/rXByJ/

问题在于parseInt还是setFullYear?

javascript

5
推荐指数
1
解决办法
2941
查看次数

带有前导零的Javascript变量

Javascript与具有前导零的值的行为不同.警报(b) - 打印不同的值.

var a = 67116;
var b = 00015;
alert(a);
alert(b);
Run Code Online (Sandbox Code Playgroud)

我更感兴趣的是知道这里通过javascript在alert(b)中应用了什么转换?(如果我用双引号它们.它们工作正常.)

javascript leading-zero

5
推荐指数
1
解决办法
1904
查看次数

这个时间计算脚本中的奇怪错误?

基本上这个脚本将从EndTime中减去StartTime,使用jQuery插件,html表单以HH:MM格式填充开始和结束时间,输入字段用结果填充,除了一个问题外它有效:

如果开始时间是在08:00到09:59之间,那么它只会返回奇怪的结果 - 结果是精确的10小时,为什么?

所有其他输入正确计算!

function setValue() { 
var startTime = document.getElementById('ToilA'); 
var endTime = document.getElementById('EndHours'); startTime = startTime.value.split(":"); 
var startHour = parseInt(startTime[0]); 
var startMinutes = parseInt(startTime[1]); 
endTime = endTime.value.split(":"); 
var endHour = parseInt(endTime[0]); 
var endMinutes = parseInt(endTime[1]); 
//var hours, minutes; 
var today = new Date(); 
var time1 = new Date(2000, 01, 01, startHour, startMinutes, 0); 
var time2 = new Date(2000, 01, 01, endHour, endMinutes, 0); var milliSecs = (time2 - time1); 
msSecs = (1000); 
msMins = (msSecs * 60); …
Run Code Online (Sandbox Code Playgroud)

javascript math time datetime modulus

4
推荐指数
1
解决办法
194
查看次数

Javascript,为什么被视为八进制

我将id作为参数传递给javascript函数,因为它来自UI,它是零填充的.但它似乎有(可能)"奇怪"的行为?

    console.log(0000020948);  //20948
    console.log(0000022115);   //9293 which is 22115's octal 
    console.log(parseInt(0000022115, 10));  // 9293 which is 22115's octal
    console.log(0000033959);  //33959
    console.log(20948);  //20948
    console.log(22115); //22115
    console.log(33959); //33959
Run Code Online (Sandbox Code Playgroud)

我怎样才能确保它们解析到正确的数字呢?(十进制)

编辑:

只是让它更清楚:

这些数字来自服务器并且是零填充字符串.我正在为每个人制作一个删除按钮.

喜欢:

function printDelButton(value){
          console.log(typeof value);  //output string 
  return '<a href="#" onclick="deleteme('+value+')"><img src="images/del.png"></a>'
}

and 

function printDelButton(value){
console.log(typeof value); //output numeric
    console.log(value);   //here output as octal .... :S
 }
Run Code Online (Sandbox Code Playgroud)

我尝试过:__CODE__仍然解析为Octal

javascript

4
推荐指数
1
解决办法
600
查看次数

javascript数组的和值?

我看过这个问题的很多不同的变化,但我似乎找不到一个特别适合我正在做的事情.

我有输入字段,由php/mysql查询动态创建.值是数字,它们共享一个共同的类

<?php
   foreach ($garment_sizes as $key =>$value){echo '<input type="number" class="size_select" name="'.$value.'" onchange="qty_update()"/><label class="size_label">'. strtoupper($value).'</label>';
   }
?>
Run Code Online (Sandbox Code Playgroud)

产生的HTML:

<input type="number" class="size_select" name="s" onchange="qty_update()"/>
<label class="size_label">S</label>
<input type="number" class="size_select" name="m" onchange="qty_update()"/>
<label class="size_label">M</label> <!-- etc -->
Run Code Online (Sandbox Code Playgroud)

我想创建一个函数来将所有字段与此类"size_select"相加

function qty_update(){
    var values = $('.size_select').serializeArray();
    //having trouble writing the loop here to sum the array..
}
Run Code Online (Sandbox Code Playgroud)

arrays jquery sum

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

你认为parseInt("08")会回归什么?

可能重复:
JavaScript parseInt八进制错误的变通方法

令人惊讶的是返回0.为什么?什么是获得正确结果的(正确)解决方案?

javascript parsing

3
推荐指数
1
解决办法
3169
查看次数

为什么parseInt("014")出现在12?

可能重复:
JavaScript parseInt八进制错误的变通方法

在解析Int时,似乎应该忽略前导零.这背后的理由是什么?

javascript

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

(obj.length === + obj.length)在underscore.js源代码中= ===后这个+的目的是什么?

在_core方法的underscore.js源代码中,他们使用了obj.length === + obj.length.在第一个其他如果条件.为什么他们使用这个+运算符,它的重要性是什么?

var each = _.each = _.forEach = function(obj, iterator, context) {
if (obj == null) return;
if (nativeForEach && obj.forEach === nativeForEach) {
  obj.forEach(iterator, context);
} else if (obj.length === +obj.length) {
  for (var i = 0, l = obj.length; i < l; i++) {
    if (iterator.call(context, obj[i], i, obj) === breaker) return;
  }
} else {
  for (var key in obj) {
    if (_.has(obj, key)) {
      if (iterator.call(context, obj[key], key, obj) === breaker) return;
    } …
Run Code Online (Sandbox Code Playgroud)

javascript underscore.js

3
推荐指数
1
解决办法
179
查看次数