1.介绍
Js中的基本类型有5种,分别在下文2~4点中介绍其定义、常用方法、特殊值等等。
资料来源:百度、慕课网前端20版
2.Number
Number是表示数字的类型。在Js中没有整浮、大小、正负之分。
2.1 科学计数法
3*10^8 => 3e8
3*10^-4 => 3e-4
2.2 不同进制
- 二进制 :0b => 0b10
- 八进制 :0 => 017
- 十六进制 :0x => 0xB5
2.3 特殊值
NaN是Number的一个特殊值,表示一个非数字的状态。它有一些特殊的属性:
typeof NaN =>Number
NaN == NaN =>false
0/0 => NaN
'3'-'a'=>NaN
即,使用typeof检测NaN会返回Number;NaN不等于自身,这也成为判断变量的值是否为NaN的一种方法;数学运算中,不符合规则的表达式结果为NaN;
可以使用isNaN(var)来判断某变量是否为NaN,但该方法只是将变量进行强制类型转换,如果该变量强制转换为Number的值为非数字,则判断为NaN。
isNaN(a) => Number(a) =>NaN?
isNaN('3') => 3
isNaN('3a') => NaN
isNaN('') => 0
......
类型转换部分有更详细的介绍。
3.String
是使用单引号或双引号包裹的一串字符,Js中最常用的数据类型之一。
3.1 拼接
使用’+'可以拼接两个字符串,一个字符串和其他类型。
'a'+3 =>'a3'
3.2 length属性
str.length可以获得该字符串的长度
3.3 常用方法
- charAt(index):查找字符串指定索引的字符并返回。如果超出字符串长度或索引为负时,返回空字符。
'abc'.charAt(1) => 'b'
'abc'.charAt(999) => ''
'abc'.charAt(-1) => ''
- toUpperCase()/toLowerCase():将字符串整体转成大写/小写,多用在字符串比较方面。
- indexOf([char,substr])/lastindexOf([char,substr]):查找字符串指定字符的索引并返回,但只返回第一次/最后第一次出现的位置,若不存在此字符则返回-1,若查找的为子串,则返回匹配的第一个字符的位置,若要查找的子串不存在,则返回-1。
'abc'.indexOf('b') => 1 (Number)
'abc'.indexOf('*') => -1
'abcdefg'.indexOf('def') => 3
'abcdefg'.indexOf('dcg') => -1
- substring()、substr()、slice()
- substring(indexStart,indexEnd):提取索引在[indexStart,indexEnd)范围内的子串。
- 特殊值:省略indexEnd;indexStart>indexEnd;
- substring(indexStart,indexEnd):提取索引在[indexStart,indexEnd)范围内的子串。
'something'.substring(2,4) => 'me'
012345678
987654321(-)
'something'.substring(4,2) => 解析成'something'.substring(2,4) => 'me'
'something'.substring(-2,4) => 解析成'something'.substring(0,4) => 'me'
'something'.substring(2) => 解析成'something'.substring(2,self.length) => 'mething'
(也就是说indexStart和indexEnd可以互换位置且正负没有要求)
-
- substr(indexStart,length):提取索引为[indexStart,indexStart+length+1)范围内的子串。
-
-
- 特殊值:省略length,length大于sub.length;length为负;indexStart为负;
-
'something'.substr(2,4) => 'meth'
'something'.substr(2) => 解析成'something'.substr(2,self.length-indexStart+1) => 'mething'
'something'.substr(2,-1) => ''
'something'.substr(-4,2) => 'hi'
-
- slice(indexStart,indexEnd):同substring,但两个参数不能交换位置。如果无论是正索引还是负索引都无法切割出子串,则返回空字符
'something'.slice(-4,-8) => ''
4.Boolean、Undefined、Null
4.1 Boolean
布尔值 ,表示真(true)/假(false)的值
4.2 Undefined
如果声明了一个变量却没有对其初始化,这是变量的默认值。
4.3 Null
空对象,多用在销毁对象,删除事件监听等
typeof null => object