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

欢迎指出问题~~

最新文章

  1. Build Android Webrtc Libjingle Library On Ubuntu
  2. Java内存模型与垃圾回收
  3. HtmlAgilityPack使用
  4. [技术分享] .NET下 , 上传图片的处理方式 , 贴上代码 .
  5. 误将文件push到Git,如何删除
  6. excel数据通过构建sql语句导入到数据库中
  7. Moses manual 中Basline System 2.3.4节用IRSTLM创建语言模型的命令有误
  8. -Xms 和 -Xmx 不能设置的太大
  9. perl 线程创健
  10. 一般增广路方法求网络最大流(Ford-Fulkerson算法)
  11. FMS中实现pull stream
  12. 使用Android&#160;studio作按键切换界面
  13. 把织梦安装到子目录,不读取CSS 没有样式?
  14. 消息中间件--ActiveMQ&amp;JMS消息服务
  15. vscode指定扩展安装位置
  16. tomcat多实例的端口设置
  17. 浅谈Spring中的Quartz配置
  18. 如何用Python来处理数据表的长宽转换(图文详解)
  19. [日常] Go语言圣经--结构体,JSON习题
  20. 使用angular5+ionic3+sqlite创建离线app应用

热门文章

  1. 图解MapReduceMapReduce整体流程图
  2. java之集合类框架的简要知识点:泛型的类型擦除
  3. CAD2014以上版本不信任加载项解决方法
  4. Java代理模式——静态代理模式
  5. Fragment之一:Fragment入门
  6. Android 瘦身攻略
  7. VS2010中手动重命名项目
  8. zeromq-python使用
  9. Python学习(二) 运行Python,编译Python
  10. Z-Stack协议中几个重要概念的理解