# es6 相关案例

# [es6]扩展运算符和剩余参数的用法

# [es6]在一个模块中默认导出 name 变量

let name = "strick";
export default name;
name = "freedom";

// 然后在另一个模块中把它导入,如下所示。
import name from "./1.js";
console.log(name);

最终在控制台输出的值为__________。

# [es6]在一个模块中默认导出 age 变量

let age = 28;
export { age as default };
age = 30;

//然后在另一个模块中把它导入,如下所示。
import age from "./1.js";
console.log(age);

最终在控制台输出的值为__________。

# [es6]如何判断一个字符是由两个编码单元组成的

# [es6]执行下面的正则表达式

var pattern = /^pw\d/y,
 str = "pw1pw2";
pattern.test(str); //第一条
pattern.test(str); //第二条

# [es6]正则问题

var str = "𠮳𠮳";
console.log(/𠮳{2}/.test(str))
console.log(/𠮳{2}/u.test(str))

# [es6]特殊字符串循环forof和for循环

let foo ='向𠮳';
for(let i=0; i<foo.length;i++){
    console.warn(foo[i])
}
for(let i of foo){
    console.log(i)
}

# [es6]箭头函数和显示绑定

window.age = 18;
function animal() {
 this.age = 28;
 setTimeout((() => {
    console.warn(this.age); //输出什么
 }).call(window), 100);
}
new animal(); 

# [es6]对象调用箭头函数

var obj = {
 age: 28,
 arrow: () => this.age,
 normal: function() {
 return this.age;
 }
};
obj.arrow();
obj.normal();

# [es6]map的设置值

var map = new Map(),
 obj = {};
map.set(null, 1);
map.set(undefined, 2);
map.set(NaN, 3);
map.set(1, 4);
map.set("1", 5);
map.set({}, 6);

map.get(null)的结果是__________,map.get(undefined)的结果是__________,map.get(NaN)的结果是__________。

map.get(1)的结果是__________,map.get("1")的结果是__________。

# [es6]如何将Map转为数组

# [es6]生成器代码结果

这 3 个对象的 value 属性的值依次是什么。

function* digit() {
    try {
    yield 1;
    } finally {
    yield 2;
    }
    yield 4;
}
var iterator = digit();
console.warn(iterator.next())
console.warn(iterator.return(3))
console.warn(iterator.next())

# [es6]class代码题

class People {
    constructor() {
        this.name = "strick";
        this.age = 28;
    }
    static getName() {
        return this.name;
    }
    static getAge() {
        return this.age;
    }
}
console.warn(People.getName())
console.warn(People.getAge())

# [es6]class代码题2

class People {
		constructor() {
			this.age = 28;
		}
		getAge() {
			return this.age;
		}
		static getAge() {
			return this.age;
		}
	}
	class Man extends People {
		constructor() {
			super();
			this.age = 29;
		}
		getAge() {
			return super.getAge();
		}
		static getAge() {
			return super.getAge();
		}
	}
	Man.age = 30;
	var man = new Man();

	console.warn(Man.getAge())
	console.warn(man.getAge())

# [es6]promise问题

var p = new Promise(function(resolve) {
    resolve(Promise.reject("error"));
}); 
console.warn(p)
p.then((val)=>{
    console.log('fuileld'+val)
},(val)=>{
    console.log('reject'+val)
})

# [es6] proxy

var people = {
	name: "strick",
	age: 28,
	[Symbol.for("gender")]: "man",
	school: "university"
},
handler = {
	ownKeys(target) {
		return Reflect.ownKeys(target).filter((value, index) => {
			return index % 2 === 0;
		});
	}
},
p = new Proxy(people, handler);
const f = Object.getOwnPropertyNames(p)
console.warn(f)
最后更新: 11/26/2024, 1:31:53 PM