js的预解释是什么意思?浅析js中预解释的含义
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了js的预解释是什么意思?浅析js中预解释的含义,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1920字,纯文字阅读大概需要3分钟。
内容图文
![js的预解释是什么意思?浅析js中预解释的含义](/upload/InfoBanner/zyjiaocheng/286/0f1f1576026b498b9b0d9fb7fc2f7643.jpg)
之前经常会听到预解释,预解释,那么预解释到底是什么?今天就来浅谈一下下。
预解释也是我们平时说的变量提声,在当前作用域中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)是有值的。
相关推荐:
扒一扒JavaScript 预解释_javascript技巧
JScript中的条件注释详解_javascript技巧
以上就是js的预解释是什么意思?浅析js中预解释的含义的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的js的预解释是什么意思?浅析js中预解释的含义全部内容,希望文章能够帮你解决js的预解释是什么意思?浅析js中预解释的含义所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。