Skip to content

前端面试题汇总-代码阅读题 #7

@regexp-lin

Description

@regexp-lin
  1. 请给出下面题目的运行结果:
var result=[]; a = 3; var total = 0;
function foo(a){
  var i = 0;
  for (;i<3;i=i+1){
    result[i]=function(){
      total += i*a;
      console.log(total)
    }
  }  
};
foo(1);
result[0]()
result[1]()
result[2]()
  1. 请给出下列题目的运行结果:
main().catch(function() {
  console.log('top', e);
});

async function main() {
  try {
    loadImage();
    loadConfig();
  } catch (e) {
    console.log('main', e);
  }
}

function loadImage(){
  return new Promise((resolve, reject) => {
    setTimeout(reject, 1000, 'network error');
  });
}

async function loadConfig(){
  throw 'logic bug';
  await wait();
  console.log('config ok');
}

function wait(){
  return new Promise((resolve, reject) => {
    setTimeout(resolve, 1000);
  });
}
  1. 请说出下列题目的运行结果:
// counter.js 
let num = 1; 

function increase() {
  return num++; 
}

module.exports = { num, increase } 

// main.js 
const { num, increase } = require('./counter.js') 

console.log(num) 
increase() 
console.log(num)


  1. 请说出下列题目的运行结果:
// counter.ts
let num = 1; 

function increase() {
  return num++
}

export { num, increase }

// main.ts
import { num, increase } from './counter' 

console.log(num) 
increase() 
console.log(num)

  1. 请说下TS中unknown和any的区别,同时说说下面的代码是否会编译报错:
function getDog() {
  return '22'
}

const dog: unknown = getDog()
dog.hello() //Object is of type 'unknown'
export {}

  1. 看下TypeScript的等价结果

// interface

    interface test {
        name: string
    }
    interface test {
        age: number
    }

// type

    type test =  {
        name: string
    }
    type test =  {
        age: number
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions