zoukankan      html  css  js  c++  java
  • 前端面试题总结

    1.写出[]==![]的结果并解释原因  false

    涉及知识点:==比较运算符的转换规则

    1)undefined和null比较之前不能进行任何类型的转换,等于true

    2)如果有一个操作数是NAN,则返回false

    3)如果一个操作数是字符串类型,一个操作数是数值类型,则先将字符串类型转换成数值类型之后进行比较

    4)如果一个操作数是布尔值类型,一个操作数是数值类型,则将布尔值类型转换成数值类型之后进行比较

    5)如果一个操作数是字符串类型,一个操作数是布尔值类型,则将字符串和布尔值类型都转换成数值类型之后进行比较

    6)如果一个操作数是复杂类型,一个操作数是数值或字符串类型,则复杂类型先调用自身的toValueof()或者toString()方法将其转换成基础类型之后进行比较

    []==![] 这题中,!的优先级高于==运算符,所以![]现将空数组转换成布尔类型为false,再转换成数值类型0,等号右侧[]调用toValueof()方法转换成字符串'',再转换成数值类型0,所有相等

    2.什么是闭包?

     闭包就是函数A内部有一个函数B,函数B中科院访问函数A内部作用域中的变量,函数B就是闭包。函数存在的意义就是科院让我们间接的访问函数内部的变量

    function A() {

      function B() {console.log(b)}

      window.C=function() {console.log(c)}

      return B

    }

    函数B和C都是闭包

    3.:什么是浅拷贝?如何实现浅拷贝?什么是深拷贝?如何实现深拷贝?

  • 相关阅读:
    关于项目管理的几点建议
    网站性能优化之服务端(一)
    HP CQ35 Windows7声卡驱动安装不上问题
    ubuntu双系统启动时卡死解决办法
    第十九周练习题
    第十六周作业练习题
    第十七周练习题
    第十八周练习题
    第十五周练习题
    第十四周练习题
  • 原文地址:https://www.cnblogs.com/wangpeiyuan/p/13281066.html
Copyright © 2011-2022 走看看