zoukankan      html  css  js  c++  java
  • 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>这个函数可以被外部访问到(引用)
                 闭舍的好处:持续保存,还会被其它引用。

  • 相关阅读:
    OpenStack--Havana
    腾讯云万象优图每个账户提供50G的图片存储(支持黄图检测)
    Java 脚本化编程指南
    hive的表的基本操作
    如何搭建易企秀H5平台?
    HDU 4727-The Number Off of FFF
    审计厅审计云发展意见
    CNPM 遇到use strict的问题
    QA技术概览
    终端的CTRL+S 解说
  • 原文地址:https://www.cnblogs.com/ting116/p/5815080.html
Copyright © 2011-2022 走看看