赞
踩
在JavaScript中setout中函数不加双引号引发错误的问题-CSDN博客
上篇文章中笔者讲解了settimeout全局函数,关于引用函数时加不加双引号会使得延迟是否正常出现的“bug”
这里再详细阐述一下
首先打开vscode,分别写入如下代码
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>text</title>
- </head>
- <body>
-
- <p>点击按钮,等待 3 秒后弹出 "Hello" 。</p>
-
-
- <button onclick="myFunction()">点我</button>
-
-
- <script>
- var myVar;
-
- function myFunction() {
- myVar = setTimeout(chu(), 3000);
- }
- function chu(){ alert("Hello") ;}
-
- </script>
-
- </body>
- </html>
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>text</title>
- </head>
- <body>
-
- <p>点击按钮,等待 3 秒后弹出 "Hello" 。</p>
-
-
- <button onclick="myFunction()">点我</button>
-
-
- <script>
- var myVar;
-
- function myFunction() {
- myVar = setTimeout("chu()", 3000);
- }
- function chu(){ alert("Hello") ;}
-
- </script>
-
- </body>
- </html>
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>text</title>
- </head>
- <body>
-
- <p>点击按钮,等待 3 秒后弹出 "Hello" 。</p>
-
-
- <button onclick="myFunction()">点我</button>
-
-
- <script>
- var myVar;
-
- function myFunction() {
- myVar = setTimeout(chu, 3000);
- }
- function chu(){ alert("Hello") ;}
-
- </script>
-
- </body>
- </html>
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>text</title>
- </head>
- <body>
-
- <p>点击按钮,等待 3 秒后弹出 "Hello" 。</p>
-
-
- <button onclick="myFunction()">点我</button>
-
-
- <script>
- var myVar;
-
- function myFunction() {
- myVar = setTimeout("chu", 3000);
- }
- function chu(){ alert("Hello") ;}
-
- </script>
-
- </body>
- </html>
可以看到,这四处代码仅有的不同便是settimeout函数中对chu函数的引用方式,其中第一种不能正常延时,其余三种均可正常实现功能
具体演示视频如下
发现了个Javascript中执行settimeout时的小bug?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。