博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS预解释的总结
阅读量:6379 次
发布时间:2019-06-23

本文共 877 字,大约阅读时间需要 2 分钟。

  • 预解释阶段发生在创建了堆内存,让代码执行之前,对当前作用域中带var和function的进行预解释

    • 在浏览器解析执行代码的时候,会提前把带var和function的代码声明或定义,提前放在作用域的最前面执行,也就是浏览器把对这些变量的声明提升到作用域的最前面
    • 函数数据类型会在预解释阶段同时声明和定义
      • 浏览器会将函数的定义以字符串的形式存在一个新的命名空间(堆内存)
    • 在函数执行中,函数的形参也会进行预解释,相当于var 形参
    • 在判断体中
      • 无论判断是否成立,里面的代码都进行预解释,但是不进行定义(包括function)
      • 在新版本浏览器中,只要条件成立,他就会把函数执行(类似于在条件体内进行预解释)
    • 在函数表达式中,等号右边的function不进行预解释
    • 自执行函数不进行预解释,但是在他执行的时候开辟的栈内存进行预解释
    • 在函数执行的时候,return后边紧紧跟着的不进行预解释,但是在return下面的依然进行预解释,但是不执行不赋值
    • 变量名不能重复,变量当前的作用域中,同名的变量声明,会覆盖之前的声明
    • 不带var的变量,不进行预解释,相当于给window动态添加了一个属性
      • 当代码执行到这的时候,才进行创建变量并赋值这个过程,所以在创建之前的调用,会报错,变量 is not defined.
    • 在预解释的时候,同一个名称的变量,如果都是通过var声明的,之前声明过,后边的声明就不重新在声明,如果是function,后边会重新声明和定义,但是后边的定义会覆盖前边的
  • var num = 2;

    • 第一步:声明这个变量(预解释这一步)
    • 第二步:给num这个变量赋值2
  • 函数执行过程

    • 首先进行预解释,形参和函数私有作用域中带var和function进行提升
    • 如果形参在预解释时被function重叠了,那么形参消失,不能使用那个形参接受传入函数的实参
    • 代码开始从上到下执行,给形参赋值,代码接着往下执行
    • return下面的代码不执行了,返回值,返回产出

转载于:https://www.cnblogs.com/Scar007/p/7640652.html

你可能感兴趣的文章
不礼让行人怎么抓拍的_张家川公安交警持续曝光机动车不礼让行人【第24期】...
查看>>
用pythonturtle写名字_去年爆款新生儿名字,家长自以为起的不错,却有“棺材”的意思...
查看>>
句子分类_语法微课句子的分类+文本讲解
查看>>
图形化分析工具_推荐一款基于小米 soar 的开源 sql 分析与优化的 web 图形化工具...
查看>>
485 工控机 接线方式_RS485温湿度传感器的接线方式及注意事项
查看>>
u3d游戏开发视频潭州_unity3d教程视频-unity3d教程中文零基础入门/u3d游戏开发/特效案例/项目实战V2.0 最新版 - 极光站...
查看>>
c++区块链实例_cpp 区块链模拟示例(二)工程代码解析
查看>>
java 接口的本质_Java基本概念:接口
查看>>
java死锁的解决_java中常见的死锁以及解决方法代码
查看>>
java菜单栏不下拉_我java代码中的下拉列表设好后为什么无法下拉?
查看>>
java传递引用类型的实质_java的引用类型以及值传递
查看>>
java策略模式使用场景,Java设计模式—策略模式
查看>>
RHEL6.3实现基于加密的用户认证验证访问
查看>>
SCCM2012 R2实战系列之十一:解决OSD分发Windows7 系统盘盘符为’D’问题
查看>>
经验分享:我是如何在网店无货源情况下快速出单?
查看>>
限免的Mac App套件,工程师绝对不可错过
查看>>
Skype for Business Server 2015-05-监控和存档服务器-配置
查看>>
浅谈物化视图
查看>>
安装SQL Server 2017
查看>>
超融合超越企业传统存储绕不开的六个问题
查看>>