火花思维最新前端面试题

一、以下函数的执行结果 

var a = 'a';
function A() {
    console.log(a);
    var a = 'b';
    console.log(a);
}
A();

// 结果
// undefined
// 'b'

变形1:

var a = 'a';
function A() {
    console.log(a);
    let a = 'b';
    console.log(a);
}
A();

// 结果
//报错  Uncaught ReferenceError: Cannot access 'a' before initialization  at A ()

 

二、以下函数的执行结果 

var obj = {
    name: 'obj',
    hello() {
        console.log(this.name)
    },
}
var h = obj.hello
h()
//结果
//   空 什么都没有

变形1:

var obj = {
    name:'obj',
    hi(){
        return () => {
            console.log(this.name)
        }
    },
}
var h2 = obj.hi()
h2()

// 结果
// obj

 

三、数组扁平化(多维转一维)

var arr = [true,function(){},[{},[2]]]

//结果

//请看楼主其他文章 https://mp.csdn.net/postedit/100715404

 

四、提取以下字符串的图片地址

var str = 'src=图片a'

解答:
var imgSrc;
var strArr = str.split(' ');
console.log(strArr);

1.for循环
for (var i = 0, len = strArr.length; i < len; i++) {
    if (strArr[i].match('src="')) {
        imgSrc = strArr[i]
    }
}
console.log(imgSrc)

2.map() 函数

strArr.map(item => {
    if(item.match('src="')){
        imgSrc = item
    }
    // return imgSrc;
})
console.log(imgSrc);

 

五、求控制台输出结果

console.log('a')
let promise = new Promise(function(resolve,reject){
    console.log('b')
    setTimeout(function () {
        resolve('c')
    },1000)
})
setTimeout(function(){
    console.log('d')
},0)
promise.then(function(e){
    console.log(e)
})
console.log('f')

//结果
//a
//b
//f
//d
//c

 

六、有一个obj空对象,给该对象添加侦听器,当用户给obj设置name的时候,打印用户给obj设置的name值。

比如 var obj = {}。给该对象添加侦听器后,当我设置obj.name='a' 的时候,控制台打印 ‘a’

 

七、将以下数组,按照id大小值进行排序

let arr = [
    { id:8,obj:'88'},
    { id:3,obj:'33'},
    { id:4,obj:'44'},
    { id:7,obj:'77'},
]

解答:

 

火花思维最新前端面试题_第1张图片

 

你可能感兴趣的:(面试)