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 bconsole.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 = truebreak}}// 唯一的元素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。