前端常問面試題(一)
阿新 • • 發佈:2020-08-28
作用域
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'; //根據某個字串進行切割 vararr = 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 }
去掉陣列中重複性資料
- 先建立一個新陣列,把原陣列中的第一個元素插入到新陣列中
- 遍歷原陣列中的每一個元素分別和新陣列中的每個元素進行比較
// 原陣列 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)