JavaScript预解析之变量预解析和函数预解析

 更新时间:2022年07月27日 08:38:45   作者:困困子  
这篇文章主要介绍了JavaScript预解析之变量预解析和函数预解析的相关资料,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

首先了解预解析之前先看两个问题

1.大家思考下  这个结果会是多少呢?

console.log(num);
var num=10;

结果是 undefined

2.这个输出结果又会是多少呢?

fun();
var fun=function(){
    console.log(22);      
}

显然这个结果报错了。

那究竟为什么会这样执行呢?

1、我们js引擎运行js分为两步: 预解析   代码执行

  • 预解析  js引擎会把js里面所有的var还有function提升到当前作用域的最前面
  • 代码执行 按照代码书写的顺序从上往下执行

2、预解析分为  变量预解析(变量提升)和 函数预解析(函数提升)

  • 变量提升  就是把所有的变量声明提升到当前作用域最前面  不提升赋值操作
  • 函数提升  就是把所有函数声明提升到当前作用域的最前面  不调用函数

那我们第一个问题就相当于执行了以下代码

var num;
console.log(num);
num=10;

第二个问题相当于执行了以下代码

var fun;
fun();
fun=funciton(){
    console.log(22);
}

这下我们就可以看到  声明了一个变量 但是没有给值,接着又调用了fun()这个函数,但是没有这个函数,肯定会报错。
所以函数表达式调用必须要写在函数表达式声明的下面才可以。

相关文章

  • node.js入门教程迷你书、node.js入门web应用开发完全示例

    node.js入门教程迷你书、node.js入门web应用开发完全示例

    本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识。本书绝不是一本“Hello World”的教程。
    2014-04-04
  • JavaScript从原型到原型链深入理解

    JavaScript从原型到原型链深入理解

    这篇文章主要介绍了从原型与原型链开始讲起,如果你想知道构造函数的实例的原型,原型的原型,原型的原型的原型是什么,就来看看这篇文章吧。下面小编就来带大家一起学习一下
    2019-06-06
  • 一个简单的网站访问JS计数器 刷新1次加1次访问

    一个简单的网站访问JS计数器 刷新1次加1次访问

    一个简单的网站访问JS计数器,一般就是学习下原来,不建议使用,现在cnzz或百度统计多试不错的
    2012-09-09
  • JavaScript代码优雅,简洁的编写技巧总结

    JavaScript代码优雅,简洁的编写技巧总结

    专业开发人员将为未来的自己和“其他人”编写代码,而不仅仅只编写当前能工作就行的代码。在此基础上,简洁代码可以定义为自解释的、易于人理解的、易于更改或扩展的代码。以下列表一些好编写方式,仅供参考
    2022-10-10
  • 一文搞懂JavaScript中原型与原型链

    一文搞懂JavaScript中原型与原型链

    js中的原型与原型链应该是老生常谈的话题了,在前端面试中基本都是必问的一个问题,但是很多人还是稀里糊涂的,只知道其表层含义。本文将带大家深入了解JavaScript中的原型与原型链,感兴趣的可以学习一下
    2022-05-05
  • 优化JavaScript脚本的性能的几个注意事项

    优化JavaScript脚本的性能的几个注意事项

    优化JavaScript脚本的性能的几个注意事项...
    2006-12-12
  • JSONObject用法详解

    JSONObject用法详解

    本文详细讲解了JSONObject的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • JS暴虐查找法

    JS暴虐查找法

    JS暴虐查找法...
    2006-12-12
  • window.open参数详解附实例

    window.open参数详解附实例

    一般我们在开发过程中通过window.open打开新窗口,但现在浏览器与杀毒都防止了这个函数弹出页面,一般我们将页面设置信任才可以使用,不过我们在后台开发过程中仍然通过这个方法打开页面,这里简单介绍下使用方法与常用参数
    2013-06-06
  • JSON语法五大要素图文介绍

    JSON语法五大要素图文介绍

    JSON语法是一种轻量级的数据交换格式,易于人阅读和编写本文将详细介绍,需要了解的朋友可以参考下
    2012-12-12

最新评论

?


http://www.vxiaotou.com