2.instanceof、执行环境和作用域

1. instanceof

用来判断某个值是什么类型的对象

console.log('111' instanceof String)	// false
console.log(new String('111') instanceof String)	// true

2. 执行环境

0.JavaScript的执行环境就两种。全局和局部

1.全局执行环境是最外围的一个执行环境。所在宿主环境不同,执行环境的对象也不一样

2.某个执行环境中的所有代码执行完毕,该环境被销毁,保存在其中的所有变量和函数定义也销毁(全局执行环境直到应用程序退出—例如关闭网页或浏览器----才销毁)

3.当执行流进入一个函数时,函数的环境就会被推入一个环境栈中。再函数执行之后,栈将环境弹出,把控制权返回给之前的执行环境

4.当代码在一个环境中执行时,会创建变量对象的一个作用域链。
内部环境可以通过作用域链访问所有的外部环境,但外部环境不能访问内部环境中任何变量和函数

小结

  • 基本类型的值在内存中占据固定大小的空间,因此保存在栈内存中
  • 确定一个值是那种基本类型可以使用typeof操作符。确定一个值是哪种引用类型可以使用instanceof
  • 每次进入一个新执行环境,都会创建一个用于搜索变量和函数的作用域链
  • 函数的局部环境不仅有权访问函数作用域中的变量,而且有权访问其包含环境,乃至全局环境
  • 全局环境只能访问在全局环境中定义的变量,而不能直接访问局部环境中的任何数据
  • 变量的执行环境有助于确定应该合适释放内存
  • 离开作用域的值将被自动标记为可以回收,因此将在垃圾收集期间被删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值