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
- Boolean类型转换
-
使用Boolean()函数
数据类型 转为true的值 转为false的值 Boolean true false String 非空字符串 "" 空字符串 Number 非零值 0,NaN Object 任意对象 null Undefined N/A不存在 undefined
-
Number类型
- 数值转换
- 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类型
-
字符串转换
- toString()
- String()
//toString
/*
- 在数值调用的时候可以接受一个参数,输出对应的进制
- null 和 undefined 没有对应的toString方法
*/
let num = 10
console.log(num.toString(10))
console.log(String(null)) //null
console.log(String(undefined)) //undefined
-
模板字面量
与字符串不同模板字符串,模板字面量保留换行字符。
let myMultiLineString = 'first line \r\n second line'
let myMultiLineTemplateLiteral = `first line
second line`
console.log(myMultiLineString)
console.log(myMultiLineTemplateLiteral)
-
字符串插值
使用"${}"可以在字符串中使用表达式
let value = 5
let exponent = 'second'
let interpolatedTemplateLiteral = `${value} to the ${exponent} power is ${value*value}`
Symbol类型
-
符号的基本使用
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