js中let和const有什么用(js中定义变量var 与 let的区别)
导读:let 与 var 的区别在于作用域不一样。let被用来做块作用域...
let 与 var 的区别在于作用域不一样 。let被用来做块作用域
,它比函数作用域要小一点 。
如果他们两个都没有被定义在函数中也没有定义在块作用域中 ,那么他们就都属于全局作用域 。 var 和 let 声明的变量在全局作用域中被定义时 ,两者非常相似 let bar = hehe; var baz = lala; 但是 ,被let声明的变量不会作为全局对象window的属性 ,而被var声明的变量却可以 console.log(window.bar); //undefined console.log(window.baz); // able函数作用域 var 和 let 在函数作用域中声明一个变量 ,两个变量的意义是相同的 。
function aFun(){ let bar = hehe; // 函数作用域中的变量 var baz = lala; // 函数作用域中的变量 }块作用域 在块作用域中两者的区别较为明显 , let只在for()循环中可用 ,而 var是对于包围for循环的整个函数可用
function aFun1(){ // i 对于for循环外的范围是不可见的(i is not defined) for(let i = 1; i<5; i++){ // i只有在这里是可见的 } // i 对于for循环外的范围是不可见的(i is not defined) } function aFun2(){ // i 对于for循环外的范围是可见的 for(var i = 1;i<5; i++){ // i 在for 在整个函数体内都是可见的 } // i 对于for循环外的范围是可见的 }let 和var 重新声明
var允许在同一作用域中声明同名的变量 ,而let不可以 let me = foo; let me = bar; //SyntaxError: Identifier me has already been declared var me = foo; var me = bar; //这里me被替代了 ,是可以重复声明的 es6中还有一个声明变量的命令const ,const和let都是在声明的块作用域中有效 ,但是let声明的变量可变,值和类型都可以改变 ,没有限制 。const声明额变量不能改变 ,所以,const一旦声明一个变量 ,就必须马上初始化 ,不能留到以后赋值 const hehe; //报错 ,Missing initializer in const declaration const a = 3; a = 5; //报错 ,Uncaught TypeError: Assignment to constant variable.创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!