如何在 JavaScript 中执行以下操作?
将“1”、“2”、“3”连接成“123”
将“123”转换为 123
加 123 + 100 = 223
将 223 转换为“223”
如何在 JavaScript 中执行以下操作?
将“1”、“2”、“3”连接成“123”
将“123”转换为 123
加 123 + 100 = 223
将 223 转换为“223”
您想熟悉parseInt()
和toString()
。
在你的工具包中有用的是查看一个变量来找出它是什么类型—— typeof
:
<script type="text/javascript">
/**
* print out the value and the type of the variable passed in
*/
function printWithType(val) {
document.write('<pre>');
document.write(val);
document.write(' ');
document.writeln(typeof val);
document.write('</pre>');
}
var a = "1", b = "2", c = "3", result;
// Step (1) Concatenate "1", "2", "3" into "123"
// - concatenation operator is just "+", as long
// as all the items are strings, this works
result = a + b + c;
printWithType(result); //123 string
// - If they were not strings you could do
result = a.toString() + b.toString() + c.toString();
printWithType(result); // 123 string
// Step (2) Convert "123" into 123
result = parseInt(result,10);
printWithType(result); // 123 number
// Step (3) Add 123 + 100 = 223
result = result + 100;
printWithType(result); // 223 number
// Step (4) Convert 223 into "223"
result = result.toString(); //
printWithType(result); // 223 string
// If you concatenate a number with a
// blank string, you get a string
result = result + "";
printWithType(result); //223 string
</script>
"1" + "2" + "3"
或者
["1", "2", "3"].join("")
该加入方法符连接的阵列的物品转换成字符串,将项目间的指定的分隔符。在这种情况下,“分隔符”是一个空字符串 ( ""
)。
parseInt("123")
在ECMAScript 5之前,有必要传递基数为 10 的基数:parseInt("123", 10)
123 + 100
(223).toString()
(parseInt("1" + "2" + "3") + 100).toString()
或者
(parseInt(["1", "2", "3"].join("")) + 100).toString()
r = ("1"+"2"+"3") // step1 | build string ==> "123"
r = +r // step2 | to number ==> 123
r = r+100 // step3 | +100 ==> 223
r = ""+r // step4 | to string ==> "223"
//in one line
r = ""+(+("1"+"2"+"3")+100);
由于 JavaScript 的类型系统,这些问题一直出现。人们在获取数字字符串时认为他们正在获取一个数字。
这里有一些你可能会看到的东西,它们利用了 JavaScript 处理字符串和数字的方式。就我个人而言,我希望 JavaScript 在字符串连接中使用了除+ 之外的其他符号。
步骤(1)将“1”、“2”、“3”连接成“123”
result = "1" + "2" + "3";
步骤(2)将“123”转换为123
result = +"123";
步骤 (3) 加 123 + 100 = 223
result = 123 + 100;
步骤 (4) 将 223 转换为“223”
result = "" + 223;
如果您知道这些工作的原因,您就不太可能遇到 JavaScript 表达式的麻烦。
你可以这样做:
// step 1
var one = "1" + "2" + "3"; // string value "123"
// step 2
var two = parseInt(one); // integer value 123
// step 3
var three = 123 + 100; // integer value 223
// step 4
var four = three.toString(); // string value "223"