首页 > 试题广场 >

请问以下JS代码最后输出的len值是多少? var len

[单选题]
请问以下JS代码最后输出的len值是多少?
var len = 117;
let func = {
  len: 935,
  showLen: function() {
    console.log(this.len);
  },
  show: function() {
    (function(cb) {
      cb();
    })(this.showLen)
  }
}
func.show();


  • 117
  • 935
  • undefined
  • null
立即执行的函数表达式中this指向全局也就是window
发表于 2021-12-09 19:10:17 回复(2)
// 在JavaScript的函数中,this始终指向调用者的上下文环境
var len = 117 // 5. 全局作用域中使用 var 定义的变量默认会成为 window 的属性,及 window.len
let func = {
  len: 935,
  showLen: function () {
    console.log(this.len) // 4. this 此时指向的是 window,所以相当于打印 window.len
  },
  show: function () {
    (function (cb) {
      cb() // 3. cb 相当于 cb.call() 默认没有传入上下文环境时 this 指向全局的 window 对象
    })(this.showLen) // 2. this 是 func 所以传入的是上面定义的 showLen 函数
  }
}

func.show() // 1. 相当于 func.show.call(func),此时 this 是 func

发表于 2022-04-20 11:59:30 回复(0)
var len=117;我们可以发现这个是用var声明的,属于全局变量,所以打印的结果为117; 若将var改为let,则打印的结果为undefined
发表于 2021-12-09 18:00:06 回复(3)
 var len = 117;
        let func = {
            len: 935,
            showLen: function () {
                console.log(this.len);
            },
            show: function () {
                (function (cb) {
                    cb();//以【函数】的形式调用时,this指向window
                })(this.showLen)
            }
        }
        func.show();
        func.showLen();  //以【方法】的形式调用时,this指向被调用的对象(这里是【func】)

发表于 2022-03-17 11:46:57 回复(0)
函数只要不是new出来的,内部this指向都是window,其他的this指当前块
发表于 2022-02-26 22:35:11 回复(0)
函数直接调用,即没有打点调用或者作为构造函数调用,this指向window,和是不是立即执行函数没有关系。不信执行下面的代码。
var len = 117;
let func = {
  len: 935,
  showLen: function() {
    console.log(this.len);
  },
  show: function() {
    const f = function(cb) {
      cb();
    }
    f(this.showLen)
  }
}
func.show();


发表于 2022-02-06 23:17:39 回复(4)
在非严格模式下,独立函数调用内部this都执行window,
发表于 2022-03-07 14:46:01 回复(0)
最后this的指向是,非严格模式下是window,结果为117,严格模式下是undefined,结果是undefined
发表于 2023-02-21 15:11:47 回复(0)
立即执行函数this指向全局(window
发表于 2022-11-29 09:59:47 回复(0)
请问以下JS代码最后输出的len值是多少?我把这句话理解成了 showLen里面的console.log(this.len)输出值是多少了,纠结啊,应该用①②处输出什么来提问……
发表于 2022-04-07 09:00:19 回复(2)
this指向
发表于 2022-03-23 08:52:51 回复(0)