首页 > Web开发 > 详细

js的预处理

时间:2020-01-29 19:36:37      阅读:83      评论:0      收藏:0      [点我收藏+]

  JavaScript不会完全按照代码的顺序执行,在执行之前会对定义的函数和变量先来一边所谓的预编译处理。

先来说下对变量的预处理:

    console.log(a) //undefined
    var a =‘hello world!‘
    console.log(a) //‘hello world‘

  按照常理,我们还没定义a这个变量,提前打印应该是报错的,但是确打印出undefined, 出现这个效果的原因就是预处理机制。再来说下这段代码的执行过过程:

    var a;
    console.log(a);  //undefined
    a = ‘hello world‘;
    console.log(a);  //hello world

  通过这段代码可以看出,在代码执行之前会找到变量,然后把该变量提升到顶部!var a;由于a未 赋值,所以打印出undefined,继续执行对a进行赋值所以再次打印的是‘hello world‘。

除此之外,对函数也会进行预处理操作:

    console.log(fun1); // function f1() {}
    function fun1() {}

  这段代码的执行过程是这样的:

    function fun1() {}
    console.log(fun1);

  与变量提升相似,函数预编译的时候函数会被提升到最前面

  当变量与函数同时存在时,函数提升的更靠前!!!

js的预处理

原文:https://www.cnblogs.com/genhao7/p/12240895.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!