Skip to content
On this page

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)

替换后的结果为

js
// a
// {aaafunction () { }bbb
// b
// {"e":123}
// c
// {obj.c.d}

理论

  1. 什么是原型,什么是原型链
  2. 剔除数组首元素的方法有哪些
  3. promise的状态有哪些
  4. promise有什么特点
  5. 什么是回调地域
  6. for in 遍历数组有哪些问题
  7. 观看示例,输出结果是什么,并阐明理由
    • 例1
    js
    const promise = new Promise((resolve, reject) => {
        console.log(1)
        resolve()
        console.log(2)
    })
    promise.then(() => {
        console.log(3)
    })
    console.log(4)
    
    • 例2
    js
    function fn(){
        for (let i = 0; i < 4; i++) {
            setTimeout(function(){
                console.log(i)
            },1000)
        }
    }
    fn()
    
    • 例3
    js
    let a = 0
    let b = async () => {
        a = a + await 10
        console.log('2', a)
    }
    b()
    a++
    console.log('1', a)
    

朋友们的回答