博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ES6简记
阅读量:5913 次
发布时间:2019-06-19

本文共 1007 字,大约阅读时间需要 3 分钟。

1.let 以及 const

  • 1.1 JS中只有函数作用域,而没有块级作用域
var s = 1;  var another = function() {     var s = 2}; another(); console.log(s);  //输出 1复制代码

这是var定义的函数作用域,函数作用域内赋值,不影响外面s的值

var s = 1; if(true) {     var s = 2;}; console.log(s);  //输出2复制代码

这是var定义的块级作用域,块级作用域中用var定义的变量赋值会影响外面的值

  • let和const就是为了解决var作用域的问题产生块级作用域
function f1() {  let n = 5;  if (true) {    let n = 10;  }  console.log(n); // 5}f1()复制代码

通过babel编译后

function f1() {  var n = 5;  if (true) {    var _n = 10;   //不是n,是_n  }  console.log(n); // 5     }f1();复制代码

babel发现里面的变量名和外面的变量名相同,就把变量名换一下 各个引擎有不一样的做法,例如node环境(直接用node命令启动)不依赖babel,node是V8引擎。

let t = 2; if(true) { let t = 1 }; console.log(t);复制代码

babel编译后

var t = 2;if (true) {  var _t = 1;};console.log(t);复制代码
  • 1.2 const(常量)
const C= 'C'; // readonly C = 'D';    // SyntaxError: src/ES6/let_const.js: "C" is read-only复制代码

定义一个只读常量(定义时需赋值)

const c= { // point to a reference 堆栈存储 指针	a:1}c={a: 2};   // point to another reference(指针变了)c.a = 2;    // c的reference并没有变 可以 (指针没变)复制代码

定义一个只读对象(堆中存储),指针只读,值可变

转载地址:http://bvqpx.baihongyu.com/

你可能感兴趣的文章
数据表的相关操作
查看>>
SQL 存储过程返回值
查看>>
卷积核与特征提取
查看>>
共轭分布
查看>>
SoapUI Pro Project Solution Collection-DataSource(jdbc,excel)
查看>>
maven及阿里云镜像
查看>>
ssh项目将搜索条件进行联动
查看>>
[CF494C]Helping People
查看>>
POJ 2594 Treasure Exploration(最小可相交路径覆盖)题解
查看>>
使用Promise链式调用解决多个异步回调的问题
查看>>
Windows2008 R2服务器配置TLS1.2方法
查看>>
制作mac U盘启动
查看>>
Charles中如何对https抓包
查看>>
数据挖掘十大经典算法
查看>>
IPOPT工具解决非线性规划最优化问题使用案例
查看>>
jQuery点击图片弹出放大特效下载
查看>>
同步/异步-阻塞/非阻塞
查看>>
postgresql 将同一个字段的值组合和将多个字段的值组合
查看>>
ArcGIS API for Silverlight 调用GP服务加载等值线图层
查看>>
Fiddler高级技巧 - 映射路径到本地文件夹
查看>>