当前位置: 首页 > article >正文

华雁智科前端面试题

1. var 变量的提升

题目:

var a = 1
function fun() {
  console.log(b)
  var b = 2
}
fun()
console.log(a)
  • 正确输出结果:undefined、1
  • 答错了,给一个大嘴巴子,错误答案输出结果为:2,1

此题主要考察 var 定义的变量,作用域提升的问题,相当于

var a 
a = 1
function fun() {
  var b
  console.log(b)
  b = 2
}
fun()
console.log(a)

所以正确输出结果应该是:undefined、1

2. 多维数组去重排序(升序)

let arr = [3, 1, 4, 1, 5, 9, [4, 1, 5, 9], 2, 6, 5, 3, 5, [3, 1, 4, 1]]
  • 忘记去重操作,该死。
  • 方法比较笨,欢迎各位前端大佬,使用更高效的方法尝试。

第一步,采用递归方式将该数组展平为一维数组

let newArr = []
function fun(arr) {
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] instanceof Array) {
      fun(arr[i])
    } else {
      newArr.push(arr[i])
    }
   }
   return newArr
}

newArr = fun(arr)

第二步,数组去重,使用一个变量记录 flag 记录是否是重复的元素

let arr2 = []
function uniqueArr(arr) {
  for (let i = 0; i < arr.length; i++) {
    let flag = false 
    for (let j = 0; j < arr2.length; j++) {
      if (arr[i] === arr[j]) {
        flag = true
        break
       }
     }
     // 唯一的元素
     if (!flag) {
        arr2.push(arr[i])
      }
    } 
  return arr2
}
  const a = uniqueArr(newArr)

第三步,排序算法

 function sort (arr) {
    for (let i = 0; i < arr.length; i++) {
      for (let j = 0; j < arr.length; j++) {
        if (arr[j] > arr[j + 1]) {
          let temp = arr[j]
          arr[j] = arr[j + 1]
          arr[j + 1] = temp
        }
      }
    }
    return arr
  }
  • 正确冒泡排序(该死)
 function sort (arr) {
    for (let i = 0; i < arr.length - 1; i++) {
      for (let j = 0; j < arr.length - 1 - i; j++) {
        if (arr[j] > arr[j + 1]) {
          let temp = arr[j]
          arr[j] = arr[j + 1]
          arr[j + 1] = temp
        }
      }
    }
    return arr
  }

3. 写在最后

此博客记录,秋招第一次很简单的手撕代码笔试题。哭死,希望能给个面试机会。一定能找到工作的。加油,多积累面试经验,借用人民日报今年的广告语,“请你努力,为了你自己。

祝大家秋招都能收到offer。

 


http://www.kler.cn/a/306826.html

相关文章:

  • 【Qt】在 Qt Creator 中使用图片资源方法(含素材网站推荐)
  • ODOO学习笔记(3):Odoo和Django的区别是什么?
  • 线性表-数组描述补充 迭代器(C++)
  • 双十一云服务器抢购后,用SD-WAN连通多云网络
  • ESLint 使用教程(四):ESLint 有哪些执行时机?
  • 【面试分享】xshell连接Linux服务器22端口执行命令top期间的技术细节和底层逻辑
  • matlab 单元格数组 和 普通数组
  • Java 流 (Stream) 详解
  • HTTPTomcat
  • QT--connect的使用
  • 【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
  • java坏境搭建
  • python学习——对无人机影像有RGB转换到HSV
  • Java 19 新特性-外部函数与内存 API(Foreign Function Memory API)[Preview]
  • 【Qt绘图】—— 运用Qt进行绘图
  • 【论文阅读】Face2Diffusion for Fast and Editable Face Personalization
  • 【FATFS】FATFS简介及下载
  • 接口与抽象类
  • Spring Boot 集成 MongoDB - 入门指南
  • 【CTF Web】BUUCTF BUU BURP COURSE 1 Writeup(X-Real-IP伪造+POST请求)
  • mysql 8.0 时间维度表生成(可运行)
  • VMware Workstation Player虚拟机Ubuntu启用Windows共享目录
  • 网络通信开课作业c++
  • k8s证书过期处理
  • Scratch植物大战僵尸【机器人vs外星人版本】
  • 【Go】Go语言中的数组基本语法与应用实战