zoukankan      html  css  js  c++  java
  • JaveScript函数(JS知识点归纳六)

    1.函数的基本使用	
       a)作用:代码的复用,灵活性比较强 b)声明方式:function 名 (形参){函数体} c)调用: 名(实参); d)封装函数--书写一个函数的结构,而且放入一些功能,在需要使用的时候直接调用函数名字 e)参数:--形参+实参 1)形参:书写在函数体的小括号,是函数内的变量,不需要声明,默认值是undefined 2)实参:书写在函数调用的小括号,用于给形参传值 3)多个参数使用逗号分隔 f)当一个函数的整体功能是一定的,但是内部的值不确定的时候,可以使用参数 g)返回值的设置 1)在函数体外使用函数的计算结果 设置返回值 2)语法: return 值; 3)接受方式:通过函数的调用,调用本身就是返回值 4)return的其他作用: 结束函数的执行--跳出函数 5)函数没有设置返回值,默认是undefined

    ​ 2.作用域

        a)全局变量:声明在全局作用域的变量,在任意位置都可以进行访问
        b)局部变量:声明在某个局部的作用域中,只能在声明这个变量的局部作用域中访问
    

    ​ 3.预解析

      注意:与解析在每个作用域代码执行前都会发生
        1)查找当前作用域中的var变量声明,将声明提升到当前作用域顶端,赋值保留在原地;
        2)查找当前作用域中的function函数声明语句,将函数整体提升到当前作用域顶端,调用保留
      注意:
        1)全局作用域的预解析在页面加载的时候执行
        2)局部作用域的预解析在调用时进行执行
      不规则的声明方式:
        1)单个变量--不加var
        2)多个变量--连续赋值  var n1=n2=n3=1;
    

    ​ 4.变量的访问规则--作用链域的访问规则

        1)在当前作用域查找,找到--使用
        2)没有找到--查找上级作用域,找到--使用
        3)依次往复
        4)到全局作用域后,使用方式不同,结果不同
            a)取值--直接报错
            b)赋值--声明一个全局变量
    

    ​ 5.参数的值传递--实参给形参传值的方式--采用值传递(复制)方式

        a)实参为复杂数据类型时,函数的功能那个是内部直接处理实参数据,不需要设置返回值
        b)接收的返回值数组和原数组实际上还是同一个数据的时候,没有必要接收
        	注意: 封装函数用于计算任意数组中的和---设置返回值
        		 封装函数对数组进行排序,不需要设置返回值
    

    ​ 6.函数的多种声明方式

        1)函数声明语句  function 名( ){ }
        2)函数表达式   var fun= function (){}
            函数表达式是在预解析阶段参与的是变量提升的规则,所以无法再声明之前进行调用操作
    

    ​ 7.匿名函数的使用--没有函数名的函数 --无法单独使用 function( ){ }

        用法:
            a)将匿名函数保存在变量中做为函数表达式使用 var fun = function( ){  }
            b)做为自调用函数的形式使用  (function(){ 函数体--只能在书写的位置执行一次})(调用)
            作用:
                1)用于包裹作用域降低变量名的难度
                2)提高变量访问时的访问效率
                3)JS高级--给每个功能套用一个自调用函数
            c)将匿名函数做为回调函数使用
            d)将匿名函数做为函数的返回值使用--函数做为另一个函数的返回值使用(命名函数+匿名方式)
    

    ​ 8.将一个函数做为另一个函数的参数使用

    	a)当一个函数的整体功能一定,但是内部的某些值不确定时,可以传入参数
            b)一个固定功能的函数中,不仅仅是某个值不确定,而是某段代码功能不确定将函数做为参数传递
    

    ​ 9.回调函数

    	 a)将一个函数作为另一个函数的参数使用时,称之为回调函数
             b)使用场景:当一个函数整体功能一定时,内部的某段功能呢不确定时,可以使用回调函数
               1)将命名函数做为函数传递
               2)要传递的实参值是一个函数,使用匿名方式传参
    

    ​ 10.函数的数据类型-typeof==function

    ​ 11.arguments的使用

    	a)只能在函数内部使用
        b)是一个数组形式的数据,伪数组结构(类数组结构)
        c)内部保存了本次调用传入的所有实参
        练习:对传入的所有实参进行求和
    function fun (a,b){
            var sum = 0 ; 
            for (var i = 0 ; i <arguments.length;i++){
                sum += arguments[i];
            }
            console.log(sum);
         }
         fun(1,2,3,4,5,6,7,8,8,9);
    

      



    ​ 12.函数重载的模拟--使用传入的参数个数不同

    	function fun(){
            //通过判断argument.length属性的值去进行函数重载的模拟
            var len=arguments.length;
            if(len===2){
                .....
                }
            }
            fun (1,2,3);
    

      



    ​ 13.构造函数

        1)使用--通过new调用的函数,就是构造函数(作用-创建对象)
        2)书写一个构造函数
            a)命名要求---首字母大写
            b)调用前一定要加new
            c)只要通过this给创建的对象设置属性和方法
        3)在构造函数内部使用return的效果说明
            a)返回值为基本数据类型:会被忽略
            b)返回值为复杂数据类型:这个复杂数据类型值会替换掉原有的对象
    


    PS: 2018年,努力!!!
    
    
  • 相关阅读:
    window10使用vagrant+virtualBox搭建centos7
    吾日三思
    搭建EFK过程
    docker端口映射失效解决方法
    centos7防火墙相关命令
    docker学习
    python 读取hive数据
    shell 命令 查看本机ip
    shell 命令 修改hosts文件
    shell 命令 mkdir -p
  • 原文地址:https://www.cnblogs.com/AmorR/p/8470521.html
Copyright © 2011-2022 走看看