经典js代码题目求输出(佛系更新)

let var 作用域function foo() { console.log(this.num) } var num = 4; foo(); // 4let name = "John";function sayHi() { alert("Hi, " + name); }name = "Pete";sayHi(); // petefunction makeWorker() { let name = "Pete"; return function() { a.
摘要由CSDN通过智能技术生成
  1. let var 作用域 作用域链
function foo() {
   
		console.log(this.num)
	}
	var num = 4;
	foo();
	// 4
let name = "John";
function sayHi() {
   
  alert("Hi, " + name); 
}
name = "Pete";
sayHi();
// pete
function makeWorker() {
   
  let name = "Pete";
  return function() {
   
    alert(name);
  };
}
let name = "John";
// 创建一个函数
let work = makeWorker();

work();
// Pete
var name = 'Tom';
(function() {
   
if (typeof name == 'undefined') {
   
  var name = 'Jack';
  console.log('Goodbye ' + name);
} else {
   
  console.log('Hello ' + name);
}
})();
// Goodbye Jack

var name = 'Tom';
(function() {
   
if (typeof name == 'undefined') {
   
        let name = 'Jack';
        console.log('Goodbye ' + name);
    } else {
   
        console.log('Hello ' + name);
    }
})();
// Hello Tom

暂时性死区:
报错的区别

function test1() {
   
    test2()
}
function test2() {
   
    test1()
}
test1() // Uncaught RangeError: Maximum call stack size exceeded

假如不存在提升这个情况,那么就实现不了上述的代码,因为不可能存在 test1 在 test2 前面然后 test2 又在 test1 前面。

let a = function test1() {
   
    test2()
}
let b = function test2() {
   
    test1()
}
a() // Uncaught ReferenceError: test2 is not defined
  1. this 箭头函数 自行函数 普通函数 对象 构造函数
  • 在普通函数下,谁调用这个函数,this指向谁。
  • 而箭头函数没有 this,它会从自己的作用域链的上一层继承 this(因此无法使用 apply / call / bind 直接修改 this 值, 可以改变作用域中this的指向可以改变箭头函数的this,eg. function closure(){()=>{//code }},在此例中,我们通过改变封包环境closure.bind(another)(),来改变箭头函数this的指向)。
var name = 'window'

var person1 = {
   
  name: 'person1',
  show1: function () 
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值