js 题目 —— console.log()

1. 函数、变量 作用域

(1)

Foo()

  function Foo () {
    console.log(this.getName())
  }

  var getName = function () {
    console.log(4)
  }

  Foo()

  function getName () {
    console.log(5)
  }

  Foo()

(2)

Foo()

  function Foo () {
    getName = function () {
      console.log(1)
    }
    console.log(this.getName())
  }

  var getName = function () {
    console.log(4)
  }

  Foo()

  function getName () {
    console.log(5)
  }

  Foo()

(3)

function Foo () {
    getName = function () {
      console.log(1)
    }
    return this
  }

  Foo.getName = function () {
    console.log(2)
  }
  
  new Foo.getName()

(4)

function Foo () {
    getName = function () {
      console.log(1)
    }
    return this
  }

  Foo.getName = function () {
    console.log(2)
  }


  Foo.prototype.getName = function () {
    console.log(3)
  }
  
  var getName = function () {
    console.log(4)
  }

  function getName () {
    console.log(5)
  }

  
  Foo.getName()
  getName()
  Foo().getName()
  getName()
  new Foo.getName()
  new Foo().getName()
  new new Foo().getName()

(5)

function test() {
    console.log(1, this)
    return function() {
      console.log(2, this)
      return function () {
        console.log(3, this)
      }
    };
  };

  document.querySelector("input").addEventListener(input, test()());

(6)

for (var i = 0; i <10; i++) {  
    setTimeout(function() { 
      console.log(i);  
    }, 0);
  }

  for (let i = 0; i <10; i++) {  
    setTimeout(function() { 
      console.log(i);  
    }, 0);
  }

数组方法: 添加的都返回长度,删除的都返回删除的元素。

slice VS splice:


【答案】:

1.

(1) 5 4 4

(2) 1 1 1

(3) 2

(4) 2 4 1 1 2 3 3

(5) 页面初始化 this-> window window. (input输入值后 this-> input)

(6) 10 个 10; 0 1 2 3 4 5 6 7 8 9

经验分享 程序员 微信小程序 职场和发展