变量的使用 let
var a=12;
let: 用来定义变量
let a=12;
代码块: {} 包起来的代码, 形成了一个作用域,块级作用域
比如: if for while
特点: 只能在代码块里面使用
<script>
{
let a=12;
}
alert(a); // a is not defined
</script>
var 只有函数作用域
a). let具备块级作用域
b). 不允许重复声明
let a=12;
let a=5; //错的
总结: 其实let才接近其他语言的变量
用处:
封闭空间:
(function(){
var a=12;
})()
现在:
{
let a=12;
}
总结: 块级作用域,其实就是 匿名函数立即调用.
封闭空间 (i问题)
var:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<html lang="en">
<head>
<meta charset="UTF-8">
<script>
window.onload=function(){
var aBtn=document.getElementsByTagName('input');
for(var i=0; i<aBtn.length; i++){
(function(i){
aBtn[i].onclick=function(){
alert(i);
}
})(i);
}
};
</script>
</head>
<body>
<input type="button" value="aaa">
<input type="button" value="bbb">
<input type="button" value="ccc">
</body>
</html>
let:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html lang="en">
<head>
<meta charset="UTF-8">
<script>
window.onload=function(){
var aBtn=document.getElementsByTagName('input');
for(let i=0; i<aBtn.length; i++){
aBtn[i].onclick=function(){
alert(i);
}
}
};
</script>
</head>
<body>
<input type="button" value="aaa">
<input type="button" value="bbb">
<input type="button" value="ccc">
</body>
</html>
常量 const
一旦赋值,以后再也修改不了了
const a = 12;
a=15 //报错
注意:
const必须给初始值, 不能重复声明.
因为以后再也没法赋值了, 所以声明的时候一定得有值.
用途: 为了防止意外修改变量
比如引入库名, 组件名
字符串连接
之前:
var str='';
var str=""
反单引号: var str= `` --> 字符串模板
之前: 'abc'+变量名+'ef'
现在: `abc${变量名}ef`
1 |
|
解构赋值
认识解构赋值
1 |
|
解构赋值-跟顺序无关
1 | // var {a,b,c}={a:12,b:5,c:101}; |
解构赋值-模式匹配
1 | var [a,[b,c],d]=[12,[1,2],5]; // 左侧的样子,需要和右侧一样 |
解构赋值-交互(数据解析)
1 | var json={s:[1,2,3], a:'abc'}; |
解构赋值-赋默认值
1 | // 以前写法 |