每個前端工程師都應該去了解的前端面試題總結(一)

當我們需要找工作的時候,面試對於我們每個程序員來說都是非常重要的環節,掌握一些面試題技巧是非常有必要的,今天主要分享幾個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
}

去掉數組中重複性數據

  1. 先創建一個新數組,把原數組中的第一個元素插入到新數組中
  2. 遍歷原數組中的每一個元素分別和新數組中的每個元素進行比較


// 原數組
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)

如果想了解更多,請掃描下面二維碼,關注公衆號:
qrcode_for_gh_4d3763fa9780_258 (1).jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章