通过在JavaScript中添加数组将数字转换为字符串

时间:2016-11-04 20:57:21

标签: javascript casting

在JavaScript中:

var stringVar = 12345 + []

将数字转换为字符串。

小型演示:https://jsfiddle.net/ce9bjcwo/

为什么会这样?

3 个答案:

答案 0 :(得分:1)

由于DATA SEGMENT MSG1 DB 10,13,"ENTER THE FIRST NUMBER: $" MSG2 DB 10,13,"ENTER THE SECOND NUMBER: $" MSG3 DB 10,13,"ANSWER: $" ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX LEA DX,MSG1 MOV AH,09H INT 21H MOV AH,01H INT 21H CALL INPUT8 MOV CL,AL ROL CL,04H MOV AH,01H INT 21H CALL INPUT8 ADD CL,AL LEA DX,MSG2 MOV AH,09H INT 21H MOV AH,01H INT 21H CALL INPUT8 MOV BL,AL ROL BL,04H MOV AH,01H INT 21H CALL INPUT8 ADD BL,AL ADD CL,BL MOV BL,CL ROL CL,04H AND CL,0FH LEA DX,MSG3 MOV AH,09 INT 21H CALL OUTPUT8 MOV CL,BL AND CL,0FH CALL OUTPUT8 INPUT8 PROC SUB AL,30H RET ENDP OUTPUT8 PROC ADD CL,30H MOV DL,CL MOV AH,02 INT 21H RET ENDP MOV AH,4CH INT 21H ENDS END START 它在尝试连接时将其转换为字符串表示形式,并且由于12345不是字符串,因此它的类型转换为1。

<强>示例:
Array.prototype.toString() - &gt; [1,2].toString()
"1,2" - &gt; [].toString()
"" - &gt; 12345 + ""

答案 1 :(得分:1)

这是因为:

无法将+运算符应用于数组,因此Javascript会对数组进行字符串化。由于它是一个空数组,因此将其字符串化为''。然后你有12345 + ''

在javascirpt中,“number”+“string”返回一个字符串,将数字转换为字符串并将+视为连接运算符。

答案 2 :(得分:1)

这是因为它试图将它连接到一个空字符串 如果你尝试像

这样的话,你可能会更好地理解它
<?php echo $form->field($model->people[0], 'first_name')->textInput(); ?>

令人惊奇的是,如果你做了

  var stringVar = ""+123;

它变成一个整数

然后,如果你评估

stringVar = stringVar - 0 ;

你得到stringVar == '123'

但如果你评估

true

你得到stringVar === '123'

太酷了