01-20
场景题
- 模板字符串处理
- 如果对应的键值不存在则不处理
- |后面跟着的是filter函数,均在filters中存在
- 如果结果是对象则对接过进行 JSON.stringify()
- 如果结果是函数则进行 toString()
js
var str = `
a
{{ obj.a | filter | filter2 }
b
{obj.b.c}
c
{obj.c.d}
`
var obj = {
a:function(){},
b:{c:{e:123}},
c:{}
}
var g = {
filter(str) {return 'aaa' + str },
filter2(str) {return str + 'bbb'}
}
// 实现
function parseTemplate(temp,obj,filters){
// ...code
}
parseTemplate(str,obj,g)
var str = `
a
{{ obj.a | filter | filter2 }
b
{obj.b.c}
c
{obj.c.d}
`
var obj = {
a:function(){},
b:{c:{e:123}},
c:{}
}
var g = {
filter(str) {return 'aaa' + str },
filter2(str) {return str + 'bbb'}
}
// 实现
function parseTemplate(temp,obj,filters){
// ...code
}
parseTemplate(str,obj,g)
替换后的结果为
js
// a
// {aaafunction () { }bbb
// b
// {"e":123}
// c
// {obj.c.d}
// a
// {aaafunction () { }bbb
// b
// {"e":123}
// c
// {obj.c.d}
理论
- 什么是原型,什么是原型链
- 剔除数组首元素的方法有哪些
- promise的状态有哪些
- promise有什么特点
- 什么是回调地域
- for in 遍历数组有哪些问题
- 观看示例,输出结果是什么,并阐明理由
- 例1
jsconst promise = new Promise((resolve, reject) => { console.log(1) resolve() console.log(2) }) promise.then(() => { console.log(3) }) console.log(4)
const promise = new Promise((resolve, reject) => { console.log(1) resolve() console.log(2) }) promise.then(() => { console.log(3) }) console.log(4)
- 例2
jsfunction fn(){ for (let i = 0; i < 4; i++) { setTimeout(function(){ console.log(i) },1000) } } fn()
function fn(){ for (let i = 0; i < 4; i++) { setTimeout(function(){ console.log(i) },1000) } } fn()
- 例3
jslet a = 0 let b = async () => { a = a + await 10 console.log('2', a) } b() a++ console.log('1', a)
let a = 0 let b = async () => { a = a + await 10 console.log('2', a) } b() a++ console.log('1', a)