1、typeof 数据类型检测
使用typeof运算符可以检测值或者变量的类型
typeof 6; // 'number'
typeof '你好'; //'string'
2、基本数据类型
数字类型、字符串类型、布尔类型、undefined类型、null
2.1 Number(数字)类型
简介
所有数字不分大小、整浮、正负,都是数字类型
2.1.1 小数中的0可以省略
.5; //0.5
typeof .5; // 'number'
2.1.2 NaN
简介
- NaN的值表示不是一个数字(Not-A-Number),但它是一个数字类型的值
typeof NaN; //'Number'
- 0除0的结果是NaN,在数学运算中,若结果不是数字的,其结果往往都是NaN
- NaN不自等
2.1.3 不同进制的数字
- 二进制数字以0b开头
0b10 // 2
- 八进制数以0开头
017 // 15
十六进制数字以0x开头
0xf // 15
2.1.4 科学计数法
较大数或较小数(绝对值较小)可以写成科学计数法
3e8 // 300000000
3e-4 // 0.0003
2.2 String(字符串)类型
字符串拼接
加号可以用来拼接多个字符串
'你好' + '啊' // 你好啊
字符串和变量的拼接
var year = 2022;
var str = '杭州亚运会' + year + '年召开';
斩断链接
length属性
字符串的length属性表示字符串的长度
'length属性'.length // 8
''.length // 0
空字符串
var str = '';
字符串常用方法
charAt() 得到指定位置字符
substring() 提取子串
substr() 提取子串
slice() 提取子串
toUpperCase() 将字符串变为大写
toLowerCase() 将字符串变为小写
indexOf() 检索字符串
substring方法
1. substring(a, b)方法的到从a到b结束(不包括b处)的子串
例:'abcdefg'.substring(0, 3); // 'abc'
2. substring(a, b)方法如果省略第二个参数,返回的子串会一直到字符串的结尾
例:'abcdefg'.substring(0); // 'abcdefg'
3. substring(a, b)中,a可以大于b,数字顺序将自动调整为小数在前
例:'abcdefg'.substring(0, 3); // 'abc'
'abcdefg'.substring(3, 0); // 'abc'
slice方法
1. slice(a, b)方法得到从a到b结束(不包括b处)的子串
例:'abcdefg'.slice(0, 3); // 'abc'
2. slice(a, b)的参数a可以是负数
例:'abcdefg'.slice(-4); // 'defg'
'abcdefg'.slice(-4, -1); // 'def'
3. slice(a, b)中,参数a必须小于参数b
substr方法(避免使用)
1. substr(a, b)中,将得到从a开始长度为b的子串
例:'abcdefg'.substr(0, 3); // 'abc'
2. substr(a, b)中,b可以省略,表示到字符串结尾
例:'abcdefg'.substr(0); // 'abcdefg'
3. substr(a, b) 中,a可以是负数,表示倒数位置
例:'abcdefg'.substr(-4); // 'defg'
'abcdefg'.substr(-4, 4); // 'defg'
indexOf()方法
- indexOf()方法返回某个指定的字符串值在字符串中首次出现的位置
- 如果要检索的字符串值没有出现,则该返回-1
'abcdefg'.indexOf('defg'); // 3
'abcdefg'.indexOf('h'); // -1
2.3 Boolean(布尔)类型
两个值,true、false
Number(true); // '1'
Number(false); // '0'
2.4 Undefined 类型
- 一个没有被赋值的变量的默认值是undefined
- undefined的类型和值都是它自己本身。
变量提升的情况
在变量声明提升时,变量的值也是undefined。
console.log(a); // undefined
console.log(typeof a); // undefined
var a = 10;
2.5 Null
- null表示“空”,它是“空对象”
- 当我们需要将对象销毁、数组销毁或者删除事件监听时,通常将它们设置为null。
typeof null; // 'object'
3、数据类型的转换
3.1 转字符串
- String()函数
- toString()方法
String(123); // '123'
(123).toString; // '123'
3.2 转数字
- Number()函数
- parseInt()函数
- parseFloat()函数
3.2.1 Number()函数
不是纯数字转为NaN
Number('123四'); \\ NaN
Number(''); \\ 0
Number(null); \\ 0
Number(undefined); \\ NaN
3.2.2 parseInt()函数
将字符串转为整数
- 自动截取掉第一个非数字字符后的所有字符
parseInt(123.4); // 123
- 字符串不是以数字开头,转为NaN
parseInt('滴答滴答1'); // NaN
3.2.3 parseFloat()函数
将字符串转为浮点数
- 将小数字符串转为数字小数
parseFloat(123.4); // 123.4
- 自动截取掉第一个非数字字符、非小数点后的所有字符
parseFloat(123.4五); // 123.4
- 字符串不是以数字开头,转为NaN
parseFloat('滴答滴答1'); // NaN
3.3 转布尔值
Boolean()函数
- 0 和 NaN 转为false,其他数字转为true
Boolean(NaN); // false
Boolean(0); // false
Boolean(Infinity); // true
Boolean(123); // true
- 空字符串变为false
Boolean(''); // false
Boolean('123'); // true
- undefined 和 null 都为false
Boolean(undefined); // false
Boolean(null); // false