浅识js —— 数据类型

121 阅读4分钟

js的基础知识 ——— 数据类型的介绍与应用

一、js的基本数据类型

1. Numbr类型(数字类型)

  • 不区分整数浮点数 (100 200 1.1 0 -6 -999 都是数字)
    • var a = 100

2. String类型(字符串类型)

  • 只要是引号包裹的内容, 就是字符串类型(引号不区分单双引号)

            var str1 = '你好'
            var str2 = "asd"
            var str3 = 'qwer'
    

3. undefined类型(未定义类型)

  • 变量只定义, 不赋值的时候, 默认的值就是 undefined 表明未定义

  • 他是一个数据, 表明未定义

            var str1 = '你好'
            var str2 = "asd"
            var str3 = 'qwer'
    

4. Boolean类型(布尔类型)

  • 只有两个值:true false (后续主要用在判断上)
    var boo1 = true     // 定义一个变量, 名为 boo1, 值为布尔值, true
    var boo2 = false    // 定义一个变量, 名为 boo2, 值为布尔值, false
    

5. Null类型

  • 本身是一种数据类型, 只不过代表的是 空(啥也没有)
  • Null 和 undefined 不同!!!
  • 使用场景: 在创建 对象 的时候, 如果开始不知道对象内部有什么, 可以给一个 null
    var nu = null   // 定义一个变量, 名为 nu, 值为 null类型, 代表空
    console.log(nu)
    

二、js数据类型检测

  • 通过 typeof,去检测数据类型的值是什么
  • 语法: typeof (要检测的数据类型的值)
    • 注:typeof 的问题, 不能正确检测出 null 这个类型的实际类型, 检测 null 的时候打印结果为 object
    • null 代表的含义是 空, 也就是空对象, 所以 typeof 会把他当成一个对象去输出
            var str1 = '100'
            var str2 = 100
            var str3
            var str4 = true
            var str5 = false
            var str6 = null
    
            console.log(typeof(str1))   // string
            console.log(typeof(str2))   // number
            console.log(typeof(str3))   // undefined
            console.log(typeof(str4))   // boolean
            console.log(typeof(str5))   // boolean
            console.log(typeof(str6))   // object
    

三、js数据类型转换

1. 转数字类型

  • Number (数据) ———— 可以用于任何数据类型, 将其转换为 数字类型

    • 字符串转数字
      • 如果转换的字符串是纯数字组成的, 那么直接转换为数字
      • 如果转换的字符串是空字符串或者空白字符串, 那么直接转换为数字0
      • 其他类型的字符串,如果不是空/空白/纯数字字符串,会转换为 NaN *注:NaN表示的是一个 number 的数字, 但是没有办法通过常规的数字表明它, 所以只能使用 NaN 来代替
    • 布尔值转数字
      • true 转换为 1
      • false 转换为 0
    • undefined 转数字
      • 会直接转换为 NaN
    • null 转数字
      • 会直接转换为 0
  • parseInt (数据) ———— 转换为整数

    • 会将数据转换为 number类型, 并且值是整数(直接忽略掉小数点以后的值, 并不是四舍五入)
    • 在转换的时候, 如果数据是纯数字的字符串或者是数字开头的字符串, 那么会转换为数字, 否则就是转换为 NaN
  • parseFloat (数据) ———— 转换为小数

    • 转换结果于 parseInt 类似, 但是在转换小数的时候会保留小数点后的数字
  • 简便方法:(数据)- 0

    //number
       console.log(typeof(Number('100')),Number('100'))  //number 100 
      //字符串转数字
           var asd 
           console.log(typeof(Number('asd')),Number(asd))   //number NaN
       //布尔转数字
           console.log(typeof(Number(true)),Number(true))     //number 1
           console.log(typeof(Number(false)),Number(false))   //number 0
       // undefined
           console.log(typeof(Number(undefined)),Number(undefined))   //number NaN
       // null转数字
           console.log(typeof(Number(null)),Number(null))    // number 0
    // 整数
       console.log(typeof(parseInt('100')),parseInt('100'))
       console.log(typeof(parseInt('100aaa')),parseInt('100aaa'))
       console.log(typeof(parseInt('100.11')),parseInt('100.11'))
       console.log(typeof(parseInt(' ')),parseInt(' ')) 
       console.log(typeof(parseInt('true')),parseInt('true'))
    // 浮点数
       console.log(typeof(parseFloat('100')),parseFloat('100'))
       console.log(typeof(parseFloat('100aaa')),parseFloat('100aaa'))
       console.log(typeof(parseFloat('100.11')),parseFloat('100.11'))
       console.log(typeof(parseFloat('true')),parseFloat('true'))
       console.log(typeof(parseFloat('')),parseFloat(''))
    // 扩展 -0
       console.log(typeof('100'), '100')   // string 100
       console.log(typeof('100' - 0), '100' - 0)   // number 100
       console.log(typeof('100.99' - 0), '100.99' - 0)   // number 100
    

2. 转字符串类型

  • 变量.toString()

    • 注意: S 是大写的
    • 注意: undefined 类型 和 null 不能使用 toString 方法
  • String(变量)

    • 什么类型都可以转换为字符串类型的, 包括undefined 和 null 类型
  • 简便方法:(数据)+ ' '

        var str1 = 100
        var str2 = true
        var str3 = false
        var str4 = undefined
        var str5 = null
    // 变量.toString() 
        console.log(typeof(str1.toString()),str1.toString())
        console.log(typeof(str2.toString()),str2.toString())
        console.log(typeof(str3.toString()),str3.toString())
        console.log(typeof(str4.toString()),str4.toString())
        console.log(typeof(str5.toString()),str5.toString())
    // String(变量) 
        console.log(typeof(String(str1)),String(str1))
        console.log(typeof(String(str2)),String(str2))
        console.log(typeof(String(str3)),String(str3))
        console.log(typeof(String(str4)),String(str4))
        console.log(typeof(String(str5)),String(str5))
    //(变量)+ ' '
        console.log(typeof(str1 + ''),str1 + '')
        console.log(typeof(str2 + ''),str2 + '')
        console.log(typeof(str3 + ''),str3 + '')
        console.log(typeof(str4 + ''),str4 + '')
        console.log(typeof(str5 + ''),str5 + '')
    

3. 转布尔类型

  • Boolean (变量) ———— 将其他数据类型, 转换为布尔值
    • 注1:数字转换布尔值, 只有0会转换为 false 其他的数字都会转换为 true, (非0即为真)
    • 注2:字符串转换布尔值, 只有 空字符串 会转换为 false 其他的字符串都会转换为 true
    • 注3. undefined 和 null 转换为布尔值的false
        var num1 = 100
        var num2 = 0
        var num3 = -1
        console.log(num1,Boolean(num1))  // true
        console.log(num1,Boolean(num2))  // false
        console.log(num1,Boolean(num3))  // true
    
        var str1 = ''                
        var str2 = ' '               
        var str3 = 'abc'                       
        console.log(str1, '-->', Boolean(str1))      // false
        console.log(str2, '-->', Boolean(str2))      // true
        console.log(str3, '-->', Boolean(str3))      // true
    
        var und = undefined
        var nul = null 
        console.log(und, '-->', Boolean(und))        // false
        console.log(nul, '-->', Boolean(nul))        // false