最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 前端|每天5道面试题(3)

    正文概述 掘金(_noob)   2021-02-26   644

    1、JS有几种数据类型,其中基本数据类型有哪些!

    七种数据类型

    • Boolean
    • Null
    • Undefined
    • Number
    • String
    • Symbol (ECMAScript 6 新定义)
    • Object

    (ES6之前)其中5种为基本类型:string,number,boolean,null,undefined,

    ES6出来的Symbol也是原始数据类型 ,表示独一无二的值

    Object 为引用类型(范围挺大),也包括数组、函数

    2、原型和原型链

    创建一个函数就会为其创建一个prototype属性,指向这个函数的原型对象,原型对象会自动获得constructor属性,指向prototype属性所在函数。

    当一个对象调用某个方法或者属性的时候,先在自身查找,如果找到就调用,如果没有就顺着__proto__到原型对象中查找,如果还没有就继续去原型的原型中查找,一直到null,这样形成一条链叫做原型链。如果还没有找到就返回undefined。

    3、继承

    (1)原型链继承

    前端|每天5道面试题(3)

    (2)构造函数继承

    前端|每天5道面试题(3)

    (3)组合继承

    前端|每天5道面试题(3)

    4、作用域和闭包

    作用域其实可理解为该上下文中声明的 变量和声明的作用范围

    闭包属于一种特殊的作用域,称为 静态作用域。它的定义可以理解为: 父函数被销毁 的情况下,返回出的子函数仍然可以继续访问到父级的变量对象,这样的函数称为闭包。

    • 闭包会产生一个很经典的问题:

      • 多个子函数的[[scope]]都是同时指向父级,是完全共享的。因此当父级的变量对象被修改时,所有子函数都受到影响。
    • 解决:

      • 变量可以通过 函数参数的形式 传入,避免使用默认的[[scope]]向上查找
      • 使用setTimeout包裹,通过第三个参数传入
      • 使用 块级作用域,让变量成为自己上下文的属性,避免共享

    5、call和apply、bind

    首先要了解this的指向问题:

    (1)this的指向不是在函数定义时确定的,而是在函数调用时确定,this默认情况下指向window,严格模式下为undefined

    (2)使用new 调用构造函数时,构造函数内的this 指向新创建的对象

    (3)通过 出call/apply/bind方法显式调用函数时,函数内this 指向指定的对象(第一个参数)

    (4)通过上下文对象A调用函数时,函数内this指向对象A

    var obj = {
      name: '橘子君',
      fn: function () {
        console.log(this);
      }
    }
    obj.fn();// 输出:{name: "橘子君", fn: ƒ}
    

    (5)箭头函数本身并不存在this箭头函数的this的指向由它的外层作用域来决定的(指向外层作用域的this)

    再来看call和apply、bind

    作用:在函数调用时改变函数的执行上下文也就是this的值指向

    区别:call采用不定长的参数列表,而apply使用一个参数数组。

    • call: fn.call(target, 1, 2)
    • apply: fn.apply(target, [1, 2])
    • bind: fn.bind(target)(1,2)

    起源地下载网 » 前端|每天5道面试题(3)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元