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.:什么是浅拷贝?如何实现浅拷贝?什么是深拷贝?如何实现深拷贝?

  • 相关阅读:
    轻松构建微服务之分布式事物
    Java和操作系统交互细节
    网络内核之TCP是如何发送和接收消息的
    最全的微服务知识科普
    【译】TCP Implementation in Linux
    轻松构建微服务之分库分表
    OSX的一些基本知识
    Delphi中使用比较少的一些语法
    热烈祝贺我的博客开通
    Windows 服务快捷启动命令
  • 原文地址:https://www.cnblogs.com/wangpeiyuan/p/13281066.html
Copyright © 2011-2022 走看看