• js中函数的一些理论知识


                                                                          函数的一些理论知识
     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>这个函数可以被外部访问到(引用)
                 闭舍的好处:持续保存,还会被其它引用。

  • 相关阅读:
    (转)Entity Framework 缓存处理与日志监控,(非常重要的技术)
    (转)6步确保 windbg 成功调试 .net
    (转)十天内掌握线性代数:惊人的超速学习实验
    (转)创业需要知道的13句话
    今年阅读书籍计划,C++之STL篇
    不靠广告也盈利:移动应用掘金7大案例剖析(转)
    常用JS操作(复选框、单选框、下拉框)
    Windows系统直接运行jar
    修改打开方式的程序列表中列出程序的名称
    ora12514错误,TNS:监听程序当前无法识别链接描述符中请求的服务
  • 原文地址:https://www.cnblogs.com/ting116/p/5815080.html
Copyright © 2020-2023  润新知