ES6 const let var 使用场景及差异

news/2024/7/10 22:41:30 标签: es6, javascript, 前端

建议使用的优先级:const > let > var

ES6 提出了两个新的声明变量的命令:let和const。其中,let完全可以取代var,因为两者语义相同,而且let没有副作用。

1.var、let、const的区别

var 定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。
let 定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
const 用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改。

2.let与var使用建议

在使用var去声明一个循环变量的时候,经常会遇到一个闭包的问题:

	var arr = [];
	for(var i=0;i<3;i++){
		arr.push(function(){
			console.log(i);
		});
	}
	arr.forEach(function(val,i){
		val();// 3 3 3
	});

上面打印出来的都是3,如果用let去声明i,结果就是正确的:

	var arr = [];
	for(let i=0;i<3;i++){
		arr.push(function(){
			console.log(i);
		});
	}
	arr.forEach(function(val,i){
		val();// 0 1 2
	});

3.const与let使用建议

在let和const之间,建议优先使用const,尤其是在全局环境,不应该设置变量,只应设置常量。

const优于let有几个原因。一个是const可以提醒阅读程序的人,这个变量不应该改变;另一个是const比较符合函数式编程思想,运算不改变值,只是新建值,而且这样也有利于将来的分布式运算;最后一个原因是 JavaScript 编译器会对const进行优化,所以多使用const,有利于提高程序的运行效率,也就是说let和const的本质区别,其实是编译器内部的处理不同。

const声明常量还有两个好处,一是阅读代码的人立刻会意识到不应该修改这个值,二是防止了无意间修改变量值所导致的错误。

4.例

for循环用let

for(let i=0;i<10;i++){
}

http://www.niftyadmin.cn/n/908661.html

相关文章

MySQL导入sql脚本 导出数据库

导出数据库不能停止服务cd /var/lib/mysql (进入到MySQL库目录&#xff0c;根据自己的MySQL的安装情况调整目录) mysqldump -u用户名 -p 数据库名 > 导出的文件名 或在-p后紧跟密码&#xff0c;不留空格&#xff0c;不建议在命令行中直接输入密码&#xff0c;以防别人从历史…

POJ 3249 Test for Job (dfs + dp)

题目链接&#xff1a;http://poj.org/problem?id3249 题意: 给你一个DAG图&#xff0c;问你入度为0的点到出度为0的点的最长路是多少 思路&#xff1a; 记忆化搜索&#xff0c;注意v[i]可以是负的&#xff0c;所以初始值要-inf。 1 #include <iostream>2 #include <c…

python了解中

1.python基本语法(笔记) print(hello world!!!) //输出如果字符串里面有很多字符都需要转义&#xff0c;就需要加很多\&#xff0c;为了简化&#xff0c;Python还允许用r’‘表示’内部的字符串默认不转义&#xff0c;可以自己试试&#xff1a; >>> print(\\\t\\) \…

[51nod1457]小K vs. 竹子

小K的花园种着n颗竹子&#xff08;竹子是一种茎部中空并且长得又高又快的热带植物&#xff09;。此时&#xff0c;花园中第i颗竹子的高度是hi米&#xff0c;并且在每天结束的时候它生长ai米。 实际上&#xff0c;小K十分讨厌这些竹子。他曾经试图去砍光它们&#xff0c;但由于竹…

SQL语句使用时间和日期的函数

SQL语句使用时间和日期的函数getdate():获取系统当前时间dateadd(datepart,number,date):计算在一个时间的基础上增加一个时间后的新时间值,比如&#xff1a;dateadd(yy,30,getdate())datediff(datepart,startdate,enddate):计算两个时间的差值,比如&#xff1a;datediff(yy,ge…

小程序---微信支付(简单明了,绕坑)

生成随机字符串函数 len传入位数 randomString: function (len) { /*32位随机数*/len len || 32;var $chars ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678; /*默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1*/var maxPos $chars.length;var pwd ;for (var i 0; i &…

使用git命令将本地项目上传到Gitlab上

上传、更新 鼠标右键打开git bash here: <1>输入git config --global user.name “你的用户名” <2>输入git config --global user.email “你的邮箱” <3>输入git init <4>输入git remote add origin 你刚才建立的项目连接 <5>输入git add . &…

为网站添加免费的访问计数统计和加入微博

为网站添加免费的访问计数统计 添加微博 1 <div id"weiboIframe" align"center"> 2 <iframe class"share_self" src"http://widget.weibo.com/weiboshow/index.php?language&width0&height550&fansRow1&ptype1&a…