本人水平有限,如内容有误,欢迎指正,谢谢。

let  :

主要特点:

1.作用域只局限于当前代码块。
2.使用let 声明的变量作用域不会被提升。
3.在相同的作用域下不能声明相同的变量。
4.for循环体现let的父子作用域。

----------------------------------------------------

1.作用域只局限于当前代码块 。

解读:在{   } 作用域外,不能获取变量 a。

在{ } 之中,可以正常输出。

 2.没有变量声明提升。

传统ES 5里面,var 允许变量声明提升,如下: b 会返回undefined.  而用let 声明的 a 则直接报错。

 3.在相同的作用域下不能声明相同的变量

  *(直接解析报错哦 ~

 4.for循环体现let的父子作用域。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<button>按钮1</button>
<button>按钮2</button>
<button>按钮3</button>
<button>按钮4</button>
<button>按钮5</button>
</body>
<script> //经典的for 循环,用var 的时候,需要用闭包解决。
// 而let 就比较简洁
//闭包:
var btns = document.querySelectorAll('button');
for(var i = ;i < btns.length; i++){
(function(i){
btns[i].onclick = function(){
alert('点击了第' + (i + )+'个按钮');
}
})(i)
} //用 let
let btns = document.querySelectorAll('button');
for(let i = ;i<btns.length;i++){
btns[i].onclick = function(){
alert('点击了第' + (i+) +'个按钮');
}
} </script>
</html>

再来一个,for 循环中 用var , 由于紧接着就又定义了 i = 10 ; 所以循环只运行一次就结束循环。

而 使用let 就不一样了,for 里面的i  和中间 运行的 i 互不干扰,整个循环体会运行5次。

*{  } 中的 i 不会干扰到 for 阶段的 i 。

接下来是 const:

和let 差不多,const 也有以下特点:

1. 只在当前的代码块中有效。
2. 作用域不会被提升。
3. 不能重复声明。
4.声明的变量必须赋值,并且赋值后值不可变。(引用类型除外)

vue初体验-ES6 基础知识补充 let 和const的更多相关文章

  1. Redis基础知识补充及持久化、备份介绍(二)--技术流ken

    Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)--技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis ...

  2. Vue 2.0入门基础知识之全局API

    3.全局API 3-1. Vue.directive 自定义指令 Vue.directive用于自定义全局的指令 实例如下: <body> <div id="app&quo ...

  3. 曹工说Redis源码(2)-- redis server 启动过程解析及简单c语言基础知识补充

    文章导航 Redis源码系列的初衷,是帮助我们更好地理解Redis,更懂Redis,而怎么才能懂,光看是不够的,建议跟着下面的这一篇,把环境搭建起来,后续可以自己阅读源码,或者跟着我这边一起阅读.由于 ...

  4. Redis基础知识补充及持久化、备份介绍

    Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)–技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis持 ...

  5. Java基础知识补充

    基础知识总结: 学习了一段时间,重新看了孤傲苍狼的博客,对一些知识有了新的理解. unicode: 全球的文字放到计算机里面表示全是0和1,Unicode是统一了全世界国家文字的一种编码方式,用这样的 ...

  6. ES6 基础知识-----简记 let const

    ES5中只有函数作用域和全局作用域,声明变量使用var,在es6中添加声明变量 let const let 声明块级作用域变量, let 不存在变量提升 var命令会发生”变量提升“现象,即变量可以在 ...

  7. ES6基础入门之let、const

    作者 | Jeskson来源 | 达达前端小酒馆 01 首先呢?欢迎大家来学习ES6入门基础let,const的基础知识内容.初始ECMA Script6. ESMAScript与JavaScript ...

  8. vue初体验:实现一个增删查改成绩单

    前端变化层出不穷,去年NG火一片,今年react,vue火一片,ng硬着头皮看了几套教程,总被其中的概念绕晕,react是faceback出品,正在不断学习中,同时抽时间了解了vue,查看了vue官方 ...

  9. Vue 2.6版本基础知识概要(一)

    挂载组件 //将 App组件挂载到div#app节点里 new Vue({ render: h => h(App), }).$mount('#app') VueComponent.$mount ...

随机推荐

  1. NFC读写电子便签总结

    编写NFC程序的基本步骤 1)设置权限,限制Android版本.安装的设备: 1 2 3 4 <uses-sdk android:minSdkVersion="14"/> ...

  2. qrCode二维码字符串长度太多压缩的问题

    昨天整微信的扫码支付时,用qrcode生成二维码,结果字符串太长而失败.今天发现利用pako压缩,可扫描后显示乱码,特记录一下. palo插件地址:https://github.com/nodeca/ ...

  3. 1.1:Get Started with Unity Shaders

    文章著作权归作者所有.转载请联系作者,并在文中注明出处,给出原文链接. 本系列原更新于作者的github博客,这里给出链接. 第1章开始正式进入Unity Shader的学习. 什么是Shader 本 ...

  4. IDEA循环依赖报错解决方案

    step1.查找循环依赖 step2.在IDEA菜单栏中打开Analyze->Analyze Module Dependencies...看到有的模块被红色的标出来了,此时右边显示了循环依赖,那 ...

  5. MySQL驱动和数据库字符集设置不搭配

    刚才控制台又报这个错,这是代表MySQL驱动和数据库字符集设置不搭配: 错误: "...Initial client character set can be forced via the ...

  6. Flutter 获取控件尺寸和位置

    1. 插件必须渲染好, final RenderBox box = globalKey.currentContext.findRenderObject(); final size = box.size ...

  7. ElasticSearch(七) Elasticsearch在Centos下搭建可视化服务

    要想可视化ElasticSearch,就需要安装一些插件,安装插件的前提是安装所依赖的环境,比如java,maven等,本篇博文就不再走那些流程了.没安装的童鞋可以看我的ElasticSearch栏目 ...

  8. 写Java代码分别使堆溢出,栈溢出

    首先要搞清楚堆栈里放的什么东西: 栈存储运行时声明的变量——对象引用(或基础类型, primitive)内存空间,堆分配每一个对象内容(实例)内存空间. 一个变量可以先后指向多个对象实例:数组.链表等 ...

  9. 20175312 2018-2019-2 《Java程序设计》第3周学习总结

    20175312 2018-2019-2 <Java程序设计>第3周学习总结 教材学习内容总结 已依照蓝墨云班课的要求完成了第四章的学习,主要的学习渠道是PPT,和书的课后习题. 总结如下 ...

  10. JavaScript(类型转换、条件语句、循环、函数)

    类型装换 转为数字类型 // Number console.log(Number(undefined)); //NaN console.log(Number(null)); //0 console.l ...