zoukankan      html  css  js  c++  java
  • JavaScript的执行步骤

      首先,第一步是预解析阶段,也可以叫做检查装载阶段,在这个阶段里面会检查js的语法错误,然后进行变量的提升和函数的声明,第二步是执行阶段,会进行变量的赋值和函数的调用,下面我们声明了一个函数,但是调用它的步骤放在了上面,再来看控制台的结果:

    1     A()
    2     function A() {
    3         console.log('你好')
    4     }    

      控制台会输出:

      在这个运行过程中,我们其实首先会将函数的整个声明提升到最前面,然后再执行调用,所以控制台不会报错,我们再给代码里添加点东西,在A函数里面添加一个aname = '小红' 输出也改为 console.log(name+‘你好’) 此时控制台也同样不会报错,首先依旧我们函数的声明会提升上去,而函数里面有个变量,虽然我们没有用var来定义,但是他会自动添加到全局变量里面,

    这些步骤都是在我们调用这个函数之前发生的事情,所以不会出问题,但是如果我们将anma提取出来,放在函数的上面,那么控制台就会报错了,

     ok,说我们的aname没有定义,我们给他加上一个var以后控制台

    这边的执行步骤是这样的,我们首先会把var uname 和function A(...)提取到最上面,但是此刻uname是没赋值的所以是undefined,那么这个函数A里面就是输出undefined了,我们再调用它那结果可想而知.

    注意匿名函数必须要先声明再调用!

  • 相关阅读:
    vue+elemnet 实现自定义参数
    css 实现鼠标移上去标题向右滑动的效果
    vue 搜索关键字列表结果高亮显示
    leaflet 实现 测距、测面、清除测量的功能
    js对象的合并
    formdata的使用方法
    fromdata上传多个文件
    3.11formdata的使用
    微信小程序的自定义插件
    3.6
  • 原文地址:https://www.cnblogs.com/xzsblog/p/13100040.html
Copyright © 2011-2022 走看看