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手写一个自定义Promise操作示例

    JS手写一个自定义Promise操作示例

    这篇文章主要介绍了JS手写一个自定义Promise操作,结合实例形式分析了JS自定义Promise的实现与使用相关操作技巧,需要的朋友可以参考下
    2020-03-03
  • webpack动态加载与打包方式

    webpack动态加载与打包方式

    webpack有两种组织模块依赖的方式,同步和异步,这篇文章主要介绍了webpack动态加载与打包方式,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • 通过js修改input、select默认字体颜色

    通过js修改input、select默认字体颜色

    这篇文章主要介绍了通过js修改input、select默认字体颜色,需要的朋友可以参考下
    2017-04-04
  • JavaScript实现同时调用多个函数的方法

    JavaScript实现同时调用多个函数的方法

    这篇文章主要介绍了JavaScript实现同时调用多个函数的方法,以一个简单实例分析了JavaScript同时调用两个函数的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • JavaScript中将number转为string的5种方法

    JavaScript中将number转为string的5种方法

    这篇文章主要给大家介绍了关于JavaScript中将number转为string的5种方法,在JavaScript的值类型转换中,最常发生的就是string与number这两种类型值之间的相互转换,需要的朋友可以参考下
    2023-07-07
  • javascript字符串与数组转换汇总

    javascript字符串与数组转换汇总

    本文给大家分享的是Js中字符串转换成数组,数组转换成字符串的函数,十分的简单实用,有需要的小伙伴可以参考下。
    2015-05-05
  • JavaScript实现拖动滑块拼图验证功能(html5、canvas)

    JavaScript实现拖动滑块拼图验证功能(html5、canvas)

    这篇文章主要介绍了JavaScript实现拖动滑块拼图验证(html5、canvas),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • JavaScript 性能提升之路(推荐)

    JavaScript 性能提升之路(推荐)

    这篇文章主要介绍了JavaScript性能提升,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 原生js仿写手机端下拉刷新

    原生js仿写手机端下拉刷新

    这篇文章主要为大家详细介绍了原生js仿写手机端下拉刷新,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • js窗口关闭提示信息(兼容IE和firefox)

    js窗口关闭提示信息(兼容IE和firefox)

    这篇文章主要介绍了当关闭窗口的时候,显示窗口提示信息,友好的进行提示,防止丢失重要信息,需要的朋友可以参考一下
    2015-10-10

最新评论