当前位置:网站首页>关于let var 和const的区别以及使用
关于let var 和const的区别以及使用
2022-08-04 05:26:00 【strongest强】
var的说明
1.可以提升自己的变量
例如:
console.log(a);
var a;
a=100;
console.log(a);
输出
undefined
100
2.变量的值可以进行更改
例如:
var a=100;
console.log(a);
a=200;
console.log(a);
输出:
100
200
3.变量在全局作用域
例如:
var a=100;
console.log(a);
function change(){
if(true){
a++;
}
return a;
}
console.log(change());
输出:
100
101
let的说明
1.不可以提升自己的变量
console.log(b);
let b=100;
输出:
Cannot access 'b' before initialization
2.变量的值可以进行更改
let b=100;
console.log(b);
b=200;
console.log(b);
输出
100
200
3.块级作用域下的变量,在别的函数作用域下,不可以使用
if (true) {
let b = 100;
console.log(b);
}
console.log(b);
输出:
100
b is not defined
const的说明
1.不可以提升自己的变量
console.log(a);
const a=15;
输出:
Cannot access 'a' before initialization
2.简单型数据变量的值不可以进行更改;当不涉及地址改变时,复杂型数据型变量的值(如数组,对象等)可以进行更改;当涉及地址改变时,复杂型数据型变量的值(如数组,对象等)不可以进行更改;
例如:
const person=['Wei','Uzi','Xiaohu','Ming'];
console.log(person);
person[1]='Gala';
console.log(person);
const team={
Lpl:'Ig',
Lck:'Skt',
Lec:'Fnc'
}
console.log(team);
team.Lpl='Rng';
console.log(team);
person=['Cryin','Gala','Wei','Xiaohu'];
console.log(person);
team={
Lpl:'fpx',
Lck:'Dk',
Lec:'G2'
}
console.log(team);
输出:
["Wei", "Uzi", "Xiaohu", "Ming"]
["Wei", "Gala", "Xiaohu", "Ming"]
{Lpl: "Ig", Lck: "Skt", Lec: "Fnc"}
{Lpl: "Rng", Lck: "Skt", Lec: "Fnc"}
Assignment to constant variable.
Assignment to constant variable.
3.块级作用域下的变量,在别的函数作用域下,不可以使用
例如:
if (true) {
const a = 1999;
}
console.log(a);
输出:
a is not defined
关于let的更多应用,比如遍历循环时,可以用let代替var
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<button>搜索1</button>
<button>搜索2</button>
<button>搜索3</button>
<button>搜索4</button>
<script>
var btns = document.querySelectorAll('button');
//错误示例
// for (var k = 0; k < btns.length; k++) {
// btns[k].onclick = function() {
// for (var i = 0; i < btns.length; i++) {
// btns[i].innerText = '搜索' + i;
// }
// btns[k].innerText = '搜索我啊,小笨蛋,(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ'
// }
// }//会先编译for循环,然后找不到btns[k=4]这个按钮,因此会报错
//正确示例
// 1.如立即执行函数
for (var i = 0; i < btns.length; i++) {
(function(e) {
btns[e].onclick = function() {
for (var i = 0; i < btns.length; i++) {
btns[i].innerText = '搜索' + i;
}
btns[e].innerText = '搜索我啊,小笨蛋,(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ'
}
})(i) //i作为实参传递给形参e
}
//2.利用es6新语法,let变量
for (let k = 0; k < btns.length; k++) {
btns[k].onclick = function() {
for (var i = 0; i < btns.length; i++) {
btns[i].innerText = '搜索' + i;
}
btns[k].innerText = '搜索我啊,小笨蛋,(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ'
}
}
</script>
</body>
</html>
至于效果,就你们自己点击啦!
最后,感谢大家的观看,点赞收藏支持一下,谢谢各位!
边栏推荐
- Unity DOTS学习教程汇总
- 7.13 Day20----MYSQL
- EventBus源码分析
- 一个对象引用的思考
- Cannot read properties of null (reading 'insertBefore')
- Resolved error: npm WARN config global `--global`, `--local` are deprecated
- 8.03 Day34---BaseMapper query statement usage
- 7. Execution of special SQL
- (Kettle) pdi-ce-8.2 连接MySQL8.x数据库时驱动问题之终极探讨及解决方法分析
- 7.16 Day22---MYSQL (Dao mode encapsulates JDBC)
猜你喜欢
随机推荐
OpenRefine开源数据清洗软件的GREL语言
Grain Mall - Basics (Project Introduction & Project Construction)
利用Jenkins实现Unity自动化构建
The cost of automated testing is high and the effect is poor, so what is the significance of automated testing?
想好了吗?
大龄程序员的心理建设
Teenage Achievement Hackers Need These Skills
Oracle备份脚本
3面头条,花7天整理了面试题和学习笔记,已正式入职半个月
word 公式编辑器 键入技巧 | 写数学作业必备速查表
力扣:343. 整数拆分
Unity Visual Effect Graph入门与实践
4.1 声明式事务之JdbcTemplate
程序员的财富观
C language -- operator details
npm报错Beginning October 4, 2021, all connections to the npm registry - including for package installa
sql server如何得到本条记录与上一条记录的差异,即变动值
7.15 Day21---MySQL----索引
Typora 使用保姆级教程 | 看这一篇就够了 | 历史版本已被禁用
实现登录密码混合动态因子,且动态因子隐式