深入JavaScript Day08 - with、eval、s
2022-01-14 本文已影响0人
望穿秋水小作坊
一、with、eval、strict model(严格模式)
1、【了解】with语句
![](https://img.haomeiwen.com/i13946897/27358a41e2e12a7e.png)
2、eval函数的作用?
- 将字符串当成JavaScript代码进行执行
![](https://img.haomeiwen.com/i13946897/06c4f705ec1f5938.png)
3、strict mode 是干啥的?
- 用来提高JavaScript的语法检测严格程度
![](https://img.haomeiwen.com/i13946897/9c42edb8ee01777a.png)
![](https://img.haomeiwen.com/i13946897/c93c3f3cfa1dd47f.png)
![](https://img.haomeiwen.com/i13946897/dc3a5d2185ae93d2.png)
4、严格模式,对默认绑定的this有什么影响吗?
function foo() {
console.log(this); //输出 window对象
}
foo();
"use strict";
function foo() {
console.log(this); //输出 undefined
}
foo();
二、Object.defineProperties
1、如果我们需要对一个对象的属性做一些限制,比如不允许被删除、不允许被修改、不允许被遍历出来。要怎么做?
- 借助
Object.defineProperties
可以实现对象属性的精准控制
![](https://img.haomeiwen.com/i13946897/f45ab983e4cf4680.png)
2、Object.defineProperties 属性描述符有两种,是哪两种?
- 数据属性
- 存取属性
![](https://img.haomeiwen.com/i13946897/e3e3a5222bf121cf.png)
![](https://img.haomeiwen.com/i13946897/774e4cc42c4d9f84.png)
![](https://img.haomeiwen.com/i13946897/e6372719964c124e.png)
![](https://img.haomeiwen.com/i13946897/0635df751681342a.png)
![](https://img.haomeiwen.com/i13946897/407a5ebbb6e7c388.png)
3、如何一次定义多个属性描述符呢?
![](https://img.haomeiwen.com/i13946897/834af22ddb14f52f.png)
4、如何获取对象的属性描述符?
- getOwnPropertyDescriptor
![](https://img.haomeiwen.com/i13946897/67c20781eb806a40.png)