数据类型包括简单数据类型和复杂数据类型。
简单数据类型包括: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关键字一起作为构造函数使用
所有内置符号属性都是不可写、不可枚举、不可配置的