博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS的块级作用域
阅读量:6819 次
发布时间:2019-06-26

本文共 1295 字,大约阅读时间需要 4 分钟。

今天带来的是 “对《你不知道的js》中块级作用域的总结” 分享:

1)用with从对象中创建出来的作用域只在with声明中而非外部作用域有效,同时可以访问已有对象的属性并将其添加到已有对象上

代码demo:

var obj = {             a:1,             b:2,             c:3         };         with(obj){             a=3;             b=4;             c=5;              d=6;         }         console.log(obj);//3,4,5

2)try/catch 的catch分句会创建一个块级作用域,其中声明的变量仅在catch内部有效

代码demo:

try{            undefined();//执行一个非法操作来强制制造一个异常        }        catch(err){            console.log(err);//能够正常执行        }        console.log(err);//ReferenceError:err is not defined

3)let用法:可以将变量绑定到所在的任意作用域中(通常是{...}内部)

代码demo:

for(i = 1; i < 5; i++){             console.log(i);//1 2 3 4         }         console.log(i);//5         for(let j = 1; j < 5; j++){             console.log(j);//1 2 3 4         }         console.log(j);//ReferenceError: j is not defined

由于let创建的是块级作用域,所以外部无法访问到let声明的变量

4)const:可以用来创建块作用域变量; 其值是固定的(常量),之后任何试图修改值的操作都会引起错误

代码demo:

var foo = true;        if(foo){            var a = 2;            const b = 3;//包含在if中的块作用域常量            a = 3;//正常            //b = 4;//错误            //console.log(b);//TypeError: invalid assignment to const `b'(这里说明其值为常量,之后不能更改其值)        }        console.log(a);//3 console.log(b);//ReferenceError!(这个异常可以证明const创建的块作用域)

 

 

 

转载于:https://www.cnblogs.com/wccc/p/6718386.html

你可能感兴趣的文章
伍雨霏-懂游戏的云服务如何保驾护航
查看>>
姜正林-CIO职业规划点滴感受
查看>>
win8下获取注册表权限
查看>>
js笔试题2
查看>>
Custom TabBarController
查看>>
MKSocialShareTableViewCell
查看>>
AngleGradientLayer
查看>>
用Myeclipse创建PhoneGap应用程序
查看>>
开源 java CMS - FreeCMS2.8 站内信
查看>>
kubeadm初始化kubernetes cluster的一点经验
查看>>
ZooKeeper应用案例
查看>>
springboot(二):thymeleaf模板开发
查看>>
Android Bluetooth HID实现详解
查看>>
高通camera架构
查看>>
PHP运行模式
查看>>
leetcode Remove Duplicates from Sorted Array
查看>>
spring cloud 与dubbo
查看>>
Linux零拷贝函数SendFile应用
查看>>
linux下创建文件或文件夹快捷方式一个简单地方法
查看>>
SDPhotoBrowser图片浏览器
查看>>