JavaScript 预解析的4种实现方法解析

 更新时间:2019年09月03日 11:19:17   作者:smile小吴  
这篇文章主要介绍了JavaScript 预解析的4种实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

预解析:在当前作用域下,js运行之前,会把带有var和function关键字声明的变量先声明,并在内存中安排好。然后从上至下解析js语句。而且function的声明优先于var声明。

不多说,,直接上代码

正规写法:

var num=10;
  fun();
function fun(){
  console.log(num);//undefined
var num=20; }

预解析里:先将变量和函数提前,如下:

var num;
      function fun(){
        var num;
        console.log(num);//undefined
        num=20;        
      }
      num=10;
      fun();

第二种

var num=10;
       function dn(){
         console.log(num);//undefined
         var num=20;
         console.log(num);//20
       }
       dn();      
       //相当于以下代码
       var num;
       function dn(){
         var num;
         console.log(num);
         num =20;
         console.log(num );
       }
       num=10;
       dn();

第三种

var a =18;
       ss();
       function ss(){
         var b=9;
         console.log(a);//undefined
         console.log(b);//9
         var a='123';
       }       
       //相当于以下代码       
       var a;
       function ss(){
         var b;
         var a;
         b=9;
         
         console.log(a);
         console.log(b);
         a='123';
       }
       a=18;
       ss();

第四种

aa();
       console.log(c1);//9
       console.log(b1);//9
       console.log(a1);//报错       
       function aa(){
         var a1=b1=c1=9;
         console.log(a1);//9
         console.log(b1);//9
         console.log(c1);//9
       }       
       //相当于
       function aa(){
         var a1=b1=c1=9;//相当于 var a=9;b=9,c=9
         var a1;
         a1=b1=c1=9;
         
         console.log(a1);
         console.log(b1);
         console.log(c1)
       }
       aa();
       console.log(c1);
       console.log(b1);
       console.log(a1);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • JS sort排序详细使用方法示例解析

    JS sort排序详细使用方法示例解析

    这篇文章主要介绍了JS sort排序详细使用方法示例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • js仿拉勾网首页穿墙广告效果

    js仿拉勾网首页穿墙广告效果

    本文主要介绍js仿拉勾网首页穿墙广告效果的实例,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • IE11下使用canvas.toDataURL报SecurityError错误的解决方法

    IE11下使用canvas.toDataURL报SecurityError错误的解决方法

    这篇文章主要给大家介绍了关于在IE11下使用canvas.toDataURL报SecurityError错误的解决方法,文中通过示例代码介绍的非常详细,对同样遇到这个问题的朋友们具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11
  • JS返回页面时自动回滚到历史浏览位置

    JS返回页面时自动回滚到历史浏览位置

    这篇文章主要介绍了JS返回页面时自动回滚到历史浏览位置的相关知识,本文给大家使用的是SessionStorage来存储页面内容,在返回页面时重新加载,具体实现代码大家跟随小编一起看看吧
    2018-09-09
  • javascript instanceof 内部机制探析

    javascript instanceof 内部机制探析

    在 JavaScript 中,可以用 instanceof 来判断一个对象是不是某个类或其子类的实例。
    2010-10-10
  • js中的布尔运算符使用介绍

    js中的布尔运算符使用介绍

    布尔运算符 && 和 || 的时候,我说过它们的结果是布尔值,它们也能用于计算其他的类型的数据,这种时候,返回的就将是其中的一个参数了
    2013-11-11
  • JavaScript中定义函数的三种方法

    JavaScript中定义函数的三种方法

    这篇文章主要介绍了JavaScript中定义函数的三种方法,本文直接给出代码实现,同时给出了构造函数的相关知识,需要的朋友可以参考下
    2015-03-03
  • 微信小程序云开发如何使用云函数生成二维码

    微信小程序云开发如何使用云函数生成二维码

    这篇文章主要为大家详细介绍了微信小程序云开发如何使用云函数生成二维码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • 原生JavaScrpit中异步请求Ajax实现方法

    原生JavaScrpit中异步请求Ajax实现方法

    这篇文章主要介绍了原生JavaScrpit中异步请求Ajax实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-11-11
  • JS组件Form表单验证神器BootstrapValidator

    JS组件Form表单验证神器BootstrapValidator

    做Web开发的我们,表单验证是再常见不过的需求了。友好的错误提示能增加用户体验。今天就来看看bootstrapvalidator如何使用,感兴趣的小伙伴们可以参考一下
    2016-01-01

最新评论