前端一面基础知识 ②——作用域和闭包(面试场景题)

前言

    根据慕课网的《快速搞定前端技术一面 匹配大厂面试要求》课程所整理的题目,陆续更新

常考面试题

场景题

    先直接看一下下面这些基础面试场景题,你都会写吗?场景题的答案请拖动下方滚动条,然后查看注释参考对比自己的答案哦

①闭包场景题一
		function print(fn) {
   
            const a = 200
            fn()
        }
        // 函数作为参数被传递
        
        const a = 100

        function fn() {
   
            console.log(a) // 在定义的地方往上查找,找到外面全局定义的 a 变量,所以是打印 100
        }

        print(fn)
         																			             // 100
②闭包场景题二
		function create() {
   
            const a = 100
            return function () {
   
                console.log(a)
            }
        }
        // 函数作为返回值

        const fn = create()
        const a = 200
        fn()
         																			           // 打印 100 
③this、call、bind
		function fn1() {
   
            console.log(this)
        }

        fn1()  																			        // window

        fn1.call(  {
    x:100 }  ) // call直接就改变指向执行
		 																			              // {x:100}
        const fn2 = fn1.bind(  {
    x:200 }  ) // 返回一个新的函数执行,所以需要赋值
        fn2()
         																			              // {x:200}
④this无箭头
	const zhangsan = {
   
            name: '张三',
            sayHi(
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值