基本概念
let命令:用来声明一个变量,同var非常相似
const命令:用来声明一个常量,常量就是不可改变的量
let命令
用let声明变量的注意事项
1、 使用let声明的变量,所声明的变量只在命令所在的代码块内有效
{ let a=1; var b=2; console.log(a);} console.log(a);//a is not defined 代码块之外是拿不到let声明的变量 console.log(b);//2
2、使用let命令声明的变量在域解析的时候不会被提升
console.log(a); //undefinedvar a=1;console.log(b); //报错 b is not definedlet b=2; typeof c; //报错 c is not definedlet c=10;
拓展
let f=10;function fn(){ f=7; //暂时性死区 let f=2; //在这里又声明了 let f=2}fn(); //f is not defined
3、let不允许在同一作用域下声明已经存在的变量
var a=1;let a;//报错,a已经存在let b=1;let b=1; //报错,b已经存在
拓展1
let在for循环中的应用
var btns=document.querySelectorAll("button");for(var i=0;i
输出0,1,2,3,4方法有以下几种
//方法1for(var i=0;i
//方法2for(var i=0;i
//方法3 letfor(let i=0;i
拓展2
for(let i=0;i<3;i++){ let i=10; console.log(i); //3次10}console.log(i);i is not defined//循环体内的i不会受到循环语句i的影响//在循环语句的这个父作用域与循环体的子作用域里,他们之间是分离的//使用let初始化i的时候,只在for循环语句中有用,而循环完成之后,不会泄露到for所在的作用域中。
const命令
const命令同样有上面let的1,2,3条特点
第一,所声明的常量只在其所在的代码块内有效
第二, 声明的常量不会被提升
第三,不能声明已经被声明过的常量或者变量
除了这些在使用const声明常量的时候需要注意的两点:
1、声明的时候必须赋值
var a;let b;const c;//报错
2、声明的常量储存简单的数据类型时不可改变其值,如果储存的是对象,那么引用不可以被改变,至于对象里面的数据如何变化,是没有关系的
const a=1;a={};//报错,a的值不可以被改变 const obj={c:10};obj.c=20;console.log(obj); //{c:20}
以上就是我对let ,const的简单总结。