`
Lewiss
  • 浏览: 19587 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JavaScript 语句/重载/函数/闭包

阅读更多
1. if 语句
    语法 :if (condition) statement1 else statement2
    其中 condition 可以是任何表达式,计算的结果甚至不必是 Boolean 值,ECMAScript 会把它转换成 Boolean 值。这点在 for 语句和 while 语句中的条件判断处理时一样的。

2. break 语句和 continue 语句
    break 语句可以立即退出循环,阻止再次反复执行任何代码,而 continue 语句只是退出当前循环,根据控制表达式还允许继续执行下一次循环。

3. with 语句
    with 语句用于设置代码在特定对象中的作用域。with 语句是运行缓慢的代码段,尤其是在已设置了属性值时,应尽量避免使用。

4. 函数
    在函数声明中不必声明返回类型,可以在函数体中返回任何类型。如果函数无明确的返回值,或调用了没有参数的 return 语句,那么它真正返回的值是 undefined。

5. 无重载
    ECMAScript 总的函数不能重载(当让,重载不会出错),但是如果出现相同名字的函数的话,ECMAScript 将使用最后一个函数,并且所传的参数将方法参数从第一个开始对应。如:
    function add(a,b){ return a + b;}
    function add(a){return 10 + a;}
    add(5,6) 返回的结果是 15。
    因为使用了最后一个函数 add(a),并且传的参数 5 和 6 中, 5 和方法参数 a 对应,所以得到结果是 15。

6. arguments 对象
    ECMAScript 函数虽然没有重载功能,但是 arguments 对象很好的弥补了这点。ECMAScript 声明函数时,不必声明参数序列,当调用该函数并传进参数时,所有这些参数会被自动封装到一个 arguments 的数组对象中,同时该对象又被传进函数里,arguments[0] 对应传进来的第一个参数,依次类推,在函数体内访问 arguments 对象,既可得到想要的参数。
  与其他程序设计语言不同, ECMAScript 不会验证传递给函数的参数个数是否等于函数定义的参数个数。开发者定义的的函数都可以接受任意个数的参数(根据 Netscape 的文档,最多能接受 25 个),而不会引发任何错误。任何遗漏的参数都会以 undefined 传递给函数,多余的参数将被忽略。

7. Function 类
    ECMAScript 最令人感兴趣的可能莫过于函数实际上是功能完整的对象。Function 类可以表示开发者定义的任何函数。函数名只是指向函数对象的引用值,行为就像其他指针一样。甚至可以使两个变量指向同一个函数。所有函数都应该看作室 Function 类的实例。
    注意,尽管可以用 Function 构造函数创建函数,但最好不要使用它,因为它定义的函数比用传统方式要慢得多。
    因为函数时引用类型,所以它们也有属性和方法。

8. 闭包
    所谓闭包,是指词法表示包括不必计算的变量的函数,也就是说,该函数能使用函数外定义的变量。如:
    var sMessage = "Hello World!";
    function sayHelloWorld(){ alert(sMessage);}

    var iBaseNum = 10;
    function addNumbers(iNum1, iNum2){
        function doAddition(){
            return iNum1 + iNum2 + iBaseNum;
        }
        doAddition();
    }
    这里,函数 addNumbers() 包括函数 doAddition()(闭包)。内部函数诗歌闭包,因为它将获取外部函数的参数  iNum1 和 iNum2 以及全局变量 iBaseNum 的值。
分享到:
评论

相关推荐

    JavaScript闭包函数

    闭包是ECMAScript (JavaScript)最强大的特性之一,但用好闭包的前提是必须理解闭包。闭包的创建相对容易,人们甚至会在不经意间创建闭包,但这些无意创建的闭包却存在潜在的危害,尤其是在比较常见的浏览器环境下...

    js闭包函数

    学习javascript闭包函数的实用文档,讲解全面、详细。pdf格式,

    尚硅谷——JavaScript闭包

    JavaScript闭包 JavaScript闭包 JavaScript闭包 JavaScript闭包

    JS匿名函数、闭包

    匿名函数,也称为拉姆达函数,是一种使用JavaScript函数的强大方式。以下总结了匿名函数的特点: 任何函数表达式从技术上说都是匿名函数,因为没有引用它们的确定的方式; 在无法确定如何引用函数的情况下,递归...

    深度探讨javascript函数的原型链和闭包

    深度探讨javascript函数的原型链和闭包

    JavaScript闭包

    Javascript中有几个非常重要的语言特性——对象、原型继承、闭包。其中闭包 对于那些使用传统静态语言C/C++的程序员来说是一个新的语言特性。本文将以例子入手来介绍Javascript闭包的语言特性,并结合一点 ...

    javascript笔记之匿名函数和闭包

    本文介绍了js匿名函数和闭包的相关内容,供大家参考,具体内容如下 匿名函数 [removed] //function(){}//会报错 var fun = function(){};//将匿名函数赋值给变量 (function(){})();//匿名函数自执行 function...

    Swift学习demo.zip

    swift闭包/面向对象/构造函数/可选项/数组/字典/循环语句/代理/闭包/通知/等基础知识/只用于学习/有什么不对的地方请发我邮箱/swift4.0

    javascript 闭包

    闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。

    php基于闭包实现函数的自调用(递归)实例分析

    本文实例讲述了php基于闭包实现函数的自调用(递归)的方法。分享给大家供大家参考,具体如下: ... $fn = function (&$n,&$counter,&$max=1) use(&$fn){//use参数传递的是函数闭包函数自身 $n++; if($n < $ma

    【JavaScript源代码】详解JavaScript闭包问题.docx

    通过将闭包视为核心语言构件的组成部分,JavaScript语言展示了其与函数式编程语言的紧密联系。由于能够简化复杂的操作,闭包在主流JavaScript库以及高水平产品代码中日益流行起来。 一、变量的作用域 在介绍闭包...

    Javascript闭包与函数柯里化浅析_.docx

    Javascript闭包与函数柯里化浅析_.docx

    JavaScript闭包函数访问外部变量的方法

    主要介绍了JavaScript闭包函数访问外部变量的方法,本文使用匿名函数来实现在闭包中访问外部变量,需要的朋友可以参考下

    Javascript 闭包完整解释

    Javascript 闭包完整解释

    浅析javascript语言中的函数闭包现象.pdf

    浅析javascript语言中的函数闭包现象.pdf

    理解_JavaScript_闭包

    本文结合 ECMA 262 规范详解了闭包的内部工作机制,让 JavaScript 编程人员对闭包的理解从“嵌套的函数”深入到“标识符解析、执行环境和作用域链”等等 JavaScript 对象背后的运行机制当中,真正领会到闭包的实质。

    数据库求属性集闭包&函数依赖闭包

    4) 计算函数依赖的闭包。此步骤不作要求,但要会方法。个人总结:将所有属性元素组成一个集合(域)记为R;求R的所有子集(要用到第二步中的全排列~~~),设其中一个为Ri;对每一个子集求其闭包,记为Ri+;然后求Ri...

    javascript闭包详解中文word版

    资源名称:javascript闭包详解 中文word版   内容简介: Javascript中有几个非常重要的语言特性——对象、原型继承、闭包。其中闭包 对于那些使用传统静态语言C/C 的程序员来说是一个新的...

    深入理解javascript原型和闭包

    深入理解javascript原型和闭包(01)——一切都是对象 深入理解javascript原型和闭包(02)——函数和对象的关系

Global site tag (gtag.js) - Google Analytics