Javascript let和const
Javascript let和const
在 ES6 之前,JavaScript 只有两种作用域:
全局变量 : 在函数外声明的变量作用域是全局的
局部变量(函数变量):在函数内声明的变量作用域是局部的
<script type="text/javascript">var a = "aaa";console.log(a) // aaafunction myFunction() {var b = "bbb";console.log(a) // aaaconsole.log(b) // bbb// 这里也可以使用 carName 变量}console.log(b) // 报错</script>
块级作用域:
1) 块级作用域不影响var声明的变量。使用 var 关键字声明的变量不具备块级作用域的特性,它在 {} 外依然能被访问到。
{ var x = 2;
}
console.log(x) // 2let i = 5;
for (let i = 0; i < 10; i++) {// 一些代码...
}
console.log(i); // 5
2)let
a) 声明的变量只在所处于的块级有效
b) let没有‘变量提升’的特性,而是‘暂时性死区(temporal dead zone)’特性。
function func(args){if(true){console.log(i); // Cannot access 'i' before initializationlet i = 6;console.log(i); // 6}console.log(i); // i is not defined
};
func();
一个经典例子:
var arr = [];
for(var i = 0; i < 2; i++){arr[i] = function(){console.log(i);};
};
arr[0](); // 2
arr[1](); // 2
'use strict';
var arr = [];
for(let i = 0; i < 2; i++){arr[i] = function(){console.log(i);};
};
arr[0](); // 0
arr[1](); // 1
3) const
a) 声明的变量只在所处于的块级有效
b) const是用来声明恒定变量的,声明的同时就必须赋值,否则会报错。
const 定义的变量并非常量,并非不可变,它定义了一个常量引用一个值。使用 const 定义的对象或者数组,其实是可变的。
// 创建常量对象
const car = {type:"Fiat", model:"500", color:"white"};
// 修改属性:
car.color = "red";
// 添加属性
car.owner = "Johnson";不能对常量对象重新赋值:
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"}; // 错误
Javascript let和const相关推荐
- JavaScript中的const
const (const) Like other programming languages, JavaScript also provide the feature to create consta ...
- JavaScript let、const与var的区别
ES5中的var是没有块级作用域的(if/for) ES5中的let是有块级作用域的(if/for) ES5之前因为if和for都没有块级作用域的概念,所以在很多时候,我们都必须借助于function ...
- 个人怎么查车辆的保养及维修记录查询,JavaScript let 和 const
// 使用 var function myFunction() {var carName = "Volvo"; // 局部作用域 }// 使用 let function myFun ...
- JavaScript系列文章:谈谈let和const
最近接触到ES6的一些相关新特性,想借let和const两个命令谈谈JavaScript在变量方面的改进. 由于let和const有很多相似之处,我们就先说一说let吧. 1. let添加了块级作用域 ...
- ES6 新特性之 let, const : JavaScript在变量方面的改进。
let : 块级作用域 我们知道,JavaScript是没有块级作用域的,如果在块内使用var声明一个变量,它在代码块外面仍旧是可见的: if (true) {var foo = 3; } conso ...
- var和let和const_用故事讲解JavaScript的var,let和const变量
var和let和const by Prarthana S. Sannamani 通过Prarthana S.Sannamani 用故事讲解JavaScript的var,let和const变量 (Jav ...
- dart参数传方法_为 JavaScript 开发人员准备的 Dart 参考教程
Dart 是 Flutter 主要的开发语言,这一篇文章主要为 JavaScript 开发人员准备的 Dart 教程,我会用很详细的对比来参考,力争 JavaScript 开发人员可以快速的熟练使用 ...
- uniapp 获取到js文件var一个变量怎么获取到这个变量值_浅析Js中const,let,var的区别及作用域...
理解:let变量的作用域只能在当前函数中 js中const,let,var的区别及作用域_lianzhang861的博客-CSDN博客blog.csdn.net 全局作用域中,用 const 和 l ...
- Duilib嵌入CEF以及JavaScript与C++交互
转载:http://blog.csdn.net/foruok/article/details/50573612 转载:http://blog.csdn.net/foruok/article/detai ...
最新文章
- python要学多久-零基础python培训需要学多久?
- 【Android 界面效果49】RecyclerView高度随Item自适应
- 机器人动力学建模实例(二):三连杆机械臂
- 数据结构--双向链表
- 前端传递多个数组以及其他参数,springboot后台如何接收
- c++_导入/导出excel文件
- FastHook——实现.dynsym段和.symtab段符号查询
- eclipse、EditPlus等编辑器选中列(块)的方法
- 大型网络整体安装与配置解决方案
- 写论文与PPT汇报时matlab图片的背景透明处理
- css内联样式!important
- 【ONE·Linux || 权限 】
- 国内外免费公用mqtt测试服务器推荐
- 《晨间日记的奇迹读》书笔记
- Captcha Cracker (java)附带replace用法
- 海域重力场与垂直基准产品构建及质量评估系统
- 【本科生科研入门】英文科技论文写作-绘图篇
- 学计算机心得体会50字,阅读心得体会50字
- 《信用管理》--信用评分方法
- 【BP数据预测】基于matlab斑点鬣狗算法优化BP神经网络数据预测【含Matlab 219期】
热门文章
- javascript笔记:javascript的前世,至于今生嘛地球人都知道了哈
- Android教程之android平台水波效果!提供源码!
- [NHibernate] NHibernate对象关系映射工具了解
- 机器学习实践四--正则化线性回归 和 偏差vs方差
- leetcode486. 预测赢家(dp)
- React Native指南
- fpga中的slack_是否想减少部署过程的恐怖程度? 在Slack中构建ChatOps。
- 机器学习模型 非线性模型_调试机器学习模型的终极指南
- hadoop将消亡_数据科学家:适应还是消亡!
- 机器学习 建立模型_建立生产的机器学习系统