settimeout里面函数有无双引号的区别

在写定时器时很容易搞混,所以记下防止忘记。

双引号中的作用域不捕捉局部变量,不用双引号包着的是捕捉局部作用域

 1        var a = function()
 2     {
 3         alert(1111)
 4     }
 5     function abc()
 6     {
 7         var a= function ()
 8         {
 9             alert(2222)
10         }
11         setTimeout("a()",3000)//111
12         setTimeout(a,3000)//222
13     }
14     abc()

想用双引号的写法,就要把函数放在全局环境中。

当然还可以用匿名函数的写法

1   setTimeout(function(){alert(2222)},3000)//222

如果是没有双引号的,又写了括号

1      var a= function ()
2          {
3             alert(2222)
4         }
5       //这样导致直接执行并且只指向一次
6       setTimeout(a(),3000)
时间: 2025-01-18 14:53:51

settimeout里面函数有无双引号的区别的相关文章

EL表达式有无双引号的区别

最近做项目时发现原来对EL表达式理解太浅,现在做的是springMVC项目,前端只是简单的JQuery和JSP简单代码,其区别如下: 1.EL表达式引用双引号时,前端自动将其转换为一个字符串,如果不加,其值为一个变量:一般值类型(数字.字符串)时作用没什么区别,如果从后台往前端传输一个集合或数组到前端时,区别就很大,例如后台传值List<String> alist,alist中有两个值1.2,则前端“${alist}”是一个值为“[1,2]”,length为5的字符串,而${alist}为一个

PHP函数 mysql_real_escape_string 与 addslashes 的区别

addslashes 和 mysql_real_escape_string 都是为了使数据安全的插入到数据库中而进行的过滤,那么这两个函数到底是有什么区别呢? 首先,我们还是从PHP手册入手: 手册上addslashes转义的字符是单引号(').双引号(").反斜线(\)与NUL(NULL 字符). mysql_real_escape_string转义的字符并没有被提到,只是说了一句: 注意:mysql_real_escape_string() 并不转义% 和_. 为什么PHP手册没有说呢?因为

PHP函数addslashes和mysql_real_escape_string的区别

转自:http://www.jb51.net/article/49205.htm 这篇文章主要介绍了PHP函数addslashes和mysql_real_escape_string的区别,以及一个SQL注入漏洞介绍,需要的朋友可以参考下 首先:不要使用mysql_escape_string,它已被弃用,请使用mysql_real_escape_string代替它. mysql_real_escape_string和addslashes的区别在于: 区别一: addslashes不知道任何有关My

Python中单引号、双引号和三引号的区别

先说1个双引号与3个双引号的区别,双引号所表示的字符串通常要写成一行如:s1 = "hello,world"如果要写成多行,那么就要使用\ ("连行符")吧, 如s2 = "hello,\world"s2与s1是一样的.如果你用3个双引号的话,就可以直接写了,如下:s3 = """hello,world,hahaha.""" 那么s3实际上就是"hello,\nworld,\n

setTimeout和setImmediate以及process.nextTick的区别

在javascript中我们了解到了setTimeout和setInterVal函数事件队列(任务队列)的相关知识,除了setTimeout和setInterval这两个方法外,Node.js还提供了另外两个与"任务队列"有关的方法:process.nextTick和setImmediate.它们可以帮助我们加深对"任务队列"的理解. setTimeout() 首先我们看看setTimeout(setInterVal和setTimeout函数区别只是执行次数)函数,

linux shell 单引号 双引号 反引号的区别

一.单引号和双引号 首先, 单引号和双引号,都是为了解决中间有空格的问题. 因为空格在linux中时作为一个很典型的分隔符,比如 string1=this is a string,这样执行就会报错.为了避免这个问题,因此就产生了单引号和双引号.他们的区别在于,单引号将剥夺其中的所有字符的特殊含义,而双引号中的 '$'(参数替换)和'`'(命令替换)是例外.所以,两者基本上没有什么区别,除非在内容中遇到了参数替换符$和命令替换符`. 所以下面的结果:num=3echo ‘$num’$numecho

Bash编程中变量有无双引号探秘

对于一般的变量,有无双引号效果是一样的,如下所示: $ sport="marathon" $ echo $sport marathon $ echo "$sport" marathon 那么,对于二般的变量,就有差别了,如下: $ cat sports.txt walking running swimming singing drawing dancing basketball volleyball soccer $ sports=$(cat sports.txt)

检测某个方法是否属于某个类中--解析php函数method_exists()与is_callable()的区别

php函数method_exists() 与is_callable()的区别在哪?在php面相对象设计过程中,往往我们需要在调用某一个方法是否属于某一个类的时候做出判断,常用的方法有 method_exists()和is_callable() 相比之下,is_callable()函数要高级一些,它接受字符串变量形式的方法名作为 第一个参数,如果类方法存在并且可以调用,则返回true.如果要检测类中的方法是否能被调用,可以给函数传递一个数组而不是类的方法名作为参数.数组必须包含对象或类名,以将其作

PHP 单双引号的区别

PHP中单双引号的区别 "" 双引号里面的字段会经过编译器解释,然后再当作HTML代码输出.'' 单引号里面的不进行解释,直接输出.所以在效率上 单引号比双引号要快了. 例如:$abc = 'my name is tome';echo $abc //结果是:my name is tomecho '$abc' //结果是:$abcecho "$abc" //结果是:my name is tom PHP引号使用原则1.字符串的值用引号2.PHP中尽量用单引号,HTML代