js数据类型 和 判断数据类型 和 数据类型转换

133 阅读4分钟

基本数据类型

            == 是指的是我们存储在内存中的数据的类型
            == 我们分为两大类:基本数据类型和复杂数据类型
        基本数据类型 - ES5 
            1 数值类型(number)
                == 一切数字都是数值类型
                == 一个特殊的数字,非数字:NaN 
                   
            2 字符串类型(string)
                == 被引号包裹的数据(可以是单引号也可以是双引号,要成对就可以)
                   被 ' ', " " 包裹的数据 就是字符串类型
                   被引号包裹的数据就是字符串类型
                   
            3 布尔类型(boolean)
                == 只有两个:truefalse
                   
            4 null类型(null)
                == 只有一个,就是null,表示空的意思
                
            5 undefined类型(undefined)
                == 只有一个,就是undefined,表示没值的意思
                
             注意,如果定一个了一个变量,但是没有赋值,变量里面存储的数据是什么?
             undefined

           复杂数据类型 
            == 数组
            == 对象
            == ....

null 和 undefined 的区别

             null是一个表示"无"的对象,转为数值时为0<br>
             undefined是一个表示"无"的原始值,转为数值时为NaN
             当声明的变量还未被初始化时,变量的默认值为undefined
             null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象
             undefined表示 “缺少值”,就是此处应该有一个值,但是还没有定义。典型用法                   是:
             1. 变量被声明了,但没有赋值时,就等于 undefined
             2. 调用函数时,应该提供的参数没有提供,该参数等于 undefined
             3. 对象没有赋值的属性,该属性的值为 undefined
             4. 函数没有返回值时,默认返回 undefined
             null表示“没有对象”,即该处不应该有值。典型用法是:
             1. 作为函数的参数,表示该函数的参数不是对象
             2. 作为对象原型链的终点

判断数据类型 : 使用typeof 关键字来进行判断

            == 语法:typeof 数据
            == 语法:typeof(数据)
            == 结果:是一个表示数据类型的字符串('number'/'string'/'boolean'/'undefined'/'null'var n = 100
            var result = typeof(n)
            console.log(result) // 在控制台输出结果 结果为number类型

数据类型转换

  *其他类型转换成数值类型*
  
  比如:数值类型转字符串,字符串转布尔值,布尔值转数字等  
        其他数据类型转数值类型 - 我们自己调用方法显式转换  
            1 Number(数据)  
                == 可以把一个变量强制转换成数值类型,返回数据转换成的具体的数字
                == 可以转换小数
                == 可以转换布尔值
                == 可以转换null
                == 遇到不可转换的都返回NaN 
            2 parseInt(数据) - 取整 
                == 可以把一个变量强制转换成数值类型,返回数据转换成的具体的数字
                == 从第一位开始检查,是数字就转换,直到一个不是数字的内容
                == 开头不是数字,那么直接返回NaN 
                == 不认识小数点,只能保留整数 
            3 parseFloat(数据) 
                == 可以把一个变量强制转换成数值类型,返回数据转换成的具体的数字 
                == 从第一位开始检查,是数字就转换,直到一个不是数字的内容 
                == 开头不是数字,那么直接返回NaN
                == 认识一次小数点
        其他数据类型转数值类型 - 隐蔽的浏览器自动遇到一些特殊情况给我们转换
            4 除了加法以外的数学运算符
                == 加法以外的数学运算要求两边都是数字
                == 浏览器就自动给我们吧运算符两边的转数字,再参与运算
                == 浏览器内部会调用Number帮我们偷偷的转
                == 加法没有这个能力
            5 使用加法运算
                == 在js里面,+ 有两个含义
                == 如果 + 两边都是数值类型就是表示 做加法运算 
                == 如果 + 两边有任意一边是字符串,就会把两边都自动转换字符串,然后进行字符串拼接 
                
      特殊情况
      truenumber类型 结果为 1
      false nullnumber类型 结果为 0 
      undefinednumber类型 结果为 NaN
      '' 空字符串 转number 结果为 0
                
 *其他类型转换成字符串类型*

     1 变量.toString()
                == 就可以把变量转换成字符串类型
                == 有一些数据类型不能使用这个方法,比如 undefinednull,会报错
     2 String(变量)
                == 所有数据类型都可以转换成字符串
                
 *其他类型转换成布尔类型*
    
    语法: Boolean(变量)
    var num = 100.11;
    var str = 'hello'
    console.log(Boolean(num)); 控制台输出结果为 true   
    console.log(Boolean(str)); 控制台输出结果为 true
    空字符串 也为 true
    0,nullundefinedfalse 
    
     //Boolean(变量)
            == 在js中,只有 "",0,null,undefined,NaN,这些返回的转换结果是false
            == 其余的数据转换结果都是true