我想知道如果数字小于10,是否可以在JavaScript中使用2位数字?
例如
10,9,8,7,6等等 10,09,08,07,06 as"数字类型"
是的,当数字小于10时,可以显示2位数字作为"字符串数据类型"。
if(number < 10) {
console.log(number) //number
number = "0" + number;
console.log(number) //string
}
但我想将它用作数字数据类型,以便我可以使用
if(number == 01) {
//some code here
}
有可能吗?
答案 0 :(得分:6)
ParseInt语法
parseInt(string,radix);
参数
<强>字符串强> 要解析的值。如果string不是字符串,那么 它被转换为一个字符串(使用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);
}
在控制台中查看
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
答案 1 :(得分:2)
它会起作用,但它不会做你想做的事。带前导零的数字是八进制数字的文字(位置编号系统,基数为8)。例如:
071 == 71
=> false
071 == 57
=> true
答案 2 :(得分:1)
它适用于parseInt。默认情况下它的基数为10.所以即使09也没问题,但正如@deceze所指出的那样明确使用基数10更好:
var number = "09";
var decimal = parseInt(number, 10);
if(decimal == 09) {
alert("OK: " + decimal)
} else {
alert("PROBLEM: " + decimal);
}
&#13;
答案 3 :(得分:0)
二进制或十进制01仍然是一个。
<!DOCTYPE html>
<html>
<head>
<style>
html,
body {
box-sizing: border-box;
font: small-caps 500 16px/1.4'Consolas';
width: 100vw;
height: 100vh;
background: #222;
color: lime;
line-height: 1;
}
*,
*:before,
*:after {
box-sizing: inherit;
margin: 0;
padding: 0;
}
fieldset {
margin: 1.5em auto;
padding: 5px;
min-width: 100px;
max-width: 50%;
border: 3px ridge green;
border-radius: 8px;
}
legend {
font-size: 1.5rem;
}
input {
width: 3ch;
padding: 2px 1px;
border: 2px inset green;
border-radius: 4px;
background: #000;
font-size: 1.1rem;
color: lime;
font: inherit;
}
#msg {
color: #00FA9A;
}
</style>
</head>
<body>
<fieldset>
<legend>zer00ne</legend>
<input id="inp1" oninput="bin(this.value);" />
<input id="out1" readonly/>
<span id="msg">Enter 01</span>
</fieldset>
<script>
function bin(x) {
var msg = document.getElementById('msg');
var y = document.getElementById('out1');
var z = parseInt(x, 2);
y.value = z;
msg.innerHTML += ", binary or decimal I'm number One";
}
</script>
</body>
</html>
&#13;