当前位置: 首页 > 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/news/306826.html

相关文章:

  • 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语言中的数组基本语法与应用实战
  • RecyclerView的子项长按选择功能
  • 幼儿与非幼儿识别系统源码分享
  • 【C++】多态,要这样学
  • PFC理论基础与Matlab仿真模型学习笔记(1)--PFC电路概述
  • requests-html的具体使用方法有哪些?
  • Docker安装mysql安装nginx安装Redis
  • 蓝桥杯18小白第5题
  • labview串口大数据量报错的一种解决思路(通过tcp进行写入和读取串口数据)
  • 最小二乘估计
  • ubuntu使用wireshark抓取数据