1. 程式人生 > 實用技巧 >前端常問面試題(一)

前端常問面試題(一)

作用域

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

封裝函式將字串進行駝峰命名

根據某個字元進行切割

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)

反轉陣列

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)