Reflect.ownKeys() 返回对象所有的属性,不管属性是否可枚举,包括 Symbol。
await 关键字仅在 async function 中有效。
如果在 async function 函数体外使用 await ,你只会得到一个语法错误。
Promise 对象:await 会暂停执行,等待 Promise 对象 resolve,然后恢复 async 函数的执行并返回解析值。
非 Promise 对象:直接返回对应的值。
一个 Proxy 对象由两个部分组成: target 、 handler 。在通过 Proxy 构造函数生成实例对象时,需要提供这两个参数。
target 即目标对象, handler 是一个对象,声明了代理 target 的指定行为
严格模式set失效,开启严格模式方法"use strict";
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
// "use strict";
// Reflect.ownKeys() 返回对象所有的属性,不管属性是否可枚举,包括 Symbol。
// function* objectEntries(obj) {
// const propKeys = Reflect.ownKeys(obj);
// console.log(propKeys);
// for (const propKey of propKeys) {
// yield [propKey, obj[propKey]];
// }
// }
// const jane = { first: 'Jane', last: 'Doe' };
// for (const [key,value] of objectEntries(jane)) {
// console.log(`${key}: ${value}`);
// }
// var f = objectEntries(jane);
// console.log(f.next());
// console.log(f.next());
// console.log(f.next());
// async function helloAsync(){
// return "调用我";
// }
// console.log(helloAsync())
// helloAsync().then((value)=>{
// console.log(value);
// })
// helloAsync().catch((value)=>{
// console.log(value);
// })
// var abc = new Promise(function(resolve,reject){
// resolve("调用一下")
// // reject()
// })
// abc.then((value)=>{
// console.log(value);
// })
// console.log(abc);
// function testAwait(){
// return new Promise((resolve) => {
// setTimeout(function(){
// console.log("11111111");
// resolve();
// }, 1000);
// });
// return setTimeout(function(){
// console.log("33333333");
// }, 1000);
// }
// await 关键字仅在 async function 中有效。
// 如果在 async function 函数体外使用 await ,你只会得到一个语法错误。
// Promise 对象:await 会暂停执行,等待 Promise 对象 resolve,然后恢复 async 函数的执行并返回解析值。
// 非 Promise 对象:直接返回对应的值。
// async function helloAsync(){
// await testAwait();
// console.log("22222222");
// }
// helloAsync();
// 一个 Proxy 对象由两个部分组成: target 、 handler 。在通过 Proxy 构造函数生成实例对象时,需要提供这两个参数。
// target 即目标对象, handler 是一个对象,声明了代理 target 的指定行为
// 严格模式set失效,开启严格模式方法"use strict";
// Number.isInteger(10.1)检测是否为整数,整数返回true,否则false
// let target = {
// name: 'Tom',
// age: 24,
// }
// let obj = {};
// let objs = {
// a:50
// }
let objs = {
a:50
}
function sub(a, b){
a = objs.a;
return a - b;
}
let handler = {
get(target, propKey, receiver){
// console.log(target);
// console.log(propKey);
// console.log(receiver);
return "hello"+target[propKey]
},
set(target, propKey, value, receiver){
// console.log(target);
// console.log(propKey);
// console.log(value);
// console.log(receiver);
target[propKey] = value;
},
apply(target, aaa, args){
console.log(target);
// console.log(objs);
console.log(aaa);
console.log(args);
console.log(Reflect.apply(...arguments));
// return Reflect.apply(...arguments)
}
}
let proxy = new Proxy(sub, handler);
proxy.apply(window,[5,1]);
// let proxyEpt = new Proxy(obj, handler);
// console.log(proxyEpt.name);
// proxyEpt.name = "zs";
// console.log(proxyEpt);
// console.log(obj);
// console.log(proxyEpt.name);
// let proxy = new Proxy(target, handler);
// console.log(proxy);
// console.log(proxy.name);
// proxy.age = 18;
// Object.defineProperty(,)
// console.log(target);
// console.log(!Number.isInteger(10.1));
// var a = 10;
// function func(a,b){
// return a+this.a;
// }
// let obj = {
// a:20
// }
// let arr = [11,22];
// console.log(Reflect.apply(func,obj, arr));
</script>
</html>