0

0

js的预解释是什么意思?浅析js中预解释的含义

不言

不言

发布时间:2018-08-22 17:59:50

|

1876人浏览过

|

来源于php中文网

原创

本篇文章给大家带来的内容是关于js的预解释是什么意思?浅析js中预解释的含义,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

之前经常会听到预解释,预解释,那么预解释到底是什么?今天就来浅谈一下下。
预解释也是我们平时说的变量提声,在当前作用域中js代码执行之前,浏览器首先会默认的把所有的带var和function的进行提前的声明或者定义,这个就可以叫做预解释。
那什么叫做声明,什么又叫做定义喃?
声明:比如

    var test

那这个就是在告诉浏览器我们在全局作用域中声明了一个叫test的变量

定义:比如

    test=2

给我们声明的变量进行赋值

那对于带var 和function关键字的,在预解释中,他们也是不一样的。带var 的在预解释中只是提前的声明,而function在预解释中既要声明,还要定义,这也就是为什么上面我们说 “ 提前声明定义 ”
举个例子

知识吐司
知识吐司

专注K12教育的AI知识漫画生成工具

下载
    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技巧


热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

70

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

73

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

298

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

471

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

17

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

114

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

79

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

94

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

74

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 4.1万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 2.4万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号