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

    1、自执行函数

      var  f  =  (

        function  g ( ) {

          return  '111';

        },

        function  k ( ) {

          return 2;

        })( )

      console.log(f)  // 2 逗号返回最后一个表达式

    2、函数变成表达式

      var  x  =  1;

      if(function  f ( ) { } ){

        x  +=  typeof  f;

      }

      console.log(x)  // 1undefined  函数变成表达式,判断完就消失了

    3、包装类

      var  str  =  'abc';

      str  +=  1;

      var  test  =  typeof(str);

      if(test.length  == 6){

        test.sign  =  'aabbccdd'

      }

      console.log(test.sign)  // undefined

    4、this指向问题

      var  name  =  '222';

      var  a  =  {

        name: '111',

        say: function ( ){

          console.log(this.name)

        }

      }

      var  b  =  {

        name:  '333',

        say: function ( fun ){

          fun( )

        }

      }

      b.say( a.say )  // 222

    5、类数组模拟数组的push方法

      var  obj  =  {

        "2" : "a",

        "3" : "b",

        "length" : 2,

        "push" : Array.prototype.push

      }

      obj.push('c')

      obj.push('d')

      console.log(obj)

      {

        "2" : "c",

        "3" : "d",

        "length" : 4,

        "push" : Array.prototype.push

      }

      数组push方法原理

      Array.prototype.push  =  function (target){

        this[this.length]  =  target;

        this.length ++;

      }

    6、. VS = 操作符优先级

      let a = {n : 1};

      let b = a;

      a.x = a = {n: 2};

      console.log(a.x)  // undefined

      console.log(b.x)  // {n: 2}

     7、考察自执行函数

      var b = 10;

      (function b(){

        // 'use strict'

        b = 20

        console.log(b)  // ƒ b(){ // 'use strict' b = 20 console.log(b)}

      })()

    8、稀疏数组与密数组

      var ary = [0,1,2];

      ary[10] = 10;

      var  newAry  =  ary.filter(function(x) { return x === undefined;});

      console.log(newAry)  // [ ]

    9、for循环中使用var初始化i和使用let初始化i

      使用var初始化变量i

        第一种:

        for(var  i  =  0;  i  <  5;  i  ++){}

        console.log(i)  // 5

        第二种:

        var  arr  =  [ ]

        for(var  i  =  0;  i  <  5;  i  ++){

          arr[ i ]  =  function( ){

            console.log( i )

          }

        }

        arr[ 2 ]( )  // 5

      使用let初始化变量i

        第一种:

        for(let  i  =  0;  i  <  5;  i  ++){}

        console.log(i)  // 报错  i  is  not  defined

        第二种:

        var  arr  =  [ ]

        for(var  i  =  0;  i  <  5;  i  ++){

          arr[ i ]  =  function( ){

            console.log( i )

          }

        }

        arr[ 2 ]( )  // 2

    10、作用域

      (1)

        var  x  =  1;

        function  fun(x, y = x){

          console.log(y)

        }

        f(5)  // 5

      (2)

        var  x  =  1;

        function  fun(y = x){

          let x  =  8;

          console.log(y)

        }

        fun( )  // 1

      (3)

        function  fun(y = x){

          let  x  =  8;

          console.log(y)

        }

        fun( )  // 报错,x  is  not  defined

  • 相关阅读:
    POJ 3693 Maximum repetition substring (寻找重复次数最多的连续子串)
    URAL-1297 Palindrome (最长回文子串)
    SPOJ
    POJ Musical Theme (求最长不重叠子串)
    Leangoo看板Jenkins配置指南
    Leangoo(领歌)企业版发布,助力企业规模化敏捷
    推荐Scum敏捷开发的几款工具
    如何使用Leangoo进行简单的BUG管理
    轻量级的项目管理工具-Leangoo
    Leangoo敏捷项目协作工具到底好在哪里?
  • 原文地址:https://www.cnblogs.com/cuishuangshuang/p/13264750.html
Copyright © 2011-2022 走看看