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

  • 相关阅读:
    npm版本管理
    spring框架学习笔记5:SpringAOP示例
    spring框架学习笔记4:SpringAOP实现原理
    spring框架学习笔记3:使用注解代替配置文件
    spring框架学习笔记2:配置详解
    spring框架学习笔记1:搭建测试
    struts2框架学习笔记7:struts2标签
    struts2框架学习笔记6:拦截器
    struts2框架学习笔记5:OGNL表达式
    struts2框架学习笔记4:获取参数
  • 原文地址:https://www.cnblogs.com/wangpeiyuan/p/13281066.html
Copyright © 2011-2022 走看看