1. 请修复给定的 js 代码中,函数定义存在的问题
function functions(flag) { if (flag) { function getValue() { return 'a'; } } else { function getValue() { return 'b'; } } return getValue(); }
else中的语句相当于将if中的function重写,因此无论flag为何值,返回的方法始终为重写后的方法。将方法赋值给一个变量,方法就不会被重写,因此才能得到正确的结果。
function functions(flag) { if (flag) { var getValue = function() { return 'a'; } } else { var getValue = function() { return 'b'; } } return getValue(); }
2. 修改 js 代码中 parseInt 的调用方式,使之通过全部测试用例
function parse2Int(num) { return parseInt(num,10); }//按10进制去处理字符串,碰到非数字字符,会将后面的全部无视
parseInt(string, radix) 当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
举例,如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。