zoukankan      html  css  js  c++  java
  • JavaScript数据类型

    数据类型

    js中的数据类型分为基本数据类型和引用数据类型

    基本数据类型:number string boolean null undefined
    引用数据类型:
    对象object:Array Object RegExp Math Date String Number
    函数Function

    number数据类型

    包含整数和浮点数。

    将其他数据类型转为数字数据类型的方法?
    Number():
    强制将其他数据类型转为数字类型,当转化值中有一个不是数字的时候,就返回NaN,如果是数字的时候直接返回数字,Number()这个方法的返回值只有数字或NaN。
    NaN:not a number 非有效数字

    • Number({})
      对象数据类型转化为数字的时候,首先会转化为字符串,然后再转化为数字。
      第一步 先将括号中的{}转为字符串,调用.toString()方法
      第二步 {}.toString() 转为字符串 最终值为"[object Object]"
      Number("[object Object]") 最终值是NaN
    • Number([])
      第一步 [].toString() 转为字符串最终值为 "" (空字符串)
      第二步 Number("") 最终值是0
    • Number(null) 最终值是0
    • Number(undefined) 最终值是NaN
    • Number(true) 最终值是1
    • Number(false) 最终值是0
    console.log(Number(1+1));//2
    console.log(Number("1+1"));//NaN
    //console.log(Number([1,2]));
    //[1,2].toString() -- > "1,2"
    //Number("1,2") -- >NaN
    

    Number()中的值如果是

    1. 字符串的时候,只要字符中有一个值不是数字返回NaN
    2. 对象的时候,先将对象转为字符串(调用.toString()方法),然后将字符串转为数字
    3. 布尔的时候,true为1,false 0
    4. null的时候,为0
    5. undefined的时候,为NaN

    isNaN()
    检测一个值不是一个数字,返回值是布尔类型的值,要么是true要么是false,isNaN在验证之前,会先调用Number()方法,然后再去检查Number()方法的返回值。

    parseFloat()
    将字符串中的值从左向右查找,遇到非数字停止查找,将查找到的结果作为返回值,可以识别小数点

    parseInt()
    将字符串中的值从左向右查找,遇到非数字停止查找,将查找到的结果作为返回值,只能返回整数

    console.log(parseFloat("123.45bc"));//123.45
    console.log(parseInt("123.45bc"));//123
    console.log(parseInt([]));//NaN
    console.log(parseFloat(true));//NaN
    console.log(parseFloat(1.2));//1.2
    console.log(parseInt(1.2));//1
    console.log(parseInt(.2));//0
    console.log(parseFloat(.2));//0.2
    console.log(parseInt(".2"));// NaN
    console.log(parseInt(.2));// 0
    console.log(parseFloat(".2"));//0.2
    console.log(NaN == NaN);//false
    

    boolean数据类型

    布尔是逻辑运算 只有两个值 true 和 false
    如果判断一个值是真是假,遵循 0 "" NaN null undefined为假,其余都为真

    console.log(null == undefined);  //true
    console.log(!(NaN == NaN));//true
    console.log(!"0");//false
    console.log(!!"null");//true
    

    js中数据类型的比较

    对象转为布尔值的时候,全部为true

    '' 两个值比较是否相等
    '
    =' 绝对比较 只要两边数据类型不同 直接返回false

    val1 == val2 如果两个值不是同一个数据类型 就会进行默认数据类型转换

    对象 == 对象 永远不相等
    对象 == 字符串 将对象通过toString 转化为字符串,再进行比较
    对象 == 数字 将对象通过toString() 转化为字符串,然后在转化为数字
    数字 == 字符串 字符串转化为数字 再进行比较
    数字 == 布尔 将布尔转化为数字(true:1, false:0) 在进行比较
    字符串 == 布尔 都转化为数字在进行比较
    null和undefind 跟任何其他数据类型都不等

  • 相关阅读:
    solaris10 服务管理
    DLL的导出导入与调用
    c# Font字体
    WaitForMultipleObjects、WaitForSingleObject、GetExitCodeThread
    solaris10补丁管理
    注册表API函数
    简单的编码加密
    asp.net 调用外部程序
    Global.cs 获取网址
    Jquery easyui dialog组件, 默认不自动打开
  • 原文地址:https://www.cnblogs.com/Juphy/p/6964409.html
Copyright © 2011-2022 走看看