文章目录
时隔两天没有发布新文章,再发已是再发人。废话不多说,今天讲的是js中字面量的类型。
在JS中一共有六种数据类型:
- String 字符串
- Number 数值
- Boolean 布尔值
- Null 空值
- Undefined 未定义
- Object 对象
其中前5个属于基本数据类型,而Object属于引用数据类型。
字符串
在JS中字符串需要使用引号引起来。
浅试一下吧:
var str = "hello";
console.log(str);
错误用法
var str = hello;
console.log(str)
使用单引号或双引号都可以,没有区别,但是不要混用。
引号不能嵌套。
var str = '溏心蛋说:"小羊今天真美"';
console.log(str)
引号嵌套
var str = "溏心蛋说:"小羊今天真美"";
console.log(str)
双引号内不能用双引号、单引号内不能使用单引号。
在字符串中可以使用\作为转义字符
当表示一些特殊符号时,可以使用\进行转义。
\n表示换行
\t表示制表符
\表示\
var str = "溏心蛋说:\"小羊今天真美\"";
console.log(str)
Number
在js中所有的数值都是Number类型,包括整数和浮点数(小数)
// 数值123
var a = 123
// 字符串123
var b = '123'
console.log(a)
console.log(b)
区分不出来。
引入typeof
语法 typeof + 变量,返回一个类型值
检查字符串时,会返回string
检查数值时,会返回number
看效果:
// 数值123
var a = 123
// 字符串123
var b = '123'
console.log(typeof a)
console.log(typeof b)
Infinity
js中可以表示的数字的最大值:Number.MAX_VALUE
1.7976931348623157e+308
A = Number.MAX_VALUE * 2
console.log(A)
Infinity 表示正无穷
-Infinity 表示负无穷
也是Number的一种
NaN
NaN是一个特殊的数字,表示Not A Number
浅试一下吧
A = 'abc' * 'cde'
console.log(A)
MIN_VALUE
表示0以上的最小值 5e-324
A = Number.MIN_VALUE
console.log(A)
布尔值
布尔值只有两个,主要用来做逻辑判断
true - 表示真
false - 表示假
A = true
B = false
console.log(typeof A)
console.log(typeof B)
Null和Undefined
Null类型的值只有一个,就是null
null这个值专门来表示一个为空的对象
a = null
console.log(a)
console.log(typeof a)
Undefined(未定义)类型的值只有一个,就undefined
当声明一个变量,但是并未给变量赋值时,它的值就是undefined
var b
console.log(b)
类型转换
指将一个数据类型强制转换为其他的数据类型
类型转换主要指,将其他的数据类型,转换为String、Number、Boolean
将其他数据类型转换为String
方法一
调用被转换数据类型的toString()方法
该方法不会影响原值
// 数值123
var a = 123
console.log(a)
console.log(typeof a)
// 方法一:调用被转换数据类型的toString()方法
// 该方法不会影响原值
b = a.toString()
console.log(b)
console.log(typeof b)
注意:null和undefined值不能tostring方法,会报错
方法二
调用Strinng()函数,并将被转换的数据作为参数传递给函数
使用String()函数做强制类型转换时,
对于Number和Boolean实际上就是调用的toString()方法
但是对于Null和undefined,就不会调用toString()方法
// 数值123
var a = 123
console.log(a)
console.log(typeof a)
// 方法二:调用String()函数,并将被转换的数据作为参数传递给函数
a = String(a)
console.log(a)
console.log(typeof a)
转换为Number
将其他的数据类型转换为Number
方法一
使用Number()函数
var a = '123'
console.log(a)
console.log(typeof a)
a = Number(a)
console.log(a)
console.log(typeof a)
字符串转数字
‘数字’ → 数字
‘非数字’ → NaN
’ ’ → 0
布尔转数字
true → 1
false → 0
方法二
这种方法专门用来对付字符串
parseInt()
parseFloat()
var a = '124G'
console.log(a)
console.log(typeof a)
a = parseInt(a)
console.log(a)
console.log(typeof a)
其他进制位的数字
16进制
// 数字123
var a = 123;
// 在js中,如果需要表示16进制的数字,则需要以0x开头
a = 0x123
console.log(a) // 291
8进制数字
// 数字123
var a = 123;
// 在js中,如果需要表示16进制的数字,则需要以0x开头
a = 0123
console.log(a) // 83
2进制
// 数字123
var a = 123;
// 在js中,如果需要表示16进制的数字,则需要以0x开头
a = 0b123
console.log(a)
注意不是所有的浏览器都能用2进制打开
另一种情况:
// 数字123
var a = '070'
// 有些浏览器会当作8进制解析,有些会当成10进制解析
a = parseInt(a,10) // 以10进制转换
console.log(typeof a)
console.log(a)
转换为boolean
// 数字123
var a = 123
console.log(typeof a)
console.log(a)
// 调用Boolean
a = Boolean(a)
console.log(typeof a)
console.log(a)
数字 → boolean
除了0和NaN,其余都是true
字符串 → 布尔
除了空串,其余都是true
null和undefined → 布尔
都为false
对象 → 布尔
都为true