位置: 编程技术 - 正文

JS声明变量背后的编译原理剖析(javascript声明变量的语句)

编辑:rootadmin
只要是写过点JS代码,很简单一个var 就完事了。那对于JS编译器背后它又发生了什么呢?那就一步步通过代码来讲起。 上面的代码也会你答对了它会分别输出:1,undefined,2。对于我来说,第一反应它会输出:1,1,2。为什么第二个会输出undefined?在上面我明确定义了一个全局变量x,为何找不到? 那是因为:js编译器在执行这个y函数的时候,会把把它body里面的声明变量提前到最前面进行声明。比如:var x=2; 编译器先会在body最前面进行var x 声明。其实上面的代码等同于下面的这段代码: 所以也就不难理解x=undefined的了.但是如果把var x = 2;这段代码给删掉,在内部它没有进行var声明。它会一直沿着作用域向上找,此时的x 就为全局x. 接下来再看一个更有趣的例子。 例子很简单。第一个例子为输出,第二个会输出1。这是为什么呢?况且第二个例子我都return 了。按理都应当输出才对呀!那时因为JS编译器在背后作怪。 两段代码差别就是第二个例子多了个function a(){};便这个函数体里面什么也没有,并且也没有对它进行任何调用。其实JS编译器在背后会把function a() {}编译成 var a=function (){}。此时对于函数内部也有一个a=; 外面的a些也还是1;根据JS作用域。会先找内部的a,如果找不到再向上一级一级找。 最张alert(a) 就会显示1;

推荐整理分享JS声明变量背后的编译原理剖析(javascript声明变量的语句),希望有所帮助,仅作参考,欢迎阅读内容。

JS声明变量背后的编译原理剖析(javascript声明变量的语句)

文章相关热门搜索词:js中声明变量,js中声明变量方法几种,js中声明变量方法几种,js里面声明变量的规则是什么,js中声明变量,javascript声明变量的语句,js里面声明变量的规则是什么,js声明变量用哪个关键字,内容如对您有帮助,希望把文章链接给更多的朋友!

JavaScript 盒模型 尺寸深入理解 概念引自维基百科:根据由万维网联盟(W3C)于年发行并于年修订的CSS1所指定的,当任意一个块级元素的宽度或高度被显式指定,它应当只确定

javascript学习(一)构建自己的JS库 前言库是一个饱受争议的热门话题。一种观点认为它是一种非常棒的工具,是任何开发者都不可或缺的;另一种观点则认为在不理解库的内部工作原理

javascript学习(二)javascript常见问题总结 1、JS中方法和变量都是区分大小写的2、单引号、双引号在JS中没有特殊的区别,都可以用来创建字符串。但作为一般性规则,大多数开发人员喜欢用单

标签: javascript声明变量的语句

本文链接地址:https://www.jiuchutong.com/biancheng/379218.html 转载请保留说明!

上一篇:Three.js源码阅读笔记(基础的核心Core对象)(three. js)

下一篇:jQuery中hover与mouseover和mouseout的区别分析(hover在jquery中的用法)

  • 外贸出口退税流程视频
  • 怎么添加临时办社保卡
  • 商品开票是什么意思
  • 如何查询个人所有贷款记录
  • 增值税普通发票有什么用
  • 主营业务收入没收到钱怎么做账
  • 非金融单位贷款利息收入列示什么科目
  • 发放货物给员工 赠送
  • 异地成立分公司
  • 把材料退给客户怎么处理
  • 最新契税优惠政策公告财政部
  • 鉴证咨询公司成本是什么
  • 学校购货合同
  • 注册了店面没有营业执照
  • 财务刻章属于什么行业
  • 环保税优惠问题
  • 员工收到货款不交公司,法律规定
  • 或有事项确认预计负债的分录
  • linux的使用场合
  • 招待费专用发票需要认证吗
  • 借条未写还款期限,最长保护期是多久
  • php比较两个字符串
  • 入门易学
  • 职工教育经费的列支范围
  • 特殊行业需要缴什么税
  • thinkphpcount查询
  • PHP中使用关键字什么来指明类与类之间的继承关系
  • typescriptlang
  • head命令中表示输出文件前5行的参数是
  • 6.824 Lab 1: A simple web proxy
  • okhttp源码
  • 预缴的附加税需要转出吗
  • 银行手续费发票未到怎样做账
  • 前端面试题目100及最佳答案
  • 税控盘维护费280账务处理
  • 有形动产租赁服务的增值税税率
  • 广告设计要交文化事业建设
  • 停车费报销会计分录
  • 会计费用类科目明细
  • 生产成本如何做核算
  • 存货核算科目设置
  • 营改增后不动产转让增值税
  • 一般纳税人购进商品的会计分录
  • 冲销凭证如何做分录
  • 制造费用和直接人工的区别
  • 国际贸易单证有什么制单要求
  • 获取sql表达式时错误
  • xp系统cmd怎么打开
  • 在mysql中,删除表的外键约束的关键字为()
  • win7总是更新怎么办
  • 便签windows
  • ubuntu16.04输入法
  • mac版cad2022使用教程
  • win10系统无法更改
  • macos 备份
  • linux进程和线程底层实现原理一样吗
  • 服务器centos7
  • fsmb32.exe是什么进程 作用是什么 fsmb32进程查询
  • Linux系统怎么重启网卡
  • 升级win10系统后安装谷歌打不开
  • Linux系统中如何复制虚拟机
  • win7连接VPN时提示800错误怎么办 连接VPN时提示错误800解决方法
  • win8系统没有声音怎么办
  • nodejs 用途
  • perl写文件
  • 编写折半查找的程序
  • angularjs内置了很多有用的服务
  • unity3d apk
  • nodejs bull
  • 基于javascript的毕业设计
  • javascript基础教程pdf
  • java dom解析
  • First Class: UI of Android
  • 外经证预缴税款网上流程
  • 电子税务完税证明怎么打印
  • 73平方的房子有多大
  • 重庆投诉平台电话
  • 伤残补助金要解除合同吗
  • 广东地方税务局领导班子名单
  • 中国移动话费可以交水电费吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设