一、补充

1.js中的三大特殊数据:undefined、null、NaN

  • NaN :非法的数值运算得到的结果

    • 特殊之处:

      1. 是一个数值型数据,但不是一个数字
      2. NaN不等于任何值,和任何数据都不相等,NaN不等于NaN
    • 检测方法:isNaN(要检测的数据)

      • true:检测是否为NaN或是否能转为NaN
      • false:检测结果不是NaN或不能转成NaN

      // 计算机认为每一个NaN都是非法运算的结果,每一个NaN的来源都不一样
      console.log(NaN == NaN); //false // 非法的运算会得到NaN,但不知道这个运算是否为非法运算
      // js提供了一个检测是否为NaN的方法
      console.log(isNaN(NaN)); //true
      console.log(isNaN(123)); //false console.log(isNaN("hello")); //true
      // 还会发生隐式类型的转换
      // 场景:是否可以转为数值,"hello"无法转为数值,所以是非法运算结果为true console.log(isNaN("123")); //false
      // 可以转为数值,数值不是NaN,所以结果为false console.log(isNaN("123hello")); //true
      //是严格转换 console.log(isNaN("123.4")); //false
      //可以识别小数点,可以转为数值
  • undefined- 未赋值 类型是undefined null- 空 类型是object对象

    • 特殊1:undefined 和 null 在关系类型运算时,两边都被隐式类型转换成了一致的数据 0/false
    • 特殊点2:undefined被转换为NaN,null被转换为0
  • 如何判断三大特殊的值分别是谁

    • NaN可以使用isNaN判断

      • isNaN(要判断的值)
           //隐式转换
      console.log(undefined == null); //true
      console.log(undefined == NaN); //false,有NaN肯定不相等
      console.log(null == NaN); //false
      // 三个等号必然不相等,类型肯定不相等 //强制转换
      console.log(Number(undefined)); //NaN
      console.log(Number(null)); //0 // 特殊点1:undefined 和 null 在关系类型运算时,两边都被隐式类型转换成了一致的数据 0/false
      // 特殊点2:undefined被转换为NaN,null被转换为0 console.log(undefined == 0); //f
      console.log(null == 0); //f // 如何判断是哪一个特殊的值
      // 判断undefined和null:
      // typeof()
      //typeof undefined得到undefined
      //typeof null得到object // 如何判断null和真正的对象
      // 真正的对象的明显标志:任何两个对象都不相等,只要相等了,就是只有一个对象
      // null是可以直接等于自己null
      // console.log(null == null); //t
    • undefined可以使用typeof判断
      • typeof 要判断的值或变量
    • null需要配合typeof和关系运算符判断
      • typeof 要判断的值或变量 === "object"
      • 还需要要判断的值或变量 == null

