什么都不会的程序员

导航

函数

一、函数定义
    1.声明式 :声明前后都可以调用
    2.赋值式 : 只能在赋值之后调用
    3.声明式和赋值式区别
二   函数的调用
    1.通过"函数名()"
    2.了解 new 函数名 可选括号
    3.如果函数没有定义 直接调用会报错 如果处理错误?
    1.通过if来判断:如果有fn函数 就调用fn函数
           if(fn){
              fn();
           }
    2.上面1内容简写  fn && fn();
三、函数的参数
    1.形参: 定义时候传入
    2.实参: 调用的时候传递
          1 实参可以 是实在的值  数字、字符串、布尔、”“、null、undefined
          2.传入变量 (确保变量有值,变量被定义了); 
          3.隐藏参数 (不定参)arguments(伪数组);
                 使用场景:多数情况都是处理不定参(参数个数会变动)
          3.参数的数量
              1.形参比实参多
                 多的形参就是会打印undefined
              2.实参比形参多
                 使用没什么影响,不建议这样写  
              3.多数情况下实参和形参都是数量等同的 且是一一对应关系
四、数组 
          1.数组定义 var arr = [1,2,3];--->键名(索引:从0开始从左向右计算)-->键值
          2.通过 数组[键名] 获取对应键值  :arr[1]-->键值:2
          3.数组的长度 数组.length 就是数组的长度
五、字符串 可以当成数组来使用
       好处 字符串拥有了数组的功能
           1.下标 键值
           2.长度
 
 
  1. 如果没有函数  做容错

        fn && fn();

        2.判断变量 (防止变量报错):如果存在变量就输出 如果没有就不输出也不报错

        console.log(a);

        if(a){

            console.log(a);

        }

        判断一个变量是否存在 会通过更安全的 typeof 判断

        console.log(typeof a);

        注意: 这种判断的"undefined" 是一个字符串

        var a = 10;

        if(typeof a !== "undefined"){

            console.log(a);

        }

         3.函数参数可以是多种形式 ,函数被称为一等公民

        函数参数可以是 数字、字符、数组、对象、函数、undefined、null、"";

        高阶函数:有函数作为另外一个函数的参数输入或者输出的函数;
 
 
函数优点 1.提高复用性 2.封装 3.延迟执行
通过事件 来实现延迟执行;
 
 
 
解析时候 在上面声明一个a,解析之后在执行

        var a;

        预解析

        addEventListener ---> 只能兼容chrome浏览器

        attchEvent

        webpack gulp 

        1.函数的预解析  2.变量的预解析;(hosting)

        1.函数的预解析;

        test();

        function test() {

            console.log("test");

        }

       

        2.变量的预解析

        console.log(a);

        a = 10;
 
 
函数内部声明的函数也会提升到外层函数的上面;

posted on 2021-08-02 18:29  什么都不会的程序员  阅读(65)  评论(0编辑  收藏  举报