美文网首页
听js分享会后认识和总结

听js分享会后认识和总结

作者: 何治国 | 来源:发表于2021-07-31 10:11 被阅读0次

一.javascript作用域:

在 JavaScript 中, 对象和函数同样也是变量。

在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。

JavaScript 函数作用域: 作用域在函数内修改。

1.javascript的局部作用域:

变量在函数内声明,变量为局部作用域。

局部变量:只能在函数内部访问。

因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。

局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁

2.JavaScript 全局变量

变量在函数外定义,即为全局变量。

全局变量有 全局作用域: 网页中所有脚本和函数均可使用。

如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。

3.JavaScript 变量生命周期

JavaScript 变量生命周期在它声明时初始化。

局部变量在函数执行完毕后销毁。

全局变量在页面关闭后销毁。

4.函数参数

函数参数只在函数内起作用,是局部变量。

5.HTML 中的全局变量

在 HTML 中, 全局变量是 window 对象: 所有数据变量都属于 window 对象。

你的全局变量,或者函数,可以覆盖 window 对象的变量或者函数。

局部变量,包括 window 对象可以覆盖全局变量和函数。

二.JavaScript this 关键字

面向对象语言中 this 表示当前对象的一个引用。

但在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。

        在方法中,this 表示该方法所属的对象。

        如果单独使用,this 表示全局对象。

        在函数中,this 表示全局对象。

        在函数中,在严格模式下,this 是未定义的(undefined)。

       在事件中,this 表示接收事件的元素。

        类似 call() 和 apply() 方法可以将 this 引用到任何对象。

1.方法中的 this

在对象方法中, this 指向调用它所在方法的对象。

在上面一个实例中,this 表示 person 对象。

fullName 方法所属的对象就是 person。

2.单独使用 this

单独使用 this,则它指向全局(Global)对象。

在浏览器中,window 就是该全局对象为 [object Window]:

严格模式下,如果单独使用,this 也是指向全局(Global)对象。(严格模式是采用具有限制性JavaScript变体的一种方式,从而使代码显示地 脱离“马虎模式/稀松模式/懒散模式“(sloppy)模式。)

3.事件中的 this

在 HTML 事件句柄中,this 指向了接收事件的 HTML 元素:

总结: this 的多种指向:

 1、在对象方法中, this 指向调用它所在方法的对象。

 2、单独使用 this,它指向全局(Global)对象。

 3、函数使用中,this 指向函数的所属者。

 4、严格模式下函数是没有绑定到 this 上,这时候 this 是 undefined。

 5、在 HTML 事件句柄中,this 指向了接收事件的 HTML 元素。

 6、apply 和 call 允许切换函数执行的上下文环境(context),即 this 绑定的对象,可以将 this 引用到任何对象

三.JavaScript 变量提升

JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。

JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。

变量提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。

    1.JavaScript 初始化不会提升

        JavaScript 只有声明的变量会提升,初始化的不会。

        以下两个实例结果结果不相同:

        var x = 5; // 初始化 x

        elem = document.getElementById("demo"); // 查找元素

        elem.innerHTML = "x 为:" + x + ",y 为:" + y;          // 显示 x 和 y

        var y = 7; // 初始化 y

        实例的 y 输出了 undefined,这是因为变量声明 (var y) 提升了,但是初始化(y = 7) 并不会提升,所以 y                  变量 是一个未定义的变量。

   2.在头部声明你的变量

        对于大多数程序员来说并不知道 JavaScript 变量提升。

        如果程序员不能很好的理解变量提升,他们写的程序就容易出现一些问题。

        为了避免这些问题,通常我们在每个作用域开始前声明这些变量,这也是正常的 JavaScript 解析步骤,易于我们理解。

        

            

相关文章

  • 听分享总结

    昨天听了这三位女神的分享,对我来说是极大的收获。 Judy非常注重外表得体,头发蓬松,神采飞扬,给自己起名水水,希...

  • 靠近光,成为光,我就是另外一个你

    林潇姐,2017年度总结分享 记得在分享朋友圈时说:分享和听分享是一件快乐的事。 听潇潇姐的...

  • 2019.6.11小组会后总结:

    会后总结: 1、组长责任到人,和各位大臣有效沟通。 2、死党更换,尽量让大家同频。 3、帮助帮到快乐因子,越分享越...

  • 2017-06-14今日总结

    经历: 今天完成了node.js的题目,并上传代码到github。 听同学分享js的闭包和this的用法 学习no...

  • 常青老师分享会后的总结

    上周五从小孩的活动现场赶到常老师的分享现场,一路上都没有时间深入思考自己的疑问。摩西脑图会什么层次?常青主要做...

  • 会后总结

    今天终于迎来了我们的8月10千人大会,在开会前一天突然收到台风的红色警报,大部分的航班和高铁全部停运,所以我们当时...

  • 会后总结

    入场以后倦意来了,坐下以后睡意来了, 拉歌以后领导来了,开讲以后周公来了, 睡熟以后尿意来了,憋醒以后纠察来了, ...

  • 会后总结

    今天晚上要求大家交助教的感悟,说实话,这次感觉没什么可以写的,因为没什么感悟 不过这次学习到了如何做一分钟的自我介...

  • 会后总结

    经过昨晚的项目总结会之后我认识到了我在这次项目中的问题。 我想走前端,但是学长这次给我安排了后端项目,在我的心里多...

  • 会后总结

    今天是公司开门红会议的一天,这是我从事保险事业要经历的第三个开门红。和大家普及一下,保险开门红为什么这么隆...

网友评论

      本文标题:听js分享会后认识和总结

      本文链接:https://www.haomeiwen.com/subject/dcmlvltx.html