let 和const与var的不同
1. let的作用域在代码块中仅限在当前的作用于中
{
var str1 = 12;
console.log(str1); //
let str2 = 20;
console.log(str2); //20
}
console.log(str1); //12
console.log(str2); //报错
2. let的变量不会被提升
{
console.log(str1); //undedfined
var str1 = 12;
//等同于
var str;
console.log(str1);
str1 = 12; console.log(str2); //报错 未定义
let str2 = 20;
//等同于
console.log(str2);
let str2;
str2 = 20;
}
3. let 不能重复声明
{
var str1 = 12;
var str1 = 15;
console.log(str1); // let str2 = 20;
let str2 = 25;
console.log(str2); //报错 不能声明两个相同的变量 //整个内容一起运行的时候上边的代码不会执行结果,因为实在解析str2的时候出错的
}
4. let的父子作用域
// 假设有5个按钮
var btns = document.getElementsByTagName("button"); for (var i = 0; i < btns.length; i++) {
btns[i].onclick = function (){
console.log(i); //始终为5
}
}
// 如果要想实现显示点击的第几个要用到闭包
for (var i = 0; i < btns.length; i++) {
(function(i){
btns[i].onclick = function (){
console.log(i); //从0开始点击那个显示第几个
}
})(i)
} // 用let
let btns = document.getElementsByTagName("button");
for (let i = 0; i < btns.length; i++){
btns[i].onclick = function (){
console.log(i); //从0开始点击那个显示第几个
}
} // 再看一个例子
for(let i = 0; i < 5; i++){
let i = 20;
console.log(i); //20 输出5次 (如果改为var 只会输出一次20)
}
5. const(一般声明常量)
const 与let 类似,有几个相同点,就不在粘贴代码了
1) 只在当前代码块作用域中有效
2) 不会被提升
3) 不能重复声明
不同之处
1)声明的时候必须赋值如下
const name = "张三";
console.log(name);
// 下面这样会报错
const name;
name = "张三";
console.log(name); // 报错
2)声明的值不能修改(对象除外)
const name;
name = "张三";
console.log(name); // 报错 // 如果是对象的话可以修改,因为对象是存放的时堆内存
const obj = {
name: "张三"
}
console.log(obj.name); // 张三
obj.name = "李四";
console.log(name); //李四
PS:我是一个新手,写这个除了分享外,也算是自己做的一个笔记,欢迎各位的大神指点,内容浅显,不喜勿喷,如果有错误,请指点
let 和const与var的不同的更多相关文章
- JavaScript中const、var和let区别浅析
在JavaScript中有三种声明变量的方式:var.let.const.下文给大家介绍js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始 ...
- JS中const、var 和let的区别
今天第一次遇到const定义的变量,查阅了相关资料整理了这篇文章.主要内容是:js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始化. 1 ...
- js中三种定义变量 const, var, let 的区别
js中三种定义变量的方式const, var, let的区别 1.const定义的变量不可以修改,而且必须初始化. 1 const b = 2;//正确 2 // const b;//错误,必须初始化 ...
- 关于ES6的let,const与var之间的三生三世
首先需要明确的是let.const.var都是用来定义变量的 在ES6之前,我们一般都用var来定义变量,例如 : function test(){ var i=1; console.log(i); ...
- delphi中move函数的正确理解(const和var一样,都是传地址,所以Move是传地址,而恰恰不是传值)太精彩了 good
我们能看到以下代码var pSource,pDest:PChar; len: integer;.......................//一些代码Move(pSource,pDest,l ...
- ES6中let、const和var的区别
一.let 1.基本用法 ES6 新增了let命令,用来声明变量. let 的用法类似于 var,但所声明的变量只在 let 命令所在的代码块内有效(一个“{}”相当于一个代码块) { let a = ...
- 浅谈ES6——ES6中let、const、var三者的区别
在了解let.const.var的区别之前,先了解一些什么是es6 Es6 全称ECMAscript 是JavaScript语言的一个标准,其实Es6本质就是JavaScript的一个版本,为什么叫E ...
- let、const、var区别?
let.const.var区别? let和const不存在变量提升(没有预解析,var有预解析). let和const在同一作用域范围内不能重复定义变量.(var可以). let和const有严格的作 ...
- js中三种定义变量的方式const, var, let的区别。
const var let区别 1.const 定义的变量不可以修改,而且必须初始化 const a = 3;正确 const a;错误,必须初始化 console.log("函数外c ...
随机推荐
- Tomcat服务器如何读取本地磁盘数据?
实际问题: 如何让用户下载本地磁盘的资源文件呢? 在server.xml文件中配置虚拟路径如下(以下代码放在Host标签之中即可): 例如: 具体含义: 把本地磁盘目录 "D:\uploa ...
- ASP.NET MVC AJAX的调用示例
@{ ViewBag.Title = "Home Page"; //下面引用Jquery和unobtrusive-ajax } @Scripts.Render("~/bu ...
- c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换
字节数组byte[]与图片image之间的转化 字节数组转换成图片 public static Image byte2img(byte[] buffer) { MemoryStream ms = ne ...
- scala配置intellij IDEA15.0.3环境及hello world!
1. Intellij IDEA Scala开发环境搭建 Intellij IDEA 15.0.3 默认配置里面没有Scala插件,需要手动安装,在Intellij IDEA 15.0.3 第一次运行 ...
- Scala-Spark digamma stackoverflow问题
Scala-Spark digamma stackoverflow问题 这两天在用spark做点击率的贝叶斯平滑,参考雅虎的论文进行了一番尝试. 先上代码: # click_count, show_c ...
- 【原创】修复ios输入框获取焦点时不支持fixed的bug
前些日子,做了一个手机站的项目,有一个页面是这样的, 有一个固定(position:fixed)的头部和底部导航,中间是一些表单内容,没啥特别的.但是到了ios中,正常滚动页面没有问题,一旦触发了文本 ...
- UVa11212,Editing a Book
正如书上所说,本题需要用IDA*算法求解 启发函数是3d+h>3maxd(d为当前操作步骤数,h为当前逆序对数,maxd为当前枚举的最大步骤数) 可见迭代递归的核心思想是枚举ans去dfs是否可 ...
- 用 eclipse 创建一个简单的 meaven spring springMvc mybatis 项目
下面是整体步骤: 1: 先创建一个Maven 项目: 选择跳过骨架: 因为要搭建的是 web 项目 所以这个地方选择 war 包; 点击完成 这样就完成 Maven项目的搭建: 接下俩 先把 Mav ...
- LINUX 笔记-netstat命令
netstat命令用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况.netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP ...
- Nginx-OpenResty安装配置
上两篇中介绍了: Ngnix技术研究系列1-通过应用场景看Nginx的反向代理 Ngnix技术研究系列2-基于Redis实现动态路由 发现,应该加一篇OpenResty的安装部署说明,方便大家按图索骥 ...