01 js数据类型

105 阅读2分钟

js原始数据类型

js原始数据类型有:Number,String,Bollean,Null,Undefine,Symbol以及object

Undefined类型

  • 当使用var或者let声明了变量,但是没有初始化值就相当于给变量赋予了undefine
  • 对未声明的变量调用它时,返回的结果还是“undefined”
//let message
console.log(message) //报undefined
let age
console.log(age) //报未定义

//最好在使用之前定义变量,就可以知道是未声明

Null类型

表示一个空对象指针

Boolean类型

有两个字面量值:true和false

  1. Boolean类型转换
    • 使用Boolean()函数

      数据类型转为true的值转为false的值
      Booleantruefalse
      String非空字符串"" 空字符串
      Number非零值0,NaN
      Object任意对象null
      UndefinedN/A不存在undefined


Number类型

  1. 数值转换
    • Number()
    • parseInt()
    • parseFloat()

[注]Number()是转型函数,可用于任何数据类型。parseInt()和parseFloat()主要用于将字符串转换为数值

//Number()函数转换规则
/*
    - 布尔值:true转换为1,false转换为0
    - 数值:直接返回
    - null:返回0
    - undefined:返回NAN
    - 字符串
        --  如果字符串包含数值字符,包括前面带加减号的情况,则转换未十进制
        --  如果是浮点值格式如"1.1",则转换为浮点数
        --  如果字符串包含有效的十六进制则转换为十六进制
        --  如果是空字符串则转换为0
        --  除此之外则返回NaN
    - 对象
        --  调用valueOf()方法,并按照上述规则转换返回的值,如果结果是NaN,则调用toString()再按照转换字符串的规则转换
     
*/

let num1 = Number("hello world")  //num1 NaN
let num2 = Number("") //num2 0
let num3 = Number("0011") //num3 11
let num4 = Number(true)  // num4 1

let num5 = parseInt("1234blue") //1234
let num6 = parseInt("0xA")  //10
let num7 = parseInt(22.5)  //22
let num8 = parseInt("70")  //70

String类型

  1. 字符串转换

    • toString()
    • String()
 //toString
 /*
    - 在数值调用的时候可以接受一个参数,输出对应的进制
    - null 和 undefined 没有对应的toString方法
 */
 let num = 10
 console.log(num.toString(10))
 console.log(String(null)) //null
 console.log(String(undefined)) //undefined
  1. 模板字面量

    与字符串不同模板字符串,模板字面量保留换行字符。

let myMultiLineString = 'first line \r\n second line'
let myMultiLineTemplateLiteral =  `first line 
second line`
console.log(myMultiLineString)
console.log(myMultiLineTemplateLiteral)

  1. 字符串插值

    使用"${}"可以在字符串中使用表达式

let value = 5
let exponent = 'second'
let interpolatedTemplateLiteral = `${value} to the ${exponent} power is ${value*value}`

Symbol类型

  1. 符号的基本使用

let sym = Symbol()
console.log(typeof sym)  //symbol
let genericSymbol = Symbol()
let otherGenericSymbol = Symbol()

let fooSymbol = Symbol('foo')
let otherFooSymbol = Symbol('foo')

console.log(genericSymbol == otherGenericSymbol) //false
console.log(fooSymbol == otherFooSymbol) //false