摘要: 几乎在所有的高级编程语言当中都存在自增自减这个操作,都知道“j= i++”的意思是先把i的值先付j,然后i自增,++i则是先自增后赋值,但是在更深层的程序里的运行模式却不是我们所想的那样。下面来探讨一下这个经典的用法在if(){}else{}条件判断语句中的运行机制:1.作为单独语句存在时int i = 0; if(i++){code}里面的code会执行么?no!因为编译器会先执行判断i是否大于0,在执行i++,而现在i的初始值是0,所以里面的code是不会执行的。int i = 0; if(++i){code}此时,编译器会先执行自增操作,再判断i是否大于0的操作,code正常执行。2.. 阅读全文
posted @ 2012-09-21 18:15 andy joe专注web前端 阅读(281) 评论(0) 推荐(0)
摘要: 三、JavaScript函数妖怪级欢迎来到妖怪级函数授课区,在这里会交给你如何淡定自如地面对老怪。。。3.1 Function类在JavaScript运行时中有一个内建的类叫做Function,用function关键字声明一个函数其实是创建Function类对象的一种简写形式,所有的函数都拥有Function类所有的方法,例如call、apply、bind等等,可以通过instanceof关键字来验证这个说法。既然Function是一个类,那么它的构造函数就是Function(它本身也是Function类的对象),应该可以通过new关键字来生成一个函数对象。第一个妖怪来了,那就是如何用Func 阅读全文
posted @ 2012-09-21 16:19 andy joe专注web前端 阅读(148) 评论(0) 推荐(0)
摘要: 二、JavaScript函数进阶2.1 匿名函数和嵌套函数在JavaScript可以声明一个没有名称的函数,称为匿名函数(Anonymouse Function)。同时JavaScript还允许在函数内部声明函数,称为嵌套函数(Nested Function),嵌套函数的作用域为整个父函数。在前面函数声明的部分就看到了匿名函数和嵌套函数的一种用法,由于匿名函数没有名称,不会引入新的变量污染上下文环境,而且会带来新的变量作用域,因此匿名函数常被用来防止全局环境污染。JavaScript运行时中有一个特殊的全局环境(global object),这个对象上面存放全局的函数和变量,实际开发中经常会使 阅读全文
posted @ 2012-09-21 16:13 andy joe专注web前端 阅读(185) 评论(0) 推荐(0)
摘要: 简介在很多传统语言(C/C++/Java/C#等)中,函数都是作为一个二等公民存在,你只能用语言的关键字声明一个函数然后调用它,如果需要把函数作为参数传给另一个函数,或是赋值给一个本地变量,又或是作为返回值,就需要通过函数指针(function pointer)、代理(delegate)等特殊的方式周折一番。而在JavaScript世界中函数却是一等公民,它不仅拥有一切传统函数的使用方式(声明和调用),而且可以做到像简单值一样赋值、传参、返回,这样的函数也称之为第一级函数(First-class Function)。不仅如此,JavaScript中的函数还充当了类的构造函数的作用,同时又是一个 阅读全文
posted @ 2012-09-21 16:01 andy joe专注web前端 阅读(176) 评论(0) 推荐(0)
摘要: JavaScript函数像一般语言一样也是遵循先声明后使用的原则,函数名只能包含字母、数字、下划线或$,且不能以数字开头。函数常见的声明方式有以下两种:// 直接声明函数myfuncfunction myfunc(/* arguments */) {}// 把匿名函数赋值给本地变量myfuncvar myfunc = function(/* arguments */) {}注意,上面两种函数声明方式存在细微的差别:第一种方式在声明时就是一个命名的函数,无论是声明在调用之前、调用之后,甚至是不会执行到的位置(例如return语句之后或是永远不会为真的分支里),都在整个作用域可访问;第二种方式是通 阅读全文
posted @ 2012-09-21 15:46 andy joe专注web前端 阅读(141) 评论(0) 推荐(0)