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相关推荐

  1. JavaScript中的const

    const (const) Like other programming languages, JavaScript also provide the feature to create consta ...

  2. JavaScript let、const与var的区别

    ES5中的var是没有块级作用域的(if/for) ES5中的let是有块级作用域的(if/for) ES5之前因为if和for都没有块级作用域的概念,所以在很多时候,我们都必须借助于function ...

  3. 个人怎么查车辆的保养及维修记录查询,JavaScript let 和 const

    // 使用 var function myFunction() {var carName = "Volvo"; // 局部作用域 }// 使用 let function myFun ...

  4. JavaScript系列文章:谈谈let和const

    最近接触到ES6的一些相关新特性,想借let和const两个命令谈谈JavaScript在变量方面的改进. 由于let和const有很多相似之处,我们就先说一说let吧. 1. let添加了块级作用域 ...

  5. ES6 新特性之 let, const : JavaScript在变量方面的改进。

    let : 块级作用域 我们知道,JavaScript是没有块级作用域的,如果在块内使用var声明一个变量,它在代码块外面仍旧是可见的: if (true) {var foo = 3; } conso ...

  6. var和let和const_用故事讲解JavaScript的var,let和const变量

    var和let和const by Prarthana S. Sannamani 通过Prarthana S.Sannamani 用故事讲解JavaScript的var,let和const变量 (Jav ...

  7. dart参数传方法_为 JavaScript 开发人员准备的 Dart 参考教程

    Dart 是 Flutter 主要的开发语言,这一篇文章主要为 JavaScript 开发人员准备的 Dart 教程,我会用很详细的对比来参考,力争 JavaScript 开发人员可以快速的熟练使用 ...

  8. uniapp 获取到js文件var一个变量怎么获取到这个变量值_浅析Js中const,let,var的区别及作用域...

    理解:let变量的作用域只能在当前函数中 js中const,let,var的区别及作用域_lianzhang861的博客-CSDN博客​blog.csdn.net 全局作用域中,用 const 和 l ...

  9. Duilib嵌入CEF以及JavaScript与C++交互

    转载:http://blog.csdn.net/foruok/article/details/50573612 转载:http://blog.csdn.net/foruok/article/detai ...

最新文章

  1. python要学多久-零基础python培训需要学多久?
  2. 【Android 界面效果49】RecyclerView高度随Item自适应
  3. 机器人动力学建模实例(二):三连杆机械臂
  4. 数据结构--双向链表
  5. 前端传递多个数组以及其他参数,springboot后台如何接收
  6. c++_导入/导出excel文件
  7. FastHook——实现.dynsym段和.symtab段符号查询
  8. eclipse、EditPlus等编辑器选中列(块)的方法
  9. 大型网络整体安装与配置解决方案
  10. 写论文与PPT汇报时matlab图片的背景透明处理
  11. css内联样式!important
  12. 【ONE·Linux || 权限 】
  13. 国内外免费公用mqtt测试服务器推荐
  14. 《晨间日记的奇迹读》书笔记
  15. Captcha Cracker (java)附带replace用法
  16. 海域重力场与垂直基准产品构建及质量评估系统
  17. 【本科生科研入门】英文科技论文写作-绘图篇
  18. 学计算机心得体会50字,阅读心得体会50字
  19. 《信用管理》--信用评分方法
  20. 【BP数据预测】基于matlab斑点鬣狗算法优化BP神经网络数据预测【含Matlab 219期】

热门文章

  1. javascript笔记:javascript的前世,至于今生嘛地球人都知道了哈
  2. Android教程之android平台水波效果!提供源码!
  3. [NHibernate] NHibernate对象关系映射工具了解
  4. 机器学习实践四--正则化线性回归 和 偏差vs方差
  5. leetcode486. 预测赢家(dp)
  6. React Native指南
  7. fpga中的slack_是否想减少部署过程的恐怖程度? 在Slack中构建ChatOps。
  8. 机器学习模型 非线性模型_调试机器学习模型的终极指南
  9. hadoop将消亡_数据科学家:适应还是消亡!
  10. 机器学习 建立模型_建立生产的机器学习系统