js入门
1.变量
1.1 js中声明变量的方式有
1.var 2.let 3.const (常量)
``` /* let a = 10
// 变量可以理解为一个容器
// 声明变量可以使用let + 变量名 = 储存对象
console.log(a); */
// let 和 Var 的区别
// 1.变量提升
// let 声明的变量作用域为语句所在的代码块内,没有变量提升
// var 声明的变量作用域为语句所在的函数内(局部作用域内),有变量提升的问题
// 举例1
// let 配合循环
/* for (let i = 1; i < 10; i++) {
console.log(i);
} */
// console.log(i);
// 使用let 循环打印出来的结果
// 循环里为1-9
// 循环外则报错变量i未定义
// var 配合循环
/* for (var j = 1; j < 10; j++) {
console.log(j);
}
console.log(j); */
// 使用var 循环打印出来的结果
// 循环里为1-9
// 循环外为10,因为循环里判断为<10,但是最后一次执行循环j=10不满足条件会把j为10带到循环外面,所以循环里面是1-9,循环外面为10.
// 2.重复声明
// let 不允许在相同的作用域内,重复声明
// 举例
/*
let b = 1
let b
var b
报错:标识符b已被声明
同理 , 如果下面继续声明变量var b 也会报错
*/
/* var c = 1
var c = 2
// let c = 3
console.log(c); */
// var 重复命名则会覆盖前面的值 , 但是后面的 let 变量还是会报错:标识符已被声明
// 3.函数的参数重新声明,报错
// function fn(a) {
// let a = 1
// }
// 这里会报错 : 标识符a已被声明,所以函数里面变量命不能和函数的形参名字相同。
// 但是可以在函数里面添加一个花括号{}(局部作用域里面添加一个块作用域)
// 例如:
function fn1(b) {
{
let b = 1
console.log(b);
}
}
fn1()