JS高级—06—with语句(五种作用域)、evel语句、严格模式
一、with 语句
在es6之后,我们现在有三个作用域 ,全局、函数、块级作用域;
es6之后引入块级作用域,单独的大括号、for、if里的大括号么,都会形成一个块级作用域,如果变量使用let、cosnt定义将不能突破块级作用域,但是var仍然可以突破块级作用域;但是不管你突破不突破,都是有这个作用域的;
with的作用是什么?
是拓展作用域链,下面的代码中,如果没有with,name和age将会去全局作用域中找,但是有了with,就相当去给这些代码加了一个外层作用域,将先去with里的obj中找,如果找不到再沿着作用域链去全局作用域找;
所以结果为 “helloworld”和18;
注意:说到外层作用域又要明白一个点,第一个是块级作用域,第二个根本就是定义一个对象的字面量形式,它可不是块级作用域!
它是定义一个对象,没有作用域!
它是定义一个对象,没有作用域!
它是定义一个对象,没有作用域!
除了全局作用域、块级作用域、函数作用域外、with作用域外,一种新的作用域参数作用域,在函数的参数有默认值时会有一种新的参数作用域;但是很少用到,了解即可;
课程(0’20‘‘),具体是哪一节的课程忘了,可能是335节,实在不行去百度搜参数作用域重新学下,但这个老师说了有印象即可,用的很少;
ecma规范就是这么定义的:
二、evel语句
三、严格模式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!