level 8
你这take 变量跟save变量不会同时有啊,变量作用域问题,
1判断一下是否存在,再进行加减
2变量作用域提升一下,并初始赋值
还有用户输入不一定是数字啊,异常输入都要判断
2020年08月04日 08点08分
2
好,谢谢点播,我再想想,在初学
2020年08月04日 17点08分
level 12
// 写在里面
var balance = 100
var choose = prompt('请输入你需要的操作:\n 1.存钱 \n 2.取钱 \n 3.显示余额 \n 4.退出')
switch (choose) {
case '1':
var take = prompt('里面现存有' + balance + '块钱');
balance += parseInt(take);
alert('里面现存有' + balance + '块钱');
break;
case '2':
var save = prompt('里面现存有' + balance + '块钱');
balance -= parseInt(save);
alert('里面现存有' + balance + '块钱');
break;
case '3':
alert('里面现存有' + balance + '块钱');
break;
case '4':
alert('已退出账户');
}
2020年08月05日 01点08分
3
level 2
字符串take开头是中文 parseInt出来是NaN
2020年08月06日 00点08分
7
level 1
这个不是作用域问题, 作用域的话,用let才会出现undefined, var 的话, 判断语句内的作用域和外层是同一个作用域。这边出现NAN的原因是taken 与 save 并不是纯数字(包括各种进制),所以最后转换出来的是NAN ,balance += NAN == NAN
2020年08月06日 08点08分
10
level 1
当然还有个问题,因为使用的是switch, taken 和 save 只会被定义一个,如果还想按照目前的写法的话,最好是在switch外定义一个默认值。
2020年08月06日 08点08分
11