js中的特数值-null-undefined-NaN的更多相关文章

  1. 在js中if条件为null/undefined/0/NaN/""表达式时,统统被解释为false,此外均为true

    Boolean 表达式 一个值为 true 或者 false 的表达式.如果需要,非 Boolean 表达式也可以被转换为 Boolean 值,但是要遵循下列规则: 所有的对象都被当作 true. 当 ...

  2. js中字符串转换为数值的两种方法的区别

    在js中字符串转换为数值的方法有三种:转换函数,强制类型转换,隐式转换 1.转换函数 parseInt()   //将字符串转换为整型 parseFloat()  //将字符串转换为浮点型 转换函数在 ...

  3. json,js中typeof用法详细介绍及NaN、 null 及 undefined 的区别

    JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON.stringify(jsonobj); //可以将json对象转换成json对符串 在js使用中的一个函 ...

  4. 你所不知道的 JS: null , undefined, NaN, true==1=="1",false==0=="",null== undefined

    1 1 1 === 全相等(全部相等) ==  值相等(部分相等) demo: var x=0; undefined var y=false; undefined if(x===y){ console ...

  5. js null, undefined, NaN, ‘’, false, 0, ==, === 全验证

    <html> <head> <meta charset="utf-8" /> </head> <body> <in ...

  6. null undefined NaN

    数据类型 6大基本 Number  String Boolean Undefined Null.  Symbol (ES6)   3大引用类型 object array Function Regexp ...

  7. 判断 null undefined NaN

    1.判断undefined: var tmp = undefined; if (typeof(tmp) == "undefined"){ alert("undefined ...

  8. 详细js中(function(window,document,undefined))的作用

    在jquery插件中我们经常看到以下这段代码 对于很多初学者来说很难明白这表示什么,下边我将为大家介绍其相应的作用. 1.代码最前面的分号,可以防止多个文件压缩合并以为其他文件最后一行语句没加分号,而 ...

  9. js中如何获取纯正的undefined?

    1.为什么要获取undefined? 因为undefined在javascript中不是保留字,可以被用户当做变量来赋值,这样如果我们后期需要用到undefined来检测一个变量的话,那么检测的值就不 ...

随机推荐

  1. filter_var() 验证邮箱、ip、url的格式 php

    验证邮箱格式的正确与否:你的第一解决方案是什么呢? 不管你们怎么思考的:反正我首先想到的就是字符串查找看是否有@符号: 但是对于结尾的.com或者.net 亦或者.cn等等越来越多的域名验证感觉棘手: ...

  2. 基于C++的ButeBuf封装

    目录 1.说明 2.代码 1.说明 netty 的 ByteBuf 中的 readerIndex 和 writerIndex 的设置十分巧妙,它内部对读取和写入位置进行控制,避免自己处理index的时 ...

  3. 2.1 附录--JVM指令手册

    栈和局部变量操作 将常量压入栈的指令 aconst_null 将null对象引用压入栈 iconst_m1 将int类型常量-1压入栈 iconst_0 将int类型常量0压入栈 iconst_1 将 ...

  4. Vulnhub实战-JIS-CTF_VulnUpload靶机👻

    Vulnhub实战-JIS-CTF_VulnUpload靶机 下载地址:http://www.vulnhub.com/entry/jis-ctf-vulnupload,228/ 你可以从上面地址获取靶 ...

  5. .NET 开发一个服务器 应用管理工具

    一:背景 1.Anno.Deploy Anno.Deploy可以和 Anno集成使用,用于部署新的服务.启动服务.停止服务.清理服务.也可以单独使用,用于守护程序. 使用方法 1.和Anno集成使用 ...

  6. 升级了 Windows 11 正式版,有坑吗?

    今天磊哥去公司上班,惊喜的发现 Windows 提示更新了,并且是 Windows 11 正式版,这太让人开心了,二话不说"先升为敬". ​ 下载更新 下载完咱就重启更新呗. Wi ...

  7. NOIP模拟74

    前言 我就想说一句,T3 给了一个什么牛马大样例!!!!!!!!,气\(^{TM}\)死我!!!!!!! 我的 \(\mathcal{O}(n)\) 算法始终过不掉大样例我 TM ,要不然我就直接上矩 ...

  8. 洛谷2494 [SDOI2011]保密 (分数规划+最小割)

    自闭一早上 分数规划竟然还能被卡精度 首先假设我们已经知道了到每个出入口的时间(代价) 那我们应该怎么算最小的和呢? 一个比较巧妙的想法是,由于题目规定的是二分图. 我们不妨通过最小割的形式. 表示这 ...

  9. 试题 历届试题 核桃的数量 java题解

    资源限制 时间限制:1.0s   内存限制:256.0MB 问题描述 小张是软件项目经理,他带领3个开发组.工期紧,今天都在加班呢.为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑).他的要求是: ...

  10. 海信A6/A6L A7Pro/CC A5PRO/A5PRO CC 安装gms google service指南

    用过海信双面屏或者eink手机的朋友都知道,海信手机就是死活安装不了谷歌全家桶,因为海信的领导说跟谷歌有协议不能安装谷歌框架(还说后期google审核坚决不给安装,人家其他ov mui都可以安装).不 ...