数字、布尔值等其他数据类型都可以转换成字符串;一般来说,脚本引擎将根据上下文自动完成这样的转换。例如,当把数字或布尔型变量传给希望接收字符串变量的函数时,就会先隐式地将该数值转换成字符串,再进行处理:
var num_value=35.00; alert(num_value); //预期为一个字符串
此外,如果在赋值语句中要对两个变量执行加法操作,其中一个是字符串变量,而另一个是数字变量,那么数字变量就会自动转换成字符串,接着再连接这两个字符串:
var num_value=35.00; var string_value="This is a number: "+num_value;
什么时候将数字转换成字符串,取决于JavaScript脚本引擎在什么时候处理字符串。例如,如果字符串是序列值中的第一个,那么会把所有数值都当成字符串进行处理:
var strValue="4" + 3 + 1; //结果是 “431” var strValue=4 + 3 + “1” ; //结果是 71
然而,如果使用其他操作符号(除了加号),那么会将字符串转换为数字:
var firstResult="35" - 3; //减法操作,结果是 32 var secondResult= “3”*3 ; //乘法操作,结果是 9 var thirdResult=30/ “3” ; //除法操作,结果是 10
隐式转换取决于操作符和变量的位置,这更加充分地体现了松散类型的危险:数值会随着上下文发生变化,而这取决于引入新数据类型操作的顺序,以及所引用的操作符。
时间: 2024-11-05 15:53:41