摘要:之前经常会听到预解释,预解释,那么预解释到底是什么今天就来浅谈一下下。所以预解释是只发生在当前作用域下的,只有函数执行的时候函数中的才会预解释。而是在预解释的时候,既要声明又要定义,所以是有值的。
之前经常会听到预解释,预解释,那么预解释到底是什么?今天就来浅谈一下下。
预解释也是我们平时说的变量提声,在当前作用域中js代码执行之前,浏览器首先会默认的把所有的带var和function的进行提前的声明或者定义,这个就可以叫做预解释。
那什么叫做声明,什么又叫做定义喃?
声明:比如
var test
那这个就是在告诉浏览器我们在全局作用域中声明了一个叫test的变量
定义:比如
test=2
给我们声明的变量进行赋值
那对于带var 和function关键字的,在预解释中,他们也是不一样的。带var 的在预解释中只是提前的声明,而function在预解释中既要声明,还要定义,这也就是为什么上面我们说 “ 提前声明或定义 ”
举个例子
var test = 2 var obj = {"name":"代码"} function foo (val) { var test2 = val console.log(test2) }
以上代码在全局作用域中从上往下执行的时候预解释,首先声明一个 test,声明一个obj,再声明和定义一个foo。那么在foo里面的 var test2在全局作用域下会预解释吗?当然是不行的, 上面我们也说过了“ 在当前作用域中js执行 ”test2在foo的作用域中,只有当foo执行的时候才会预解释。所以预解释是只发生在当前作用域下的,只有函数执行的时候函数中的才会预解释。
所以我们可能出去面试的时候就会遇到一些这样的问题
console.log(test ) foo(5) var test = 2 console.log(test ) var obj = {"name":"代码"} function foo (val) { var test2 = val console.log(test2) }
那么打印出来的内容是什么喃?
console.log(test )//undefined foo(5)//5 var test = 2 console.log(test )//2 var obj = {"name":"代码"} function foo (val) { var test2 = val console.log(test2) }
因为刚开始的时候只是对test做了声明,但是没有对它进行定义,所以第一次console是undefind,但是后来到了第二次console的时候,已经把2赋值给了test,所以第二个console是有值的。而foo是function,在预解释的时候,既要声明又要定义,所以foo(5)是有值的。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/108458.html
摘要:一概念是一个单线程解释型的编程语言。预编译大致可分为步创建对象找形参和变量声明,将形参和变量名作为属性名,值为将实参值和形参统一在函数体里面找函数声明,值赋予函数体。 一、JavaScript概念 JavaScript ( JS ) 是一个单线程、解释型的编程语言。 二、JavaScript语言特点 2.1 单线程 JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能...
摘要:图片的预加载是提升用户体验而损失性能的一种做法,而懒加载的性能就比较好了,所以将两个结合起来放到程序中是一种不错的选择。 最近在做H5滑页时,遇到一些比较大的场景,动辄二十、三十页,而图片更是可恨的能达到上百个,所以就会导致场景在加载的时候遇到网速比较慢的时候,用户等待的时间特别长,这样的话,就有可能导致一部分的用户没有耐心,而丢失这部分用户,于是就有了这里的图片的预加载和懒加载,记个...
摘要:预编译发生在函数执行前也就是说函数执行时,预编译已经结束。五总结理解预编译需要明白变量函数声明和变量赋值。预编译阶段,只进行变量函数声明,不会进行变量的初始化即变量赋值,所有变量的值都是变量赋值是在解释执行阶段才进行的。 一、JS的概念 JavaScript ( JS ) 是一种具有函数优先的轻量级解释型或即时编译型的编程语言。 二、JS语言特点 2.1 单线程 (1)JavaScri...
摘要:我绑定的事件无效。状况总结动态元素绑定用,静态元素绑定两者都可以,为了代码的统一还是都用吧,切记,可以筛选元素哦 状况之外 在之前的公司并没有遇到这个问题,也就没有深究。直到自己换了现在的公司,刚来第二天就开始写别人写到一半的项目,很无奈,不是原生就是jquery,由于项目急,已经来不及切换框架重新布局,只能继续了。 状况之中 到处都是列表,到处都是js创建的动态页面,好吧,那我也继续...
阅读 2778·2021-09-23 11:44
阅读 1670·2021-09-13 10:24
阅读 2618·2021-09-08 09:36
阅读 1230·2019-08-30 15:54
阅读 2247·2019-08-30 13:54
阅读 3307·2019-08-30 10:57
阅读 1843·2019-08-29 18:43
阅读 3609·2019-08-29 15:10