Javascript 之 var、let和const
2020-06-29 04:23
363 查看
Javascript 之 var、let和const
var i = 23 // 向左赋值 console.log(i) i = [23,3] // 不是强类型语言 可赋值不同的数据类型 // 同时定义并给多个变量赋值 var a=1,b=2 console.log(a,b) // 1 2 console.log(i) var a // 定义为赋值 console.log(a) // undefined // 没有块级作用域的概念 if(true){ var str = 'hujiajia' } console.log(str) // 变量提升 // 避免在项目中使用这种骚操作 // 解读: 一旦用var 定义变量 该变量就在当前作用域的'最前边'(姑且这样叫吧) var 变量名 而赋值则在当前行 // 大致可分解为 // 第1行(当前作用域前边, 如if for function等都是有作用域的) var test // 第24行 console.log(test) // 第25行 test = 'test' console.log(test) // undefined var test = 'test' // 特殊情况 函数表达式不存在提升 //func() // 报错 var func = function(){ console.log(123) } // 非表达式写法存在提升 并且是能直接调用的 show() // ss function show(){ console.log('ss') } // 常量 const hh = 12; // const hh = 23; // 报错 // var hh = 24; // 报错 const obj = { phone: 110, arr: [1,2] } // const obj = {} // 报错 // 重点来了 obj.phone = 10086 obj.arr = 10086 console.table(obj) // 居然修改成功了 只是针对整个object 但是内部键值对依然可修改 // 存在块级作用域 if(true){ const hujiajia = "hujiajia" } // console.log(hujiajia) // 报错 // 变量提升 const没有变量提升的概念 // console.log(test1) // 报错 const test1 = "test1" // let // 也没有变量提升的概念 // console.log(letlet) 报错 let letlet = 'letlet' // 存在块级作用域 if(true){ let iii = 'iii' } // console.log(iii) // 报错 // 一道经典面试题 var 与 let // 用 var for(var i = 0 ; i<5;i++) { (function(){ setTimeout(()=>{ console.log(i) }) }()) } // 要想输出 0 1 2 3 4 怎么解决呢 将 var 改为 let 就ok了 for(let i = 0 ; i<5;i++) { (function(){ setTimeout(()=>{ console.log(i) }) }()) } // 如果要用第一种方法 实现输出 0 1 2 3 4 怎么解决呢 // 将 i 当做实参传进去就ok了 // 有涉及作用域的内容哦 for(var i = 0 ; i<5;i++) { (function(i){ setTimeout(()=>{ console.log(i) }) }(i)) }
一时写博文一时爽,一直写博文一直爽。往后余生,请你把时间用在让自己变强的事上。
相关文章推荐
- 看完这些,你还怕被人问你JavaScript 中 var 和 let 和 const 关键字的区别吗
- javascript中var与let与const的区别
- JavaScript中var const let
- JavaScript中var、let、const区别。
- JavaScript中const,var,let的区别
- JavaScript中const,var,let区别
- javascript 三种变量申明方式var、let、const
- 有趣的JavaScript(一)---let、const与var命令的区别
- JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别
- 面试官竟然问我JavaScript中var、let和const有什么区别这样简单的问题?
- javascript中关于const、var、let的区别
- JavaScript中var、const、let的区别。
- 详解javascript中var与ES6规范中let、const区别与用法
- JavaScript的ES6中var、let、const
- javascript中let和var以及const关键字的区别
- 02.javaScript中let、var、const
- javascript中var let const三种变量声明方式
- javascript中var let const三种变量声明方式详解
- BlackLeft老师讲课了——javascript中const\var\let是什么
- JavaScript中const,var,let的区别