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

    正文概述 掘金(百年孤独html)   2021-08-20   549

    这是我参与8月更文挑战的第16天,活动详情查看:8月更文挑战

    continue问题

    for (let i = 1; i < 5; i++) {
      if (i === 3) continue;
      console.log(i);
    }
    
    • A: 1 2
    • B: 1 2 3
    • C: 1 2 4
    • D: 1 3 4

    答案: C

    这里for循环中,当i等于3的时候,continue就跳过迭代。

    构造函数问题

    String.prototype.giveMyFood = () => {
      return "Please give weirui food!";
    };
    
    const name = "weirui";
    
    name.giveMyFood();
    
    • A: "Please give weirui food!"
    • B: TypeError: not a function
    • C: SyntaxError
    • D: undefined

    答案: A

    String是一个内置的构造函数,我们可以为它添加一些属性。 在这里给它的原型添加了一个方法。 原始类型的字符串自动转换为字符串对象,由字符串原型函数生成。 因此,所有字符串(字符串对象)都可以访问该方法!

    当使用基本类型的字符串调用giveMyFood时,实际上发生了下面的过程:

    • 创建一个String的包装类型实例
    • 在实例上调用substring方法
    • 销毁实例

    类型转换

    const a = {};
    const b = { key: "b" };
    const c = { key: "c" };
    
    a[b] = 123;
    a[c] = 456;
    
    console.log(a[b]);
    
    • A: 123
    • B: 456
    • C: undefined
    • D: ReferenceError

    答案: B 对象键自动转换成了字符串,开始将一个对象设置为对象a的键,值为123,当对象自动转换为字符串时候,就变成了[Object object],所以说是a["Object object"] = 123c对象同样也发生了隐式类型转换。那么,a["Object object"] = 456。这时候我们打印a[b],它实际上是a["Object object"],因此返回456

    call bind问题

    const person = { name: "weirui" };
    
    function sayHi(age) {
      console.log(`${this.name} is ${age}`);
    }
    
    sayHi.call(person, 24);
    sayHi.bind(person, 24);
    
    • A: undefined is 21 Lydia is 21
    • B: function function
    • C: Lydia is 21 Lydia is 21
    • D: Lydia is 21 function

    答案: D

    我们传递this关键字引用的对象, 但是,.call方法会立即执行,

    .bind方法会返回函数的拷贝值,但带有绑定的上下文,不会立即执行。

    类型判断

    function sayHi() {
      return (() => 0)();
    }
    
    typeof sayHi();
    
    • A: "object"
    • B: "number"
    • C: "function"
    • D: "undefined"

    答案: B

    sayHi函数返回立即调用的函数的返回值。 该函数返回0,类型为number

    再来看一个类型判断的问题:

    哪些值是假值?

    0;
    new Number(0);
    ("");
    (" ");
    new Boolean(false);
    undefined;
    
    • A: 0''undefined
    • B: 0new Number(0)''new Boolean(false)undefined
    • C: 0''new Boolean(false)undefined
    • D: 所有都是假值

    答案: A

    JavaScript中只有6个假值:

    • undefined
    • null
    • NaN
    • 0
    • '' (empty string)
    • false

    函数构造函数,如new Numbernew Boolean都是真值。


    起源地下载网 » 【前端--面试】常见面试题(四)—— JavaScript

    常见问题FAQ

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

    发表评论

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

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

    联系作者

    请选择支付方式

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