ES6笔记① var 和 let的区别
2024-08-28 10:28:41
let 和 var的区别 答:不同点在于作用域
1.(全局下)首先 let关键字声明的变量是这样写会导致错误。
let声明的变量类似于”本地变量“,函数内如何不重新声明,还是会被改变
var a =10;
var a ="10a";
let b =20;
let b ="20b";
console.log(a);//10a
console.log(b);//报错 Identifier 'b' has already been declared
2.(方法内)var关键词的作用域是最近的函数作用域(如果在函数体的外部就是全局作用域);
var snack = 'Meow Mix';
function getFood(food) {
if (food) {
var snack = 'Friskies';
return snack;
}
return snack;
}
getFood(false); // undefined
//在函数中,用var声明的变量,会在整个函数作业域中,return时优先查找最近的函数作用域。
2-2 .let 关键词的作用域是最接近的块作用域(如果在任何块以外就是全局作用域),这将会比函数作用域更小。说明let声明的变量只是块级作用域
ps:getFood(true),并且没有在函数内声明,let声明的变量会改变
let snack = 'a';
function getFood(food) {
if (food) {
let snack = 'b';
return snack;
}
return snack;
}
console.log(getFood(false));//a
console.log(snack);//a
//这里return的还是全局变量
3.(循环中)
块(Block)
这是不同点, let 只是在 for 循环中, var 却是在整个函数都是可见的。
//let声明
let i = "aaa";
function odd(){
for(let i=0;i<10;i++){
console.log(i);//1,2,3,4,5,6,7,8,9
}
return i;
}
console.log(odd());//aaa
console.log(i);//aaa
//var 声明
var i = "aaa";
function odd(){
for(var i=0;i<10;i++){
console.log(i);//1,2,3,4,5,6,7,8,9
}
return i;
}
console.log(odd());//
console.log(i);//aaa
原文地址:http://blog.csdn.net/lcstrive/article/details/43149167
欢迎指出问题~~
最新文章
- Build Android Webrtc Libjingle Library On Ubuntu
- Java内存模型与垃圾回收
- HtmlAgilityPack使用
- [技术分享] .NET下 , 上传图片的处理方式 , 贴上代码 .
- 误将文件push到Git,如何删除
- excel数据通过构建sql语句导入到数据库中
- Moses manual 中Basline System 2.3.4节用IRSTLM创建语言模型的命令有误
- -Xms 和 -Xmx 不能设置的太大
- perl 线程创健
- 一般增广路方法求网络最大流(Ford-Fulkerson算法)
- FMS中实现pull stream
- 使用Android&#160;studio作按键切换界面
- 把织梦安装到子目录,不读取CSS 没有样式?
- 消息中间件--ActiveMQ&;JMS消息服务
- vscode指定扩展安装位置
- tomcat多实例的端口设置
- 浅谈Spring中的Quartz配置
- 如何用Python来处理数据表的长宽转换(图文详解)
- [日常] Go语言圣经--结构体,JSON习题
- 使用angular5+ionic3+sqlite创建离线app应用