zoukankan      html  css  js  c++  java
  • 面试题

    数组去重:

    var result = [];

    var obj = {};

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

      if( !obj[arr[i]] ){

        result.push( arr[i] );

        obj[arr[i]] = 1;

      }

      return result;

    }

    alert(aaa([ 5,2,7,5,1,7,5,4 ]))

    昌泡排序:(思路是两个两个比较,比较小的放到前面,那么最后的那个就是最大,这样的进行下去)

    function aaa(arr){

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

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

          toCon(j,j+1);

        }

        function toCon(prev,next){

          if(arr[prev] > arr[next] ){

            var tmp = '';

            if( arr[prev] > arr[next] ){

              tmp = arr[prev];

              arr[prev] = arr[next];

              arr[next] = tmp;

            }

          }

          return arr;

        }

      }

    }

    function aaa(n){console.log(n);if(n<=2){return 1;}return aaa(n-1)+aaa(n-2)};

    aaa(8)  // 21

    另一种方式:

    function aaa(n){

    var num1 =1;

    var num2 = 2;

    var num3 = 0;

    for(var i = 0;i<n-2;i++){

      num3=num1+num2;

      num1 = num2;

      num2 = num3;

    }

    return num3

    }

    一种算法  斐波那契   数列    1,1,2,3,5,8,13,21

    如果 n小于100就返回n,否则返回100

    Math.min(n,100)

    var arr = [n,100];

    arr.sort(function(n1,n2){

      return n1-n2

    })

    return arr[0]

    将两个数颠倒

    var a = 5;

    var b = 4;

    a=[a,b];

    b=a[0];

    a=a[1];

    例如如果n=5;不用for循环,返回[1,2,3,4,5]

    function show(n){

    var arr = [];

    return (function(){

    arr.unshift(n);

    n--;

    if(n!=0){

     arguments.callee();

    }

    return arr;

    })()

    }

    变量提前

    var a=10;

    function aaa(){

    alert(a); // undefined

    var a = 20;

    }

    aaa();

    正则:

    var str = 'aaacbbbssseeeee';

    var re = /(w)1+/g;

    str.replace(re,function($0,$1){

      

    })

    给数字加分隔符2,333,455

    (?=) 前向声明

    (?!)反前向声明

    function test( str ){

      var re = /(?=(?!) (d{3})+$)/g;

      return str.replace(re,',')

    }

    alert(test(str))

    函数声明与函数表达式

    unm();

    if(1){

      function unm(){

        console.log(1)

      }

    }else{

      function unm(){

        console.log(2)

      }

    }

    输出结果是2,因为函数声明前置

    var obj = {

      eaa:1,

      eee:function(){console.log(this.eaa)}

    };

    obj.eee() //1;

    另一个题

    var obj = {

      eaa:1,

      eee:function(){console.log(this.eaa)}

    };

    (obj.eee,())

    var num = 0;

    function aaa(){

      console.log(num);

      var num;

    }

    aaa() // undefined  var num变量提升

    题1:

    var a=null;
    undefined
    var b;
    undefined
    a==b
    true

    题2

    var a=1;
    function aaa(a){a=2;console.log(a)}
    aaa(a);
    打印结果是2
    a 在函数外输出a为1
    1

    题3

    var num =2;
    function foo(){return num;function num(){return num +'|'+this.num}}
    foo()
    ƒ num(){return num +'|'+this.num}
    foo()()
    "function num(){return num +'|'+this.num}|2"

    题4

    test();

    function test() {console.log(2)}
    var test = function() {console.log(1)};
    2
    test();
    var test = function() {console.log(1)};

    function test() {console.log(2)}
     2

  • 相关阅读:
    final关键字
    海思NB-IOT的SDK看门狗的使用
    IAR环境下编译CC2640入门开发
    股票操作记录180613(2)
    股票操作笔记18年6月13(1)
    PyYAML学习第一篇
    片仔癀犯过的错误
    2018年5月份片仔癀最佳演员奖
    2018-05-22两只垃圾基金南方产业活力000955和鹏华全球高收益债券000290
    linux c编程:网络编程
  • 原文地址:https://www.cnblogs.com/chaoyuehedy/p/8483236.html
Copyright © 2011-2022 走看看