zoukankan      html  css  js  c++  java
  • 常考JS题笔记

    ### 1. 原始类型有哪几种?null 是对象吗?

    答: Null,undefined,Number,String,Blooean,symbol
    1)【理解和使用ES6中的Symbol】【https://www.jianshu.com/p/f40a77bbd74e】
    2)null不是对象,但是typeof会把其归为对象
    console.log(typeof null) // `000` 开头代表是对象,然而 `null` 表示为全零,所以被误判为对象
    console.log(null instanceof Object)

    let c = 2;
    let d = Number(c)
    let e = new Number(c)
    console.log(typeof c); //number
    console.log(c instanceof Number); //false
    console.log(d instanceof Number); //false
    console.log(e instanceof Number); //true
    明明都是num,而且都是2,只是因为第一个不是对象,是基本类型,所以直接返回false,而new是封装成对象,所以true。
    这里要严格注意这个问题,有些说法是检测目标的__proto__与构造函数的prototype相同即返回true,这是不严谨的,检测的一定要是 [对象] 才行
    let f = [];
    console.log(f instanceof Array); //true
    复杂类型是直接生成构造函数的,所以不会像基本类型一样两种情况,这个可以放心用。

    [JS的instanceof到底是有多坑?][https://www.imooc.com/article/69870]

    ### 2. 对象类型和原始类型的不同之处?函数参数是对象会发生什么问题?
    答: 原始对象存放的是值;对象类型存放的是指针;

  • 相关阅读:
    大佬讲话听后感
    P1226快速幂取余
    对拍
    P1017 进制转换
    P1092 虫食算 NOIP2002
    P1003 铺地毯
    P1443 马的遍历
    P1032 字串变换
    P1379 八数码问题
    2-MAVEN 基本命令
  • 原文地址:https://www.cnblogs.com/xiaozhumaopao/p/11119097.html
Copyright © 2011-2022 走看看