我有一个问题。我有一个代码,例如:
var g = "192"; //Global defined//
function g(){
if (g<200){
g.toString();
console.log(typeof(g));
g++;
window.setTimeout("rgb()", 3000);
} else {
return;
}}
$(g);
我运行这段代码,第一次它会返回“String”。但是在第二次运行时,它返回“number”。为什么?在函数本身中有g.toString()方法。为什么它在一次运行后就变成了number?
谢谢你的回答!
3条答案
按热度按时间bvjxkvbb1#
你需要为你的变量指定一个toString,并为你的函数或变量取一个不同的名字,像这样:
查看此fiddle
dluptydi2#
值和函数同名,
g
,需要保存新值:1.您需要为变量和函数选择不同的名称。
1.您需要手动存储和更改变量内容。
3ks5zfa03#
Javascript是松散类型的,如果有一个操作强制将字符串作为数字处理,它将尝试将字符串转换为数字。
从输出中可以看到,当递增时(如a和c),它转换为一个数字,然后递增该数字(从而永久地将其转换为一个数字);然而,当在末尾添加一个数字时(如b和d),它获取该数字的字符串并将其添加到字符串中。
您可以在日志中看到,c的值的递增形式是NaN -这是由于试图将C转换为数字的错误,由于字符。