关于预解释的理解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于预解释的理解相关的知识,希望对你有一定的参考价值。

正式课---预处理
预处理的解释(变量提声)
在当前的作用域中,JS代码执行之前,浏览器首先会默认的把所有带var和function的进行提前的声明或者定义
1)理解声明和定义 var num =12; 声明(declare):var num; 告诉浏览器在全局作用域中有一个叫num的变量了 定义(defined) num=12;给变量赋值 2)对于带var和function的关键字的在预解释的时候操作还是不一样的 var在与解释的时候只是提前的声明 function在预解释的时候提前的声明+定义都完成了 3)预解释只发生在当前的作用域下,例如:开始只对window下的进行预解释,只有函数执行的时候才会对函数中的进行预解释 4)JS中内存的分类 栈内存:用来提供一个供JS代码执行的环境 ,作用域(全局作用域/私有的作用域) 堆内存:用来存储引用数据类型的值,对象储存的是属性名和属性值,函数储存的是代码字符串。。。 比如console.log(num); var num =12; 这个时候console之前浏览器已经默认声明过num了,但是因为还没有赋值,所以输出是undifined,因为有了预解释所以不会报错 函数执行可以写在函数之上,这就是因为预解释的时候会声明加定义的缘故

 

以上是关于关于预解释的理解的主要内容,如果未能解决你的问题,请参考以下文章

关于js----------------分享前端开发常用代码片段

我理解的js中预解释

JS 预解释相关理解

关于解释MATLAB代码及相关问题?

js对代码解析机制

JavaScript预编译