JS中的原始数据类型
- number:数字类型(整数和小数)
- string:字符串类型(一般用单引号或者双引号括起来的)
- boolean:布尔类型(值只有两个:true,false)
- null:空类型(值只有一个,即null)
- undefined:未定义(值只有一个,即undefined)
- object:对象类型
- symbol:表示独一无二的值(ES6新增)
number类型
数字类型,包含整数和小数。
JS中所有的数字都是以64位浮点数储存的,因为浮点数不是精确的值,所以不要用小数去验证小数,也不要进行小数的相加,可能出现错误。即存在0.1+0.2==0.3//false
。
NaN也是属于数字类型,是一种特殊的数字类型。即不是数字。也不要用NaN去验证NaN,得到的结果也是false。NaN===NaN//false
。可以使用isNaN去验证值或者是变量是不是数字,不是数字返回true,是数字则返回false。
当想要表示不同进制时:
- 二进制:以
0b
或者0B
开头 - 八进制:以
0
开头 - 十进制:以平常数0-9表示
- 十六进制:以
0x
或者0X
开头
string类型
字符串类型,一般用单引号或者双引号括起来的。
获取字符串的长度:
var a='string'
a.length //6
JS中也有转义符,常用反斜杠,即\
。常用的有:\n
(换行)、\t
(tab键)、\'
(单引号)、\"
(双引号)、\\
(反斜杠)。
字符串的拼接:使用“+”号,可以将多个字符串拼接起来,其中只要有一个是字符串,其他的为数字,结果也是拼接,不是相加(原因:存在隐式转换)。
123+'nihao'
//'123nihao'
注意:除了“+”号,其它符号不行。
3 - '2'
//1
实现多行字符串(不是字符串里有回车):
var s='12345\
67890' //'1234567890'
//或者
var s1='12345'+
'67890' //1234567890
//或者
var s2=`12345
67890` //1234567890(反引号且s2.length=11)
其中第一种方法第一行不能有空格。
boolean类型
布尔类型,只有两个值true(1)和false(0)。
真值表:
a&&b(逻辑与、且运算)
b\a | true | false |
---|---|---|
true | true | false |
false | false | false |
a||b(逻辑或、或运算)
b\a | true | false |
---|---|---|
true | true | true |
false | true | false |
null类型
表示空,只有一个值null。
undefined类型
表示未定义,只有一个值undefined。
null和undefined都表示没有,其中有一些细小的差别。
1 定义了变量,但是没有值——undefined
2 有一个对象,但是现在没有给值——null
有一个非对象,但是没有给值——undefined
函数在没有明确返回值时,如果接收了,结果也是undefined。
如果一个变量的结果是undefined和一个数字进行计算,得到的结果是NaN,也没有意义。
object类型
表示对象,就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。哈希表形式。
var a = {
name:'frank',
age:18,
children:'null'
}
key必须为字符串形式,引号可以省略。但是根据标识符规则:1.首字母不能使数字、2.中间不能有空格、3.后边必须是合法字符。
{9a:'tom'}//错误形式
{'9a':'tom'}//正确形式
调用时,有两种方法:点方法和方括号法。
a['name']//正确
当key的命名符合标识符规则时,可以改写为点方法。
a.name//正确,特例
可以对对象中的key进行删除。
delete a['name']
a.name //undefinedd (无value)
'name' in a //false (无key)
当使用:
a['name']=undefined
'name' in a //true
此时,只是更改'name'
属性的value值为undefined
,所以所以key还在。
遍历对象(for....in...)
for (var key in a) //此时打印出key的值
如果需要打印出value的值
console.log(a[key])//正确方法
//错误方法示范
console.log(a.key)
//此时a.key===a['key'],
//而a中没有'key'这个属性
typeof运算符
可以得到一个值是什么类型。
number | string | boolean | symbol | undefined | object |
---|---|---|---|---|---|
'number' | 'string' | 'boolean' | 'symbol' | 'undefined' | 'object' |
其中:
typeof null //'object'
typeof fn //'function'
网友评论