ES6变量:
1、var
- 可以重复声明;
- 无法限制修改;
- 没有块级作用域;(如,{...},if(){..} ...)
2、let
- 不可以重复声明,变量—可以重复修改,有块级作用域;
let a = 12; a = 5; alert(a);
// 输出:5window.onload = function(){ var btn = document.getElementsByTagName('input'); for(let i=0;i < btn.length; i++){ btn[i].onclick = function(){ alert(i+1); } } // 输出:1 2 3 // for(var i=0;i < btn.length; i++){ // (function(i){ // 自调用函数 // btn[i].onclick = function(){ // alert(i+1); // } // })(i); // } // 输出:1 2 3 // for(var i=0;i < btn.length; i++){ // btn[i].onclick = function(){ // alert(i); // } // } // 输出:3 3 3 解决方法==》自调用函数 };
3、const
- 不可以重复声明,常量—不能修改,有块级作用域;
const a = 12; a = 5; alert(a); // 输出:Uncaught TypeError: Assignment to constant variable.
// (不能对常量赋值)
===============================================================if(true){const b = 4;}alert(b);// 输出: b is not defined