js日常遇到的问题

1.setTimout第一个参数可以是函数,也可以是字符串,当传入字符串时,就会有内存泄漏



2.ajax请求时,需要设置请求超时,不然如果后端一直不返回结果,这个进程就一直存在,特别我们还在轮询,这个对内存的消耗非常大

  1. function.length是函数参数的length
    4.当我们直接将函数参与其他的计算时,函数会默认调用toString方法,直接将函数体转换为字符串参与计算。
function fn() { return 20 }
console.log(fn + 10);     // 输出结果 function fn() { return 20 }10

但是我们可以重写函数的toString方法,让函数参与计算时,输出我们想要的结果。

function fn() { return 20; }
fn.toString = function() { return 30 }

console.log(fn + 10); // 40

除此之外,当我们重写函数的valueOf方法也能够改变函数的隐式转换结果。

function fn() { return 20; }
fn.valueOf = function() { return 60 }

console.log(fn + 10); // 70

当我们同时重写函数的toString方法与valueOf方法时,最终的结果会取valueOf方法的返回结果。

function fn() { return 20; }
fn.valueOf = function() { return 50 }
fn.toString = function() { return 30 }

console.log(fn + 10); // 60

你可能感兴趣的:(js日常遇到的问题)