前端面试笔试题目2020

2023-08-01 09:49:00 来源 : haohaofanwen.com 投稿人 : admin

下面是好好范文网小编收集整理的前端面试笔试题目2020,仅供参考,欢迎大家阅读!

前端面试笔试题

const iptList = document.getElementsByTagName('input')const checkList = let len = iptList.lengthwhile (len--) {  if (iptList[len].type === 'checkbox') {    checkList.push(iptList[len])  }}console.log(checkList)复制代码

2.已知有字符串 foo=”get-element-by-id” ,写一个 function 将其转化成驼峰表示法”getElementById” 。

//方法一:const foo = 'get-element-by-id'functionformat (str) {  const newArr = str.split('-')  let len = newArr.lengthwhile (len) {    if (len > 1) {      const arr = newArr[len - 1].split('')      arr.splice(0, 1, arr[0].toUpperCase())      newArr.splice(len - 1, 1, arr.join(''))    }    len--  }  const newStr = newArr.join('')  return newStr}format(foo)复制代码
//方法二:const foo = 'get-element-by-id'functiontranslate (res) {  const arr = res.split('-') // 以-为分隔符截取字符串,返回数组for (let i = 1; i < arr.length; i++) {    arr[i] = arr[i].charAt.toUpperCase() + arr[i].slice(1)  }  res = arr.join('') // 返回字符串return res}translate(foo)复制代码

3.对给定数组实现倒排

// 方法一const numberArray = [ 3, 6, 2, 4, 1, 5 ]numberArray.reverse()//方法二const numberArray = [ 3, 6, 2, 4, 1, 5 ]const newArr = for (let i = 0; i < numberArray.length; i++) {  newArr.unshift(numberArray[i])}复制代码

4.对给定数组实现降序和升序

//实现降序const numberArray = [ 3, 6, 2, 4, 1, 5 ]numberArray.sort((a, b) => {  return b - a})//实现降升序// 方法一const numberArray = [ 3, 6, 2, 4, 1, 5 ]numberArray.sort((a, b) => {  return a - b})// 方法二 通过冒泡排序实现数组升序const numberArray = [ 3, 6, 2, 4, 1, 5 ]functionBubbleSort (arr) {  for (let i = 0; i < arr.length - 1; i++) {    for (let j = i + 1; j < arr.length; j++) {      if (arr[i] > arr[j]) {        const tmp = arr[j]        arr[j] = arr[i]        current = tmp      }    }  }  return arr}BubbleSort(numberArray)// 方法三 通过插入排序实现数组排序const numberArray = [ 3, 6, 2, 4, 1, 5 ]functioninsertSort (arr) {  for (let i = 1; i < arr.length; i++) {    for (let j = i - 1; j >= 0; j--) {      if (arr[j + 1] < arr[j]) {        const temp = arr[j]        arr[j] = arr[j + 1]        arr[j + 1] = temp      } elseif (arr[j + 1] >= arr[j]) {        break      }    }  }  return arr}insertSort(numberArray)// 方法四 通过计数排序实现数组排序const numberArray = [ 3, 6, 2, 4, 1, 5 ]functionCountSort (arr) {  const obj =   for (let i = 0; i < arr.length; i++) {    if (!obj[arr[i]]) {      obj[arr[i]] = 1    } else {      obj[arr[i]]++    }  }  let index = 0// 遍历对象属性名,按顺序放回覆盖原数组for (const key in obj) {    while (obj[key] > 0) {      arr[index] = Number(key)      obj[key]--      index++    }  }  return arr}console.log(CountSort(numberArray))复制代码

[参考博客](数组排序多种方法汇总 - 一只看夕阳的猫 - 博客园 ())

将数字 12345678 转化成 RMB 形式 如: 12,345,678

functionformat (num) {  // 将数字转换为字符串模式const str = num.toString()  // 封装一个字符串翻转函数functionrevStr (str) {    return str.split('').reverse().join('')  }  // 保存翻转后的字符串const newStr = revStr(str)  // 定义一个变量用来保存处理后的结果let res = ''// 循环中的i必须是1,否则if条件执行错误for (let i = 1; i <= newStr.length; i++) {    res = res + newStr[i - 1]    if (i % 3 === 0 && i !== newStr.length) {      res = res + ','    }  }  // 将循环后的结果翻转后返回returnrevStr(res)}format(12345678)复制代码

JavaScript 中如何对一个对象进行深度 clone?

方法一:

functionclone (obj) {  // 判断数据类型是不是对象if (typeof obj === 'object') {    // 因为数组也属于对象,细分传入的值是不是数组if (obj instanceofArray) {      const result =       for (let i = 0; i < obj.length; i++) {        // 递归调用        result[i] = clone(obj[i])      }      return result    } else {      const result =       for (const i in obj) {        // 递归调用        result[i] = clone(obj[i])      }      return result    }  } else {    return obj  }}const obj1 = [ 12, { a: 11, b: 22 }, 5 ]const obj2 = clone(obj1)obj2[1].a += 5console.log(obj1, obj2)复制代码

方法二:

functioncloneObject (obj) {  console.log(!obj)  // 如果obj有值,就会去判断obj的类型是不是对象,不满足条件直接返回值if (!obj || typeof obj !== 'object') {    return obj  }  // 判断obj是不是数组,从而定义一个初识变量用于保存值const o = obj.constructor === Array ?  :   // 循环obj中的每一个keyfor (const i in obj) {    // 判断obj[i]的值是不是对象,如果是执行递归    o[i] = typeof obj[i] === 'object' ? cloneObject(obj[i]) : obj[i]  }  return o}const obj1 = [ 12, { a: 11, b: 22 }, 5 ]const obj2 = cloneObject(obj1)obj2[1].a += 5console.log(obj1, obj2)复制代码


相关文章

    暂无相关信息
专题分类