每个前端工程师都应该去了解的前端面试题小结(推荐)

  发布时间:2020-04-15 15:48:28   作者:前端岚枫   我要评论
面试对于我们每个程序员来说都是非常重要的环节,掌握一些面试题技巧是非常有必要的,今天小编给大家分享几个js有关的面试题,需要的朋友参考下吧

当我们需要找工作的时候,面试对于我们每个程序员来说都是非常重要的环节,掌握一些面试题技巧是非常有必要的,今天主要分享几个js有关的面试题

作用域

var num1 = 55
var num2 = 66
function f1(num, num1) {
num = 100
num1 = 100
num2 = 100
console.log(num) //100
console.log(num1) //100
console.log(num2) // 100
}
f1(num1, num2)
console.log(num1) //55
console.log(num2) // 100
consolee.log(num) //num is not defined

值类型和引用类型的传递

//构造函数
function Person(name, age, salary) {
  this.name = name;
  this.age = age;
  this.salary = salary
}

function f1(person) {
	person.name = 'ls';
  person = new Person('aa', 18, 10)
}
var p = new Person('zs', 18, 1000)
console.log(p.name); // zs
f1(p)
console.log(p.name) // ls

image.png
 

封装函数将字符串进行驼峰命名

根据某个字符进行切割

var foo = 'get-element-by-id';
//根据某个字符串进行切割
var arr = foo.split('-');
//获取每个元素中的第一个字符并转换成大写
for(var i = 1; i< arr.length; i++) {
  arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substr(1, arr[i].length-1)
}
//根据某个字符将数组转换成字符串
console.log(arr.join(''))

//自定义函数
function toString(foo) {
	var arr = foo.split('-');
//获取每个元素中的第一个字符并转换成大写
for(var i = 1; i< arr.length; i++) {
  arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substr(1, arr[i].length-1)
}
//根据某个字符将数组转换成字符串
return arr.join('')
}
console.log(toString('get-element-by-id'))

冒泡排序

var arr=[5,4,3,2,1]
//轮数
for(var i=0; i< arr.length - 1 ; i++) {
	for(var j = 0; j< ar.length - 1-i; j++ ) {
  	// 判断前一个数大于后一个数时候进行值交换
    if(arr[j] > arr[j+1]) {
     //借助第三方变量交换两个变量的值
      var temp = arr[j]
      arr[j] = arr[j+1]
      arr[j+1] = temp
    }
  }
}
console.log(arr)

image.png
 

反转数组

var arr = [1,2,3,4, 5,6,7,8]
for(var i=0; i< arr.length/2; i++) {
	// arr[i] arr[arr.length-1-i]
  // 借助第三方变量交换两个变量的值
  var temp = arr[i]
  arr[i] = arr[arr.length-1-i]
  arr[arr.length-1-i] = temp
}

去掉数组中重复性数据先创建一个新数组,把原数组中的第一个元素插入到新数组中遍历原数组中的每一个元素分别和新数组中的每个元素进行比较

// 原数组
var arr = [8, 11,20,5,20,8,0,2,4,0,8]
// 新数组
var newArr = []
newArr[0] = arr[0]
for(var i=0; i< arr.length; i++) {
  //newArr中的每个元素
  for(var k=0; k< newArr.length; k++) {
    // 当原数组中的值和新数组中的值相同时候,就没有必要再继续比较了,跳出内循环
  	if(newArr[k] === arr[i]) {
    	break;
    }
    
    //拿原数组中的某个元素比较新数组中的最后一个元素还没有重复
    if(k === newArr.length - 1) {
      //将数据插入新数组中
    	newArr.push(arr[i])
    }
  }
}
console.log(newArr)

到此这篇关于每个前端工程师都应该去了解的前端面试题小结(推荐)的文章就介绍到这了,更多相关前端工程师面试题总结内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

相关文章

  • 2019最新Web前端经典面试试题(含答案)

    这篇文章主要介绍了2019最新Web前端经典面试试题(含答案),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-04-03
  • 2020前端面试题之HTML篇(推荐)

    一场疫情过后,又要经历一次次面试,今天小编给大家分享2020前端面试题之HTML篇,非常不错,对大家有所帮助,需要的朋友参考下吧
    2020-03-25
  • 2019大厂前端面试题小结

    这篇文章主要介绍了2019大厂前端面试题小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-03-05
  • 前端js 基础面试题目(提前看)

    在面试前必看的一些基础面试题目,本文是小编给大家精心收藏整理的非常不错,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下
    2020-04-22

最新评论