1、如何解决0.1+0.2= 0.30000000000000004

js中浮点数采用IEEE 754标准的双精度浮点数表示。
数字在转换成二进制的时候,会有不能整除的情况,根据精度(双精度浮点数)取64位有效值。再转化为十进制就是0.3000……4.
解决方法:toFixed
let a = 0.11,b = 0.2801,d = 1.002;
let c = a + b + d;
let e = c.toFixed(4);
parseFloat(c.toFixed(10))

2、实现一个数结构的菜单

2.1递归调用 以斐波那契数列为例

var Fibonacci = function(n){   
	if(n <= 2){
    	return 1
     }else{
         return Fibonacci(n - 1) + Fibonacci(n - 2);
     }
}
let x = Fibonacci(10);
console.log("Fibonacci",x)

2.2

树结构菜单实现

参考treeMenu文件夹

3、设计如下一个场景

10个ajax同时发起,全部响应后展示所有返回结果,如果最多容忍3个http请求失败。

4、如何实现 a==1&&a==2

const a = { i: 1, toString: function () { return a.i++; }};
console.log(a == 1 && a == 2 && a == 3);

这里讲的是js的隐式转换,当a为对象时,js会调用toString方法,我们修改了toString方法,每次运行完a会加一,所以等式成立。

隐士转换: 对象 -字符串 -数字

​ 布尔-数字