浅析数据类型

818 阅读2分钟

数据类型包括简单数据类型和复杂数据类型。
简单数据类型包括:Undefined、Null、Boolean、Symbol、Number、String
复杂数据类型包括:Object

一、typeof操作符

对任意一个值使用typeof操作符会返回一个字符串,从而确定该值的类型。

let message = "some string"
console.log(typeof message) //"string"
console.log(typeof (message)) //"string"
console.log(typeof 95)  //"number"

二、Undefined

undefined是一个假值。当声明变量但没有给初始值赋值的时候,就相当于给变量赋予了undefined的值。

let message 
console.log(message === undefined) //true

三、Null

在定义将来要保存对象值的变量时,一般使用null来初始化。null也是一个假值。

四、Boolean

Boolean有两个值:true和false。这两个值是区分大小写的。

五、Number

number分为整数值和浮点值。

1. 浮点值

浮点值数值中必须含有小数点,且小数点之后必须要有数字。小数点之前的数字可以省略,但一般还是会加上。

为了节省内存,一般浮点值会被转换为整数。

永远不要测试某个特定的浮点值

在多数浏览器中,最小值Number.MIN_VALUE的值为5e-324,最大值Number.MAX_VALUE的值为1.7976931348623157e+308.

NaN不等于包含NaN在内的任何值

console.log(NaN === NaN) //false
  • Number()是转型函数,可以用于任何数据类型
let num1 Number("Hello Word!") //NaN
let num2 Number("") //0
let num3 Number("000011") //11
let num4 Number(true) //1
  • parseInt()函数如果第一个字符不是数值、加号或者减号,返回NaN。否则会继续检测每个字符,直到字符末尾,或者非数值字符。
let num1 = parseInt("1234blue") //1234
let num2 = parseInt("") //NaN
let num3 = parseInt("0xA") //10,解释为16进制
  • parseFloat()函数解析到字符串末尾或者第一个无效的浮点数值字符为止。
let num1 = parseFloat("1234blue") //1234
let num2 = parseFloat("22.35.6") //22.35
let num3 = parseFloat("0908.5") //908.5

六、String

  • 特点:要修改某个变量的字符串值,需要先销毁原先的字符串,然后将包含新值的字符串保存到该变量。
let lang = "java"
lang = lang + "script" //"javascript"
  • String()如果值有String()方法,则调用该方法并返回结果;如果是null返回"null";如果是undefined返回"undefined"。
let value1 = 10
let value2 = null
let value3 = undefined

console.log(String(value1)) //"10"
console.log(String(value2)) //"null"
console.log(String(value3)) //"undefined"
  • toString()可以强制转型为字符串。

七、Symbol

1. 基本用法

符号是需要使用Symbol()函数初始化。

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

创建了Symbol()实例并用作对象的新属性,就不会覆盖原有的对象属性。

Symbol()函数不能与new关键字一起作为构造函数使用

所有内置符号属性都是不可写、不可枚举、不可配置的