1、
function add (str1, str2) {
let len1 = str1.length;
let len2 = str2.length;
// let len = len1<len2 ? len1 : len2;
let len = Math.max(len1, len2);
let res = '';
let jin = 0;
for (let i = 0; i < len; i++) {
let ad1 = str1.charAt(len1 - i - 1) ;
let ad2 = str2.charAt(len2 - i - 1) ;
//str1.charAt(-1)==='';Number('')===0;
let sum = Number(ad1) + Number(ad2) + jin;
res = sum % 10 + res;
jin=sum>9
// jin = Math.floor(sum / 10);
}
return res.replace(/^0+/, '');
};
2、
~~按位取反再取反:简单一点就是将一些变量转化为Number(数字)类型的;
var a='123';
console.log(~~a); //输出123
//字符串中带了其他字母,符号,或者其他除数字外的东西,一律输出 Number类型的0
var a='asd';
console.log(~~a); //输出0
//任何boolen类型的,如果为TRUE则输出1,FALSE输出0;
var a=1==1;
console.log(~~a);//输出1
//特殊类型,转化为Boolean是true的输出1,转化为boolean是false的输出0;
var a=undefined;
console.log(~~a);//输出0
var b=!undefined;
console.log(~~b);//输出1
function addBigNumber(a, b) {
var res = '',
temp = 0;
a = a.split('');
b = b.split('');
while (a.length || b.length || temp) {
temp += ~~a.pop() + ~~b.pop();
res = (temp % 10) + res;
temp = temp > 9;
}
return res.replace(/^0+/, '');
}