zoukankan      html  css  js  c++  java
  • JS笔记之第四天

    arguments对象

    使用arguments对象可以获取传入的每个参数的值

    arguments对象可以当做数组使用,但它是一个伪数组

     

    例子:计算n个数字的和

    function fi(){
          var sum=0;
         for(var i=0;i<arguments.length;i++){
              sum+=arguments[i];
      }
       return sum;
    }

    函数的其他定义方式

    命名函数:函数如果有名字,就是命名函数

    匿名函数:函数如果没有名字,就是匿名函数

    函数的另外一种定义方式

    函数表达式:把一个函数给一个变量,此时形成了函数表达式

    var  变量=匿名函数;

    例子:

    var  f1=function(){
    
    };

    如果是函数表达式,那么此时前面的变量中存储的就是一个函数,而这个变量就相当于是

     一个函数,就可以直接加小括号调用了

    f1();

    注意:函数表达式后面,赋值结束后,要加分号

    函数的自调用--->没有名字;调用--->声明的同时,直接调用

    函数的自调用是一次性的

    (function(){ console.log(“擦汗”)})();

    (function(){ console.log(“佳丽斯”)})();

    函数也是一种数据类型。

    函数是有数据类型的,数据类型是:function类型

    函数作为参数使用;如果一个函数作为参数,那么我们说这个参数(函数)可以叫回调函数。

    只要看到函数作为参数使用,那就是回调函数。

    函数可以作为返回值使用。

    作用域

    指的是:使用范围

    分为全局变量和局部变量

    全局变量:声明的变量是使用var声明的,那么这个变量就是全局变量,全局变量可以在页面的任何位置使用。

    除了函数以外,其他的任何位置定义的变量都是全局变量。

     全局变量如果页面不关闭,那么就不会释放,就会占空间,消耗内存。

    局部变量:在函数内部定义的变量,是局部变量,外面不能使用

    全局作用域:全局变量的使用范围。

    局部作用域:局部变量的使用范围。

    块级作用域:一堆大括号就可以看成是一块,在这块区域中定义的变量,只能在这个区域中使用,但是在js中,这个块级作用域中定义的变量,外面也能使用。说明:

    JS没有块级作用域,只有函数除外

    拓展:

    隐式全局变量:声明的变量没有var,就叫隐式全局变量

    全局变量是不能被删除的,隐式全局变量是可以被删除的。

    定义变量使用var是不会被删除的,没有var是可以删除的

    作用域链

    使用的变量应当在当前的作用域找,找不到再去上一级找。

    这一整个形成的关系,就叫作用域链。

    预解析

    预解析:指的是在当前作用域下,js运行之前,会把带有var和function关键字事先声明,并在内存中安排好。然后再从上到下执行js语句。

    预解析只会发生在通过var定义的变量和function上。

    预解析就是提前解析代码

    预解析中,变量的提升,只会在当前的作用域中提升,提前到当前的作用域的最上面。

    函数中的变量只会提前到函数的作用域中的最前面,不会出去

    预解析会分段(多对的script标签中函数重名,预解析的时候不会冲突)

  • 相关阅读:
    策略模式-观察者模式-装饰者模式-工厂模式-单例模式
    mac下 tomcat8+jdk1.8+servlet+Spring环境搭建中的问题
    删除部分字符使其变成回文串问题——最长公共子序列(LCS)问题
    JAVA锁的膨胀过程和优化
    单例模式
    简单工厂模式(静态工厂)和工厂方法模式和抽象工厂模式
    从基层容器类看万变不离其宗的JAVA继承体系
    响应式布局1
    网页加载速度优化4--图片懒加载
    jquery选择器返回值
  • 原文地址:https://www.cnblogs.com/haohaogan/p/12578798.html
Copyright © 2011-2022 走看看