zoukankan      html  css  js  c++  java
  • javascript双等号引起的类型转换

    隐性类型转换步骤

    一、首先看双等号前后有没有NaN,如果存在NaN,一律返回false。

    二、再看双等号前后有没有布尔,有布尔就将布尔转换为数字。(false是0,true是1)

    三、接着看双等号前后有没有字符串, 有三种情况:

    1、对方是对象,对象使用toString进行转换;

    2、对方是数字,字符串转数字;(前面已经举例)

    3、对方是字符串,直接比较;

    4、其他返回false

    四、如果是数字,对方是对象,对象取valueOf进行比较, 其他一律返回false

    五、null, undefined不会进行类型转换, 但它们俩相等

    举例巩固提高

    下面我们一起来做做下面的题目吧!

    var a;
    console.dir(0 == false);//true
    
    console.dir(1 == true);//true
    
    
    console.dir(2 == {valueOf: function(){return 2}});//true
    
    
    console.dir(a == NaN);//false
    console.dir(NaN == NaN);//false
    
     console.dir(8 == undefined);//false
    
    console.dir(1 == undefined);//false
    
     console.dir(2 == {toString: function(){return 2}});//true
    
     console.dir(undefined == null);//true
    
     console.dir(null == 1);//false
    
      console.dir({ toString:function(){ return 1 } , valueOf:function(){ return [] }} == 1);//true
    
      console.dir(1=="1");//true
      console.dir(1==="1");//false

    本文转载自:http://www.haorooms.com/post/js_yinxingleixing

  • 相关阅读:
    在线心理测试脚本
    素数
    设置层叠效果
    年轻,无权享受...
    Unity3D之预设
    Json解析类
    php 正则表达式
    php 字符串处理
    php 基础语法
    SQL 函数
  • 原文地址:https://www.cnblogs.com/shytong/p/5361312.html
Copyright © 2011-2022 走看看