ES6-let,const解析
时间:2022-07-25
本文章向大家介绍ES6-let,const解析,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
ES6-let,const解析
我们先看看ES5中var变量的缺点
- var会使变量提升(即下面声明的上面也可以使用)
console.log(a);
var a = 10;
- 变量可重复定义,也不会报错
var a = 10;
var a = 20;
- var声明的变量会挂载到window上,会使window上的方法失效
var name = 20;
console.log(window.name);
- 方法内的变量未经声明立即使用,也会挂载到window上
function print(){
a = 30;
}
ES6-let 解析
- let的优点 1.没有变量提升(即变量必须声明了才能使用)
console.log(a);//这里会报错,显示a未定义
let a = 20;
- 不能重复定义(重复声明会报错)
let a = 20;
let a = 30;//a is already delcare!
- 不会挂载到window上(不会影响到window上的方法)
let name = 20;
console.log(window.name);//undefined;
- 可以解决闭包的问题
此处形成了闭包,所以导致function拿到的i是同一个,所以每次打印的都是10
var arr = [];
for(var i = 0; i < 10; i++){
arr.push(function(){
console.log(i);
})
}
arr[1]();//10
arr[2]();//10
解决方案:将var的变量i换成let声明的变量i
var arr = [];
for(let i = 0; i < 10; i++){
arr.push(function(){
console.log(i);
})
}
arr[1]();//1
arr[2]();//2
- let的缺点
- 会导致临时死区(即外面声明了变量a,里面也声明了变量a,{}里面的a会使外面的a失效,此处的{}可以是函数{}即作用域)
let a = 10;
{
console.log(a);
let a = 20;
}
ES6-const解析
- const的用处:
- 定义常量,如果定义的常量被修改会报错此处指的会报错是常量未原始值
const A = 20;
A = 30;
1.如果定义的是引用值,则可以修改
let obj = {
name: 'zhangsan'
}
const Role = obj;
Role.name = "lisi";
- const的其他特点和let相同,即不会变量提升,不会挂载到window, 不能重复声明,缺点也相同,也会造成临时死区
- 【视频】自然框架之分页控件的使用方法(二) 下载、DLL说明和web.config的设置
- Jsp开发中遇到的中文乱码问题及解决方法
- 开发中最常见的Java字符串问题总结
- .net异步性能测试(包括ASP.NET MVC WebAPI异步方法)
- Java 8的函数式编程学习
- 在C++中反射调用.NET(一) 反射调用第一个.NET类的方法
- QuickPager分页控件,最简单的设置代码
- Java中有关Null的9问题
- 在C++中反射调用.NET(二) 定义数据接口 绑定委托方法 使用SOD DTO 对象 将.NET对象转换到C++结构体为何不使用序列化的问题
- Java阻塞队列线程集控制的实现方法
- 【自然框架】QuickPager分页控件,新增一种分页方式——伪URL分页(Postback版)
- 我们的漏洞Webug 3.0中级进阶攻略(上)
- 【自然框架】QuickPager分页控件的总体介绍和在线演示
- 在C++中反射调用.NET(三) 使用非泛型集合的委托方法C++中的列表对象list C++传递集合数据给.NET创建泛型List实例反射静态方法反射调用索引器当委托遇到协变和逆变C++/CLI
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- laravel-admin自动生成模块,及相关基础配置方法
- laravel-admin select框默认选中的方法
- Laravel-admin之修改操作日志的方法
- php使用curl伪造浏览器访问操作示例
- 关于laravel后台模板laravel-admin select框的使用详解
- 基于Laravel-admin 后台的自定义页面用法详解
- php解决约瑟夫环算法实例分析
- 浅谈laravel-admin的sortable和orderby使用问题
- 使用composer安装使用thinkphp6.0框架问题【视频教程】
- 基于laravel-admin 后台 列表标签背景的使用方法
- 解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
- laravel-admin 中列表筛选方法
- Laravel框架控制器的middleware中间件用法分析
- laravel-admin的图片删除实例
- 在laravel-admin中列表中禁止某行编辑、删除的方法