数据类型
基本数据类型包括了:
number、string、boolean、undefined、null
一、 如何查看数据类型
使用
typeof关键字查看数据类型
typeof(name);
// 括号可以省略
typeof name;
1、Number 类型
进制
- 十进制,我们平时使用的就是十进制,进行运算时,八进制和十六进制的值最终都会转换成十进制。
- 二进制,计算机当中用的最多的计算方式,数值序列只有
0和1 - 八进制,
0开头的数值,数值序列:0-7 - 十六进制,
0x开头的数值,数值序列:0-9、A-F、a-f
浮点数
所谓浮点数,就是该数当中必须包含一个小数点,并且小数点后面至少有一位数字。
科学计数法:
//如何表示0.003和20000?
let num = 3e-3; // 0.003
let num2 = 2e+4; // 20000
浮点数的精度问题:
0.1 + 0.2 = ? // 0.30000000000000004
0.07 * 100 = ? // 7.000000000000001
浮点数在运算的时候会出现精度丢失的问题,因此在做比较运算的时候,尽量不要用小数进行比较。
数值范围
javascript不能表示世界上所有的数,因此在javascript中,数值大小是有一定限制的。
Number.MIN_VALUE:5e-324 (js里面能表示最小的数)Number.MAX_VALUE:1.7976931348623157e+308 (js里面能表示最大的数)Infinity:正无穷 (如果超出js里面最大的数,将会显示infinity)-Infinity:负无穷 (如果超出js里面最小的数,将会显示-infinity)
数值判断
NaN: 表示一个非数值,当无法运算或者运算错误的时候,会得到一个NaN,NaN是number类型,表示一个非数值。NaN与任何值都不想等,包括它本身isNaN: 用来判断是否是一个数字,当返回true的时候说明是NaN,表示的不是一个数字,返回false,说明不是NaN,表示的是一个数字。
示例代码:
let str = "abc";
console.log(isNaN(str)); // true 说明不是一个数字
2、String 类型
字面量
字符串的字面量:
"abc"、'abc'字符串可以是双引号,也可以是单引号引起来。
不管是双引号,还是单引号,都是成对出现的,假如打印的字符串里有引号怎么办呢?
这里就要活学活用,如果只有一处有引号,就可以用单双引号混合使用:
console.log('我是"帅哥"'); // ==> 我是"帅哥"
假如引号非常多的时候怎么办呢? 用转义字符:“\”:
console.log("我是'帅哥',\"哈哈哈\""); // ==> 我是'帅哥',"哈哈哈"
字符串拼接
拼接字符串使用
+号
示例代码:
console.log(11 + 11); // 22
console.log("hello" + " world"); // "hello world"
console.log("100" + "100"); // "100100"
console.log("11" + 11); // "1111"
总结:
- 两边只要有一个是字符串,那么
+就是字符串拼接功能 - 两边如果都是数字,那么就是算术功能。
字符串长度
length属性用来获取字符串的长度
let str = "abcdefghij";
str.length;// 字符串的长度 10
3、boolean 类型
boolean类型只有两个字面量,true和false,区分大小写(True,False不是布尔类型,只是标识符)。
所有类型的值都可以转化成true或者false
NaN、""、undefined、null、alse、0 这6个值可以转换成false,其余的都是true。
4、undefined类型与null类型
undefined表示一个声明了没有赋值的变量
let name ;
console.log(name); // undefined
null表示一个空的对象
let name = null;
console.log(typeof name); // Object
如果定义的变量,将来是准备用于保存对象的话,最好将变量初始化为null
let name = null;
undefined 与 null 的关系
undefined == null; // true
undefined === null; // false
实际上,undefiner值是派生自null值的,所以判断相等时为true,但是两种用途是完全不一样的。