函数的一些理论知识
 1. 函数: 
              执行一个明确的动作并提供一个返回值的独立代码块。同时函数也是javascript中的一级公民(就是函数和其它变量一样)。
 2.函数的声明方式: 
               1> 函数声明:在函数里,必须手动去声明函数的返回值,如果返回值没有申明,则此函数返回值为undefined,,return是函数内部使用的,形参能自动声明,而实参不能自动声明为undefined。我们在调用函数时要:函数+()这种形式。不然就是函数本身。function fn(){console.log("welcome");}
               2>函数表达式:例如var fun=function(){console.log("hello");}
               3>立即执行函数(IIFE):例如(function(){})()
               4>创建FUNCTION对象:例如 var func=new Function("one","two","return one+two");
                anguments:不是数组,却有数组的相关属性,是一个伪数组,类似元素集合,就算没有定义形参,一旦把实参传进函数,也可以访问到,例如:length。
 3.值传递和引用传递的区别: 
             1>值传递:声明的是原始的类型,具体的值,传给变量后,就与它本身没有关系了。
             2>引用传递:把地址传给变量,传完后变量的值会跟据变量的变化而变化 。
 4.可执行代码和执行上下文: 
             1>可执行代码:全局代码、函数代码、eval()代码(出于安全着想,一般不建议使用此类代码)
             2>执行上下文:执行代码的一个环境,环境会随着代码结束而结束,执行代码不断产生执行上下文环境。js中量声明给它的位置无关(变量提升),块作用域(js中没有这个作用域)
 5.变量和变量的初始化:

当一个变量在声明时,就把变量存在变量对象中,变量对象(vo) #
             如果没有给一个变量定义却给它赋值,那变量就会成全局变量了。例如:a=b,前提又没有给a定义。
 6.作用域(链): 
              当一个范围里没有给这个变量定义时,我们就会上一层找,那么我们为啥函数能往上一层找啊?
              因每一个作用域对象中有一个vot和scope,而每一个scope保存上一层的vo(变量对象).scope对象是在函数声明时,它就已经存在了,是它所在的作用链的对象,
 7.this关键字:
              1>在一个函数中用this,一般把window
              2>当你的对象中再嵌套一个函数,此this指的是window,除非在对象中用一临时变量来保存this,那么此时的this就用临时变量替代,这时的this就指的是标签对象而不是window.

3>如果我们以这种形式下的this就是反映对象本身了,例如:$("#aa").click(function(){})
8.call和apply关键字的区别:
              相同点:都可以改变thisr的指向。
              不同点:传参方式不一致。call是传的参列表。apply是传的数组。
9.闭合: 
             可以把局部变量持续保存。可以不在使用全局变量条件下用局部变量让变量一直保存。
             闭全满足的条件:1>在一个函数内部写一个函数,并访问局部变量 
                            2>这个函数可以被外部访问到(引用)
             闭舍的好处:持续保存,还会被其它引用。

js中函数的一些理论知识的更多相关文章

  1. JS中函数参数和函数返回值的理解

    函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能 ...

  2. 关于js中函数的调用问题

    js中函数的调用方法 1.直接调用 函数名(参数): 2.通过指向函数的变量去调用 例如: var myval = 函数名: 此刻 myval是指向函数的一个指针: myval(实际参数):此刻调用的 ...

  3. js中函数传参的情况

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  4. JS中函数void()

    <a href="javascript:void(0)">hello</a>/* * JS中函数void()的运用大体是这种新式; * void()是运算符 ...

  5. 对JS中函数的理解

    函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能 ...

  6. js中函数的参数为函数的情况即回调函数

    js中函数的参数可以是数组对象也可以是函数,当参数为函数时我们叫做回调函数 //定义回调函数function B() { console.log("函数B")setTimeout( ...

  7. JS中函数的基础知识

    函数 一.  函数定义 函数又叫方法,在程序里面函数是用来执行某些特定功能的代码.为了减少重复使用代码,可以把特定功能的代码做成函数,需要使用时拿出来调用.alert();就是一个很常见的.简单的函数 ...

  8. php与js中函数参数的默认值设置

    php函数参数默认值设置: <?phpfunction test($val=3){   echo $val."<br/>";}test(11);test();?& ...

  9. JS中函数声明与函数表达式的不同

    Js中的函数声明是指下面的形式: function functionName(){   } 这样的方式来声明一个函数,而函数表达式则是类似表达式那样来声明一个函数,如 var functionName ...

随机推荐

  1. Iterm2 ssh tab title

    vim ~/.bashrc 添加一行 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px "H ...

  2. CornerStone的使用

    俗话说:"工欲善其事必先利其器": 对于我们程序员来说,不管你是大神,还是小鱼小虾,进入公司之后,都用过源码管理工具,不然你就不是一个合格的程序员,现在各个公司用于源码管理工具通常 ...

  3. PHP Ueditor 富文本编辑器

    2016年12月11日 08:46:59 星期日 百度的简版富文本编辑器umeditor很久没更新了 全功能版本的配置项跟umeditor还是有区别的, 这里说下ueditor怎么对接到项目中去, 主 ...

  4. js_继承

    一,js中对象继承 js中有三种继承方式 1.js原型(prototype)实现继承 复制代码代码如下: <SPAN style="<SPAN style="FONT- ...

  5. linux 文件系统

    / 根目录 /bin 存放着启动时所需要的普通程序.很多程序在启动以后也很有用,它们放在这个目录下是因为它们经常要被其他程序调用 /boot 很多Linux系统把内核映像和其他一些和启动有关的文件都放 ...

  6. 【Python】if __name__ == "__main__"做了什么?

    在Python的很多源文件中,会有这样的语句: if __name__ == '__main__': # script code here 比如有两个源文件A.py和B.py,都有上面的代码:在B.p ...

  7. iOS - 如何切图适配各种机型

    关于iPhone6/6+适配问题一直有争议,今天小编专门为大家整理了相关的有效方案,希望对大伙儿有帮助! 移动app开发中多种设备尺寸适配问题,过去只属于Android阵营的头疼事儿,只是很多设计师选 ...

  8. jsonp是什么【转载自JavaScript微信公众号】

    转自 http://mp.weixin.qq.com/s/xNnKAeLv6sO0T-IvP2AUlQ          JavaScript微信公众号 一.JSONP的诞生 首先,因为ajax无法跨 ...

  9. 手把手教你玩转nginx负载均衡(五)----配置后端服务器组

    引言 在前面几篇中,我们成功的搭建起了一台nginx服务器,所以我们要重复前面的步骤,把服务器的数量增加到3台以上,我这里已经建好了另外两台,分别是centos7-22,centos7-23,对应的i ...

  10. 将plist文件读取成为数组

    NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"city" ofType:@"plist&q ...