zoukankan      html  css  js  c++  java
  • 每个前端工程师都应该去了解的前端面试题总结(一)

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

  • 相关阅读:
    java痛苦学习之路[十]--日常问题汇总
    我有回来了
    LeetCode[Array]----3Sum
    在Visual Stdio 2012中编译执行JM18.6的方法
    Android沉浸式状态栏兼容4.4手机的实现
    HTML5学习笔记(九):选择器详解
    HTML5学习笔记(八):CSS定位
    HTML5学习笔记(七):CSS盒子模型
    HTML5学习笔记(六):CSS基本样式
    HTML5学习笔记(五):CSS基础
  • 原文地址:https://www.cnblogs.com/lfcss/p/12690752.html
Copyright © 2011-2022 走看看