c语言sscanf函数的用法是什么
232
2022-11-15
1、let和const -ES6学习笔记
基本概念
//所谓的代码块就是一对花括号,然后再花括号里面写上所需要的代码//例如{ let a = 1; var b = 2; console.log(a); //1 在代码块之内a的值可以正常被打印出来}console.log(a); //显示a未定义console.log(b); //2 可以发现b是可以正常被访问到的//说明了在代码块之外是拿不到代码块内使用let定义的变量a的
console.log(a); //undefinedvar a = 1;
我们发现这个时候是可以访问到这个a的,他的值是undefined, 因为在域解析的时候,它的变量被提升了, 这其实是一种非常不合理的行为
console.log(b); //报错 告诉你这个时候b还未定义let b = 1;
在例如
typeof c;let c = 10;//报错
在例如
在如:
let在for循环中的应用
如要解决这个问题,我们此前的解决的方法是给每个按钮增加一个自定义属性
除了上述以外,我们还可以采用闭包的方式
现在有了let咱们就不用那么麻烦了,我们直接在循环当中直接用let对变量进行初始化
在for循环中如果使用let对变量进行初始化,还会有一个非常特别的地方在循环语句之内是一个父作用域,在循环体之中是一个子作用域
for (var i = 0; i < 3; i++) { let i = 10; console.log(i); //10}console.log(i); //未定义
这个例子说明了,在循环体内的i的值是不会受到循环体的i的影响的,也就是说循环语句的父作用域和循环里的子作用域是分离的, 第二个console.log(1)打印报错,说i未定义; 这就说明了使用let初始化这个变量的时候,只在for循环语句中有用 循环之后就不是到for循环所在的作用域当中的
var a; //正确let b; //正确const c; //报错
const a = 1;a = {}; //报错
const obj = {a:10};obj.a = 20;//这句代码事实上只是修改了对象里面的数据,但是并没有修改常量obj的引用//所以浏览器不报错console.log(obj);我们发现a的值已经被修改成20了
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~