var,let,const,三种申明变量的整理
javascript,正在慢慢变成一个工业级语言,势力慢慢渗透ios,安卓,后台
首先let,是局部变量,块级作用域;var全局的,const是常量,也就是只读的;
一行demo说明
for (var i = 0; i < 10; i++) {
var p=document.getElementsByTagName("p");
for (let i = 0; i < p.length; i++) {
p[i].onclick=function(){
alert(p[i].innerHTML)
};
}
此处如果是var申明的那么,无论怎么点击,弹出都是undefined,如果要var实现,就要改写带代码如下
var p=document.getElementsByTagName("p");
for (var i = 0; i < p.length; i++) {
(function(i){
p[i].onclick=function(){
alert(i)
}
})(i)
}
但是有了let这个武器,咱再也不用这么繁琐了,直接let搞定
如果是const,那么这里会报错,因为const申明无法修改;
关于let和var的又一个对比
var p=document.getElementsByTagName("p");
function my(){
let i=5;
if(true){
let i=4
}
console.log(i)//此处是4,如果是var此处是5
}
my()