当前位置: 首页 > Web前端 > HTML5

JavaScript-定时器参数解析及真题

时间:2023-04-05 11:07:31 HTML5

HTML5学派-码农:定时器的第一个参数包含几种不同的写法,可以是函数名,匿名函数,JS代码串,还有一些面试中“函数调用”的写法会出现在问题中。那么,这些不同的写法分别代表什么呢?定时器中出现的第一个参数,作用域是在哪里创建的?定时器第一个参数的不同写法函数名的写法这是最常见的写法,就是在固定的毫秒数后,将这个函数名的函数加入到执行队列中,让它执行.字符串写法当函数有参数时,很多人都会使用这种调用方式。Tips:当参数为文本时,可以采用单引号括双引号,或者双引号括单引号的方式书写。setTimeout和setInterval都可以接受一个字符串(作为第一个参数),但是不推荐这种写法。原因是:为了能够运行,在执行代码的时候会通过eval方法对字符串进行转换。eval方法,它的作用是将字符串作为JS执行。虽然eval可以解决很多问题,效果也很大,但是它也因为性能问题、安全问题、JS中严格模式和非严格模式的区别等问题而广受诟病。由于这些缺点,许多开发人员尽量避免在项目和代码中使用它。匿名函数的写法当函数有参数需要传递,但又不能使用字符串的写法时,这时候匿名函数的写法就派上用场了。函数调用的写法本身就是错误的,在实际开发中几乎不可能发现。当然在面试中偶尔也会以“坑”的形式出现...这里的第一个函数会在timer这行代码执行的时候立即执行,返回h5course函数的返回值,不是函数本身。.如果函数返回默认返回值undefined,setInterval不会报错。第一个参数的作用域属于定时器的第一个参数,默认在全局作用域执行,所以函数中的this会指向window。Tips:TheresultoftheoperationistrueTips:Theresultoftheoperationistrue拿几道面试真题来练习下面的代码,打印结果是什么?Tips:答案请见文末。以下代码运行状态提示:请看文末答案。总之,当要执行的函数没有参数时,可以直接使用函数名来调用。当需要给回调函数传递参数时,不要使用字符串作为参数,使用匿名函数作为参数,在匿名函数内部执行回调函数。第一个参数的函数将在全局范围内执行。面试三道真题第一道题答案:先输出10,然后大概1秒后同时输出10个10。第二个问题:大约1000毫秒(也就是1秒左右)第三个问题:函数执行的时候,两个lis的背景色立即设置为红色。大约5000毫秒后,控制台报错(两个错误),错误内容为“redisnotdefined”happylifeishardeveryday,codeiseasy,butdon'tforgetsmile!版权声明:本图来自《【美国】LizCremer(作者)》一书《你今天真好看》梳理JS知识主干,高效学习JavaScript!