首页IT科技闭包变量私有化(深入变量和闭包)

闭包变量私有化(深入变量和闭包)

时间2025-06-21 02:52:59分类IT科技浏览4004
导读:加var 变量和不加var 变量的区别 加var的变量 都会提升,不管代码执行与否, 不加var的变量预编译阶段不会提升 原型链 和作用域链...

加var 变量和不加var 变量的区别

加var的变量 都会提升,不管代码执行与否, 不加var的变量预编译阶段不会提升 原型链 和作用域链 window.a //不会报错 返回undefined 访问对象不存在的属性不会报错 ,走原型链 访问GO中不存在的属性 a //直接访问未定义的变量会报错, 走作用域链 没有找到 不管是否加var 只要是全局变量, 在非严格模式下都会挂载到GO上 没有加var的只能做全局 项目中尽量避免var , 更不要不声明

let

声明的变量不能访问 let + {} 可以形成块级作用域 只能在块中使用 使用let声明的变量 不会挂载到GO上 let定义同一个变量只能定义一次 ,二次定义会报错 function(a){ // 在函数内部的形参相当于函数定义的局部变量 let a = 1 //这里会报错 }

const

声明的变量不能修改 声明必须赋值, 不然报错 声明的变量不会提升 const 和{}也可以形成块作用域 ,也不会挂载到GO上

闭包 一个不能回收的栈内存

保护EC中的变量 外界不能范围 保存 可以像使用全局变量一样使用局部变量 延长变量的生命周期

练习题

//

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
数据的类型可以分为哪几种,并简单说明举例(数据类型)