码迷,mamicode.com
首页 > 其他好文 > 详细

let和const

时间:2018-07-29 23:27:48      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:报错   font   语句   变量   code   div   输出   onclick   size   

基本概念

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);   //undefined
var a=1;

console.log(b); //报错  b  is  not defined
let b=2;  

typeof c;  //报错  c  is  not defined
let 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循环中的应用

<button>1</button>
<button>2</button>
<button>3</button>
<button>4</button>
<button>5</button>
var btns=document.querySelectorAll("button");
for(var i=0;i<bths.length;i++){
     btns[i].onclick=function(){
         console.log(i);  
    }
}
//5   5次5

输出0,1,2,3,4方法有以下几种

//方法1
for(var i=0;i<btns.length;i++){
     btns[i].index=i;
     btns[i].onclick=function(){
         console.log(this.index);  
    }
}


//0,1,2,3,4

 

//方法2
for(var i=0;i<btns.length;i++){
    (function(){
          btns[i].onclick=function(){
             console.log(i);  
          }
    })(i);
}    


//0,1,2,3,4
//方法3  let

for(let i=0;i<btns.length;i++){
     btns[i].onclick=function(){
          console.log(i);  
     }
}    

//0,1,2,3,4
//再循环语句之内是一个父作用域,在循环体之中是一个子作用域

 

 

拓展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的简单总结。

let和const

标签:报错   font   语句   变量   code   div   输出   onclick   size   

原文地址:https://www.cnblogs.com/wendy-0112/p/9370968.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!