【前端面试题】var、let和const的区别-js
ES6之前用 var 定义变量。ES6中新增了块级作用域(由花括号{ }包裹)。let 和 const 声明的变量属于块级作用域,var 声明的变量属于函数作用域。
1. var
① var定义的变量,没有块的概念,可以跨块访问。
②var定义的变量可以修改,如果不初始化会输出undefined,不会报错。
③重复声明不报错,视作修改。
2. let
①定义的变量,只能在块作用域里访问,不能跨块访问,但不影响作用域链。
②不能重复声明变量。
//不影响作用域链 可以输出123.
{
let n = 123;
function fn(){
console.