js 作用域,闭包

今天又看到一本干货满满的动物书,短小精悍,与js启示录带来的感觉一样

(1)重新声明一个已有的变量,则并不会将该变量的值设置回undefined
var q = 22;
var q;        
// q仍为22;

(2)可以用字母数字下划线$来命名变量,但不能以数字开头
(3)typeof 操作符总是返回一个字符串
(4)作用域
var weight = 140;

    function lose(weight){

        console.log(weight); //140
        //虽然有变量提升,但是优先级没有参数高
        var weight = 135;
    }

    lose(weight);
    //140 函数作用域内变量无法访问
    console.log(weight); 

函数内提升的局部变量优先级没有参数高


函数中变量修改

如果没有传入参数,并且对函数进行了调用,是可以修改外部变量的


image.png

当变量作为参数传入,再进行修改,外部是不起作用的


image.png

函数与变量提升,相互赋值


image.png
  • result:
    image.png
(1)

闭包是函数与声明该函数的词法环境的组合

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、作用域 作用域:变量生效(可以被访问)的范围,用来控制变量的可见性和生命周期。 全局作用域:不单独属于某一个函...
    清心挽风阅读 297评论 0 2
  • 1.全局变量 定义在函数外部的变量都是全局变量。 声明提前 2.局部变量 定义在函数内部的变量都是局部变量。 3....
    壬万er阅读 266评论 0 0
  • 第1章 JavaScript 简介 JavaScript 具备与浏览器窗口及其内容等几乎所有方面交互的能力。 欧洲...
    力气强阅读 1,192评论 0 0
  • 前言 对于js中的闭包,无论是老司机还是小白,我想,见得不能再多了,然而有时三言两语却很难说得明白,反正在我初学时...
    itclanCoder阅读 4,223评论 1 11
  • 我昨天请室友和一个学长吃饭了,原因嘛,没啥,就是其中一个室友A和学长帮了我的忙,另一个室友B的话,我昨天高兴,请他...
    一条那啥阅读 241评论 0 0