“如何转换字符串”;01“;要在JavaScript中使用数字吗?

“如何转换字符串”;01“;要在JavaScript中使用数字吗?,javascript,Javascript,我想知道,如果数字小于10,是否可以在JavaScript中使用2位数字 比如说 10,9,8,7,6等 10,09,08,07,06作为“数字数据类型” 是的,当数字小于10时,可以将数字显示为2位数字作为“字符串数据类型” 可能吗?它与parseInt一起工作。默认情况下,它的基数为10。所以即使是09也可以,但正如@deceze指出的,最好明确使用基数10: var number=“09”; var decimal=parseInt(数字,10); 如果(十进制==09){ 警报(“正常:

我想知道,如果数字小于10,是否可以在JavaScript中使用2位数字

比如说

10,9,8,7,6等

10,09,08,07,06作为“数字数据类型”

是的,当数字小于10时,可以将数字显示为2位数字作为“字符串数据类型”


可能吗?

它与parseInt一起工作。默认情况下,它的基数为10。所以即使是09也可以,但正如@deceze指出的,最好明确使用基数10:
var number=“09”;
var decimal=parseInt(数字,10);
如果(十进制==09){
警报(“正常:+十进制)
}否则{
警报(“问题:+小数点);

}
它会工作,但不会做你想让它做的事。带前导零的数字是八进制数的文字(基数为8的位置数字系统)。例如:

071 == 71
=> false

071 == 57
=> true
更多信息:

ParseInt语法

parseInt(字符串,基数)

参数

字符串 要分析的值。如果字符串不是字符串,则 它被转换为字符串(使用ToString抽象操作)。 忽略字符串中的前导空格

基数介于 2和36表示基数(数学数字中的基数 上述字符串的。指定10作为小数点 人类常用的数字系统。始终指定此参数 消除读者困惑,保证行为可预测。 使用基数时,不同的实现会产生不同的结果 未指定,通常默认值为10

不要做

var number = "09";
if(number == 09) { // here it will not compare the type check the == and ===
    alert("OK: " + number)
} else {
    alert("PROBLEM: " + number);
}
正确答案

var number = "09";
var decimal = parseInt(number,10);
if(decimal === 09) {
    alert("OK: " + decimal)
} else {
    alert("PROBLEM: " + decimal);
}
在控制台中检查此项

数字JavaScript对象是一个允许您工作的包装器对象 用数值表示。使用数字()创建数字对象 构造器。基本类型对象编号是使用 Number()函数

范例

Number('123')     // 123
Number('12.3')    // 12.3
Number('12.00')   // 12
Number('123e-1')  // 12.3
Number('')        // 0
Number(null)      // 0
Number('0x11')    // 17
Number('0b11')    // 3
Number('0o11')    // 9
Number('foo')     // NaN
Number('100a')    // NaN
Number('-Infinity') //-Infinity


二进制或十进制01仍然是一


html,
身体{
框大小:边框框;
字体:小型大写500 16px/1.4“控制台”;
宽度:100vw;
高度:100vh;
背景:#222;
颜色:青柠;
线高:1;
}
*,
*:之前,
*:之后{
框大小:继承;
保证金:0;
填充:0;
}
字段集{
保证金:1.5em自动;
填充物:5px;
最小宽度:100px;
最大宽度:50%;
边框:3个脊绿色;
边界半径:8px;
}
传奇{
字体大小:1.5rem;
}
输入{
宽度:3cm;
填充物:2px 1px;
边框:2件镶嵌绿色;
边界半径:4px;
背景:#000;
字号:1.1rem;
颜色:青柠;
字体:继承;
}
#味精{
颜色:#00FA9A;
}
zer00ne
输入01
功能箱(x){
var msg=document.getElementById('msg');
var y=document.getElementById('out1');
var z=parseInt(x,2);
y、 值=z;
msg.innerHTML+=“,二进制或十进制我是第一”;
}

JavaScript函数中使用01代替1的原因是什么?我能理解是为了显示,但不是为了逻辑。谁不想用数字1作为01呢?它非常时髦:PYou可以创建一个伪类型,该伪类型将返回数字值或字符串值,如果数字值小于10,则显示一个附加0的字符串值。然而,这似乎有些过分,而且有点低效。简单地说,在显示一个数字之前,先通过一个函数将其转换为字符串,如果数字小于10,则追加0。请注意,此处使用的是八进制表示法,这对程序逻辑可能意味着什么!!这不是“错”,它只是碰巧在这种情况下没有副作用。您仍在使用八进制,将其扩展到所有可能的情况可能会导致副作用。如果您想“零位填充”最多3位,该怎么办?
09
不存在,Javascript恰好会将其解释为
9
。同样,我的意思是,你必须意识到这一点,因为这一点对于,例如,
071
。在旧版本的IE中,parseInt(“09”)由于被解释为八进制,因此无法正确解析。这在现代浏览器中已经发生了变化,但这并不是一个在所有情况下都能工作的解决方案。你需要使用parseInt(“09”,10)来代替。现在你只是在故意胡闹…:p这不适用于他的原始代码,因为数字是字符串,所以比较“071”==071
var number = "09";
var decimal = parseInt(number,10);
if(decimal === 09) {
    alert("OK: " + decimal)
} else {
    alert("PROBLEM: " + decimal);
}
var first = 10 ;
var secn = "10";

first == secn // true because both are equal. 
first === secn // both are not equal by type(string and number)



var result = parseInt("010", 10) == 10; // Returns true

var result = parseInt("010") == 10; // Returns false
Number('123')     // 123
Number('12.3')    // 12.3
Number('12.00')   // 12
Number('123e-1')  // 12.3
Number('')        // 0
Number(null)      // 0
Number('0x11')    // 17
Number('0b11')    // 3
Number('0o11')    // 9
Number('foo')     // NaN
Number('100a')    // NaN
Number('-Infinity') //-Infinity