做熊猫tv网站的目的互联网电子商务网站开发技术
news/
2025/10/7 10:53:48/
文章来源:
做熊猫tv网站的目的,互联网电子商务网站开发技术,wordpress 整站,国内优秀网站网页设计前言 踩着前人的肩膀#xff0c;努力前行。参考了很多前人的文章。 1.变量声明const和let es6之前声明变量只能用var#xff0c;var的特点是无论声明在何处#xff0c;都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部) function test(){if(false){var name … 前言 踩着前人的肩膀努力前行。参考了很多前人的文章。 1.变量声明const和let es6之前声明变量只能用varvar的特点是无论声明在何处都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部) function test(){if(false){var name zhangsan;}else{console.log(name); //此处访问值为undefined }console.log(name); //此处访问值为undefined
}可以看到虽然打印结果是undefined但是并没有报错。那是因为被js编译过结果就变成了 function test(){var name; //这就是js的变量提升if(false){name zhangsan;}else{console.log(name); //此处访问值为undefined }console.log(name); //此处访问值为undefined
} 再来看ES6新增的letconst。它们的作用域只在一个函数内部或者一个代码块内部。 function test() {if(flag) {let name zhangsan} else {//此处访问会直接报错。访问不到。console.log(test)}} const作用域和let一样。但是他通常被用于定义常量。就是它的值被设置完成后就不能再修改了。 const name luxname joe // 再次赋值此时会报错 但是如果 const 的是一个对象对象所包含的值是可以被修改的。抽象一点儿说就是对象所指向的地址不能改变而变量成员是可以修改的。 const student { name: cc }// 可以成功student.name yy// 如果这样子就会报错了student { name: yy } 还有TDZ(暂时性死区) {console.log(value) // 报错let value lala
} 我们都知道JS引擎扫描代码时如果发现变量声明用 var 声明变量时会将声明提升到函数或全局作用域的顶部。但是 let 或者 const会将声明关进一个小黑屋也是TDZ(暂时性死区)只有执行到变量声明这句语句时变量才会从小黑屋被放出来才能安全使用这个变量。 2.未完待续 本文基本是参考https://www.jianshu.com/p/287...。原文说的更仔细有更多的内容。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/930325.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!