JavaScript中的变量声明早于赋值分析
- 软件编程
- 2026-01-11 11:54:27
复制代码 代码如下:var a = 3;
实际有两个步骤:
1 初始化a为undefined
2 a赋值3
因此会出现一些“匪夷所思”的现象,即JS中变量可以先使用后声明。这在Java中是不允许的。
复制代码 代码如下:System.out.println(a);
int a = 1;
编译通不过。但JS可以,如下
复制代码 代码如下:alert(a);
var a;
虽然是undefined,但不会报错。说明a的确声明了,且为undefined。
如果只是“alert(a)”,没有“var a”的话JS引擎会报错的。
复制代码 代码如下:alert(a);
FF中如下
虽然可以先使用再声明,但这样会造成赋值的效果丢失。如下
复制代码 代码如下:
alert(a);
var a = 1;
这次输出的仍然是undefined而非1。
又如,
复制代码 代码如下:
alert('a' in window); // true
var a;
虽然代码形式上写在alert后,引擎仍然先自动处理var的声明。最后输出的是true。
明白了这些就不难理解下面的代码运行结果了
复制代码 代码如下:
if (!("a" in window)) {
var a = 1;
}
alert(a);
# 的是
# JS
# 报错
# BR
# 但不
# 又如
# 而非
# 有两个
# 写在
# 这在
# 匪夷所思
# 仍然是
# 明白了
# var
# 形式上
# 变量
# 赋值
# Javascript var变量隐式声明方法
# 关于JavaScript中var声明变量作用域的推断
# 基于JavaScript 声明全局变量的三种方式详解
# var与Javascript变量隐式声明
# JavaScript中函数声明优先于变量声明的实例分析
# JS声明变量背后的编译原理剖析
# 浅析JavaScript声明变量
相关栏目:
【
教研文案 】
【
日常文案 】
【
AI模型 】
【
网络运营 】
【
营销推广 】
【
云计算 】
【
技术教程 】
【
软件编程 】
【
汉字学习 】
【
歌词歌曲 】
【
精选文章 】
相关推荐:
快速解决pymongo操作mongodb的时区问题
python调用jenkinsAPI构建jenkins,并传递参数的示例
python 自定义异常和主动抛出异常(raise)的操作
PhpStorm连接服务器并实现自动上传功能
Django搭建项目实战与避坑细节详解
详解vue中使用transition和animation的实例代码
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-pac
MySQL中int(n)后面的n到底代表的是什么意思
python与idea的集成的实现
基于python模拟bfs和dfs代码实例
如何利用Python写个坦克大战
python基于pygame实现飞机大作战小游戏
如何用SpringBoot 进行测试
golang API开发过程的中的自动重启方式(基于gin框架)
group by 按某一时间段分组统计并查询(推荐)
java redis 实现简单的用户签到功能
Vue $attrs & inheritAttr实现button禁用效果案例
浅谈MySQL中float、double、decimal三个浮点类型的区别与总结
C# 操作 MongoDB的示例demo
微信小程序实现底部弹出模态框
python实现图像高斯金字塔的示例代码
原生js实现弹窗消息动画
javascript局部自定义鼠标右键菜单
redis分布式锁的go-redis实现方法详解
使用git上传到码云分支的实现
python3 通过 pybind11 使用Eigen加速代码的步骤详解
Git提交代码错了吃后悔药的几种常用办法(场景分析)
MySQL如何使用时间作为判断条件
Java程序执行过程及内存机制详解
RedisAPI原子性操作及原理解析
Python 数据分析之逐块读取文本的实现
Django中使用Celery的方法步骤
Docker配置阿里云镜像加速pull的实现
开启OCSP提升https证书验证效率解决Let’s Encrypt SSL证书访问慢的问题
PyCharm最新激活码PyCharm2025.2.3有效
python中append函数用法讲解
vue添加自定义右键菜单的完整实例
python中把元组转换为namedtuple方法
python基于win32api实现键盘输入
idea 开发神器之idea插件汇总
在Docker构建的容器中实现安装ping工具
Git 如何放弃所有本地修改的方法
C语言单链表实现学生管理系统
Navicat Premium远程连接MySQL数据库的方法
基于vue与element实现创建试卷相关功能(实例代码)
vue 基于abstract 路由模式 实现页面内嵌的示例代码
python 实现数据库中数据添加、查询与更新的示例代码
HTTP头隐藏PHP版本号实现过程解析
深入了解Vue3模板编译原理
MYSQL字符串强转的方法示例
本文转自网络,如有侵权请联系客服删除。
热门内容推荐
C#使用虚拟方法实现多态
- 2026-01-11
JavaScript原生对象之String对象的属性和方法详解
- 2026-01-11
js实现DOM走马灯特效的方法
- 2026-01-11
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
- 2026-01-11
php实现微信公众平台账号自定义菜单类
- 2026-01-11
