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

一时失言乱红尘 2023-07-25 06:21 49阅读 0赞

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

作用域

  1. var num1 = 55
  2. var num2 = 66
  3. function f1(num, num1) {
  4. num = 100
  5. num1 = 100
  6. num2 = 100
  7. console.log(num) //100
  8. console.log(num1) //100
  9. console.log(num2) // 100
  10. }
  11. f1(num1, num2)
  12. console.log(num1) //55
  13. console.log(num2) // 100
  14. consolee.log(num) //num is not defined

值类型和引用类型的传递

  1. //构造函数
  2. function Person(name, age, salary) {
  3. this.name = name;
  4. this.age = age;
  5. this.salary = salary
  6. }
  7. function f1(person) {
  8. person.name = 'ls';
  9. person = new Person('aa', 18, 10)
  10. }
  11. var p = new Person('zs', 18, 1000)
  12. console.log(p.name); // zs
  13. f1(p)
  14. console.log(p.name) // ls

image.png

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

根据某个字符进行切割

  1. var foo = 'get-element-by-id';
  2. //根据某个字符串进行切割
  3. var arr = foo.split('-');
  4. //获取每个元素中的第一个字符并转换成大写
  5. for(var i = 1; i< arr.length; i++) {
  6. arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substr(1, arr[i].length-1)
  7. }
  8. //根据某个字符将数组转换成字符串
  9. console.log(arr.join(''))
  10. //自定义函数
  11. function toString(foo) {
  12. var arr = foo.split('-');
  13. //获取每个元素中的第一个字符并转换成大写
  14. for(var i = 1; i< arr.length; i++) {
  15. arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substr(1, arr[i].length-1)
  16. }
  17. //根据某个字符将数组转换成字符串
  18. return arr.join('')
  19. }
  20. console.log(toString('get-element-by-id'))

冒泡排序

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

image.png

反转数组

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

去掉数组中重复性数据

  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++) {

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

    }
    }
    console.log(newArr)

发表评论

表情:
评论列表 (有 0 条评论,49人围观)

还没有评论,来说两句吧...

相关阅读

    相关 端面试题总结

    \\ HTML/CSS部分 \\ 1、什么是盒子模型? 在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的内容(content),元素的内边距(padd