JavaScript变量声明与变量声明提前
时间:2019-11-11
本文章向大家介绍JavaScript变量声明与变量声明提前,主要包括JavaScript变量声明与变量声明提前使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
JavaScript变量声明
JavaScript中存储数据的容器称为变量。用关键字和标识符创建新变量的语句,称为变量声明。可以通过关键字var进行变量声明,在ES6中增加了let、const关键字声明变量的语法。
JavaScript变量声明提前
在JavaScript的函数作用域(function scope)是指在函数内var声明的所有变量在函数体内始终是可见的。JavaScript的这个特性被非正式地称为声明提前(hosting),即JavaScript函数里声明的所有变量(但不涉及赋值)都被“提前”至函数体的顶部。
var scope = "global"; function f() { console.log(scope);//=>"undefined" var scope = "local";// console.log(scope);//=>"local" }
由于函数作用域的特性,局部变量在整个函数体内始终是有定义的,也就是说,在函数体内局部变量遮盖了同名全局变量。尽管如此,只有在程序执行到var语句的时候,局部变量才会被真正赋值。因此,上述过程等价于:将函数的变量声明“提前”至函数体顶部,同时变量初始化留在原来的位置:
var scope = "global"; function f() { var scope; //在函数顶部声明了局部变量 console.log(scope);//变量存在,但是其值是“undefined” scope = "local";//这里将其初始化并赋值 console.log(scope);//=>这里它具有了我们所期望的值 }
原文地址:https://www.cnblogs.com/f6056/p/11834091.html
- Silverlight:Dependency Property(依赖属性)学习笔记
- Silverlight:利用异步加载Xap实现自定义loading效果
- Docker容器学习梳理--手动制作系统镜像
- 怎样裁剪图片的局部
- vb中实现最佳按钮效果
- silverlight:wcf双工通讯学习笔记
- Docker容器学习梳理--web管理工具DockerUI部署记录
- Docker容器学习梳理-容器硬盘热扩容
- 检测到Loaderlock的问题
- 权威报告预测比特币在2018年“王位”不保
- Linux下FTP环境部署梳理(vsftpd和proftpd)
- Silverlight如何与JS相互调用
- Docker容器学习梳理--私有仓库Registry使用
- 从插件重构看如何提升测试质量与效率
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Lombok快速入门
- Apache Curator操作zookeeper的API使用
- 微信公众号开发-自定义菜单接口
- 基于JDK命令行工具的监控
- 基于JVisualVM的可视化监控
- 基于Btrace的监控调试
- 大数据框架—Flink与Beam
- Mybatis动态SQL
- Mybatis-Generator插件的使用与Spring集成Mybatis的配置
- Mybatis的缓存机制详解
- zookeeper基本特性与基于Linux的ZK客户端命令行学习
- Apache Curator操作zookeeper的API使用
- 使用Java API操作zookeeper的acl权限
- 使用ZooKeeper提供的原生Java API操作ZooKeeper节点
- CountDownLatch类的使用