最近面试前端遇到的一些面试问题

本文详细介绍了JavaScript中数组排序的各种方法,包括利用数组sort()函数和for循环对比实现升序排列。同时,深入探讨了闭包的概念,讨论其优缺点,并通过实例展示了闭包如何读取其他函数的内部变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.数组从小到大排序有哪些方法?

利用数组Aarr.sort()排序

var arr = [45,3,12,4,8,25];

       function compare(a,b){
        	return a-b;
        }

  arr.sort(compare);

====================================================================================

 for遍历数组对比

  var arr = [45,3,12,4,8,25];

   var min;
   for(var i=0;i<arr.length;i++){

   for(var j=i;j<arr.length;j++){

    if(arr[i]>arr[j]){
         min=arr[j];
         arr[j]=arr[i];
         arr[i]=min;
          }
        }
     }

    console.table(arr);

 

 2.一个关于闭包的题目

  var  name = 'Hello';

      (function(){

        if(name==undefined){

             var name = 'Jack';

             console.log('you are'+' '+name)

         }else{

             console.log(name+'world');

         }

      })()  

 这段代码最终输出是  you are Jack

 在这我们聊聊闭包问题吧

 闭包的概念:

 我的理解是,闭包就是能够读取其他函数内部变量的函数。

优点

1.保护函数内的变量安全,加强了封装性

2.在内存中维持一个变量(用的太多就变成了缺点,占内存)
 

缺点:

闭包有一个非常严重的问题,那就是内存浪费问题,这个内存浪费不仅仅因为它常驻内存,更重要的是,对闭包的使用不当会造成无效内存的产生。

 

 console.log("100"+2-"1") // number 1001

 typeof (1+"5"); // string 15

 typeof (1-"5"); //number -4

 typeof (NaN);// number

 typeof null; // object

 typeof underfined // undefined

 

 这里要记住的是 “+” 有字符串存在就是连接字符串了 

 

=====================================================

 

var a = '数据1';

var obj = {
  a:'数据2',
  pro:{
    a:'数据3',
    getName:function(){
       return this.a;
    }
  }
}

console.log(obj.pro.getName());//数据3

var test = obj.pro.getName;

console.log(test());// 数据1

===========================================================

考察作用域

 

  function fn(){
  	var arrFn = new Array();

  	for(var i=0;i<5;i++){
  		arrFn[i] = function(){
            return i;
  		}
  	}

  	return arrFn;


  }

  var box = fn();

  for(var j=0;j<box.length;j++){
  	  console.log(box[j]());//   5 5 5 5 5
  }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值