【发布时间】:2015-02-24 20:08:19
【问题描述】:
假设我有一个字符串(比如分数);
var num = "1/2";
为什么会这样:
var y = num.split(' ');
if (y.length > 1) {
var z = y[1].split('/');
var a = (+y[0] + (z[0] / z[1]));
num = a;
} else {
z = y[0].split('/');
if (z.length > 1) {
a = (z[0] / z[1]);
num = a;
}
}
alert(num); //The alert box shows my variable now as a decimal.
这不是:
function parseFractions(x) {
var y = x.split(' ');
if (y.length > 1) {
var z = y[1].split('/');
var a = (+y[0] + (z[0] / z[1]));
x = a;
} else {
z = y[0].split('/');
if (z.length > 1) {
a = (z[0] / z[1]);
x = a;
}
}
}
parseFractions(num); //Here I call my function.
alert(num);
//The alert box does not even show up. The fraction isn't converted into a decimal.
这基本上是一样的,唯一的区别是在第二个中我尝试将它变成一个函数,所以我每次尝试将分数转换为小数时都不必重复这些代码行。
那我做错了什么?我想用一个函数来完成什么?感谢您对这个问题的任何了解!
【问题讨论】:
-
“按引用传递”和“按值传递”。
-
如果
alert没有出现,则您遇到了运行时错误。这可能是一个简单的问题,如果您learn how to debug JavaScript,您可以自己解决。设置断点、检查变量……不难发现代码中发生了什么。 -
Uncaught type error: undefined is not a function让我找到它的来源
标签: javascript function decimal fractions