zoukankan      html  css  js  c++  java
  • Js ==和===的区别

    ===判断:

    Undefined === Undefined,返回 true

    Null === Null,返回 true

    null == undefined,返回 false

    NaN === NaN,返回 false (其中typeof NaN : Number)

    +0 === -0,返回 true

    如果左右引用的是同一个对象,返回 true

    ==判断:

    null == undefined,返回 true

    如果x为Number,y为String,返回 x == ToNumber(y) (其中 ToNumber(undefined) == NaN, ToNumber(null) == +0)

    如果x为Number,y为Boolean,返回 x == ToNumber(y)

    如果x为String或Number,y为Object,返回 x == ToPrimitive(y)

    补充:

    在JavaScript中,一共有两种类型的值:原始值(primitives)和对象值(objects).原始值有:undefined, null, 布尔值(booleans), 数字(numbers),还有字符串(strings).其他的所有值都是对象类型的值,包括数组(arrays)和函数(functions)。

    通过ToPrimitive()将值转换为原始值

    ToPrimitive(input, PreferredType?):可选参数PreferredType可以是Number或者String,它只代表了一个转换的偏好,转换结果不一定必须是这个参数所指的类型,但转换结果一定是一个原始值.如果PreferredType被标志为Number,则会进行下面的操作来转换输入的值

    1. 如果输入的值已经是个原始值,则直接返回它.
    2. 否则,如果输入的值是一个对象.则调用该对象的valueOf()方法.如果valueOf()方法的返回值是一个原始值,则返回这个原始值.
    3. 否则,调用这个对象的toString()方法.如果toString()方法的返回值是一个原始值,则返回这个原始值.
    4. 否则,抛出TypeError异常.

    如果PreferredType被标志为String,则转换操作的第二步和第三步的顺序会调换.如果没有PreferredType这个参数,则PreferredType的值会按照这样的规则来自动设置:Date类型的对象会被设置为String,其它类型的值会被设置为Number.

  • 相关阅读:
    使用Power Query从Web页面获取图像到Power BI报告中
    视频 |【2019】Power BI 8月产品功能更新讲解
    【2019】微软Power BI 每月功能更新系列——Power BI 8月版本功能完整解读
    视频 |【2019】Power BI 7月产品功能更新讲解
    2019 年 BI 平台 Top 14
    2016 黑客必备的Android应用都有哪些?
    J2EE完全手册(二)
    JavaBean ,Enterprise Bean(EJB), 三种Bean, 以及POJO
    J2EE完全手册(一)
    J2EE简介
  • 原文地址:https://www.cnblogs.com/allenben/p/6200581.html
Copyright © 2011-2022 走看看