美文网首页
var\let\const

var\let\const

作者: SENN | 来源:发表于2017-06-16 15:10 被阅读0次

for(var i=0;i<10;i++){ var button=document.createElement("button"); button.innerText=i+1; button.onclick=function(){ alert(i); } document.body.appendChild(button); }

结果是10个button,点击每一个都会弹出10。

const定义的是常量;
var与let定义的是变量;
var是函数作用域,let是块作用域;
let不能重复声明覆盖,var可以重复声明覆盖;

也就是说在for循环里var出来的i,每次都被覆盖了新的值,所以当onclick时alert出的i是最终循环结束的值i=10。

如果改用let定义
for(let i=0;i<10;i++){ var button=document.createElement("button"); button.innerText=i+1; button.onclick=function(){ alert(i+1); } document.body.appendChild(button); }

这里10个button就会分别弹出1-10。
因为var是不断覆盖i,给它新的值,而let不会覆盖。

相关文章

  • Android菜鸟学习js笔记 一

    一、var,const,let区别? var 变量,const 常量,let块级变量。

  • ES6_var、let与const

    var,let 与 const var 申明变量。 let 申明变量,更完美的 var。 const 申明常量(物...

  • TypeScript 02 - 变量声明

    在 TypeScript 中,var 还是 var,let 还是 let,const 还是 const,这里简单温...

  • JS中var、let、const区别

    在javascript中有三种声明变量的方式:var let const。let var const的区别?var...

  • js中const,var,let区别

    在javascript中有三种声明变量的方式:var let const。let var const的区别?var...

  • 面试题 var let const的区别 箭头函数和普通函数的区

    var let const 有什么区别 var var声明的变量可进行变量提升,let和const不会var可以重...

  • ES6学习

    1、 var let const var是函数作用域let和const是块级作用域,!const是常量,不能改变。...

  • ES6

    let var const var 可声明前置 let不可声明前置 let不可重复声明 存在块级作用域 const...

  • let和const

    let/const(常用) let和var 区别 let,const用于声明变量,用来替代老语法的var关键字,与...

  • js 2022经典面试题汇总

    1.JS数据类型有哪些 2.var、let、const区别 var存在变量提升,而let、const没有 let、...

网友评论

      本文标题:var\let\const

      本文链接:https://www.haomeiwen.com/subject/arqmqxtx.html