javascript 编码规范 - 正确使用parseInt
题目描述
修改 js 代码中 parseInt 的调用方式,使之通过全部测试用例
示例1
输入
'12'
输出
12
示例3
输入
'0x12'
输出
0
function parse2Int(num) { var type = typeof num; if (type === "number") { if (num % 1 === 0) { return num; } else { return num-num%1; } } else if (type === "string") { var s = "", n0 = "0".charCodeAt(0), n9 = "9".charCodeAt(0); for (var i = 0; i < num.length; i++) { var c = num.charCodeAt(i); if (n0 <= c && c <= n9) { s += num.charAt(i); } else { break; } } function s2i(s) { var n = 0, n0 = "0".charCodeAt(0); for (var i = 0; i < s.length; i++) { n = 10*n + (s.charCodeAt(i)-n0); } return n; } return s2i(s); } return NaN; }
* 流程控制
实现 fizzBuzz 函数,参数 num 与返回值的关系如下:
1、如果 num 能同时被 3 和 5 整除,返回字符串 fizzbuzz
2、如果 num 能被 3 整除,返回字符串 fizz
3、如果 num 能被 5 整除,返回字符串 buzz
4、如果参数为空或者不是 Number 类型,返回 false
5、其余情况,返回参数 num
Input:15 Output: fizzbuzz
function fizzBuzz(num) { if (!num) {return !1;} if (typeof num === "number") { var a = num%3===0, b = num%5==0; return a&&b ? "fizzbuzz" : a ? "fizz" : b ? "buzz" : num; } return !1; }
* 求 a 和 b 相乘的值,a 和 b 可能是小数,需要注意结果的精度问题
input: 3, 0.0001
output: 0.0003
function multiply(a, b) { var d1 = d2 = 0; while (a%1 !== 0) { a *= 10; d1++; } while (b%1 !== 0) { b *= 10; d2++; } var d = d1+d2; return parseFloat(a * b * Math.pow(0.1, d)).toFixed(d); }