JS里的数据类型

Javascript的数据类型

简介:JavaScript 语言的每一个值,都属于某一种数据类型。JavaScript 的数据类型,共有六种。(ES6 又新增了第七种 Symbol 类型的值)

★★★JS共有7种数据类型!

1.数值(number):整数和小数(比如1和3.14)

2.字符串(string)

3.布尔值(boolean):表示真伪的两个特殊值,即true(真)和false(假)

4.undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值

5.null:表示空值,即此处的值为空。

6.对象(object):各种值组成的集合

7.Symbol


如何确认数据类型

JavaScript 有三种方法,可以确定一个值到底是什么类型

1.typeof运算符

typeof运算符可以返回一个值的数据类型。

数值、字符串、布尔值分别返回number、string、boolean。
函数返回function。但是function不是数据类型!
undefined返回undefined。
对象返回object。
null返回object,由于历史原因造成的。


2.instanceof运算符

以后再补充

3.Object.prototype.toString方法

以后再补充


浅析数据类型

1.null和undefined

null 表示空值,即该处的值现在为空。
undefined 表示“未定义”


2.布尔值

布尔值代表“真”和“假”两个状态。“真”用关键字true表示,“假”用关键字false表示。布尔值只有这两个值。


下列运算符会返回布尔值:

前置逻辑运算符: ! (Not)
相等运算符:===,!==,==,!=
比较运算符:>,>=,<,<=


如果JavaScript预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了下面六个值被转为false,其他值都视为true。

undefined
null
false
0
NaN
“”或’’(空字符串)


★★★注意:空数组([])和空对象({})对应的布尔值,都是true。


3.数值(整数与浮点数)

JavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以,1与1.0是相同的,是同一个数。

由于浮点数不是精确的值,所以涉及小数的比较和运算要特别小心。

1
2
0.1 +  0.2
//0.30000000000000004


数值的表示法

数值也可以采用科学计数法表示

1
2
3
4
123e3 // 123000
123e-3 // 0.123
-3.1E+12
.1e-23


数值的进制

十进制:没有前导0的数值。
八进制:有前缀0o或0O的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。
十六进制:有前缀0x或0X的数值。
二进制:有前缀0b或0B的数值。


特殊数值

正零和负零,它们是等价的。
NaN表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。


Infinity

Infinity表示“无穷”,Infinity有正负之分,Infinity表示正的无穷,-Infinity表示负的无穷。


与数值相关的全局方法

parseInt用于将字符串转为整数。
parseFloat用于将一个字符串转为浮点数。


4.字符串

字符串就是零个或多个排在一起的字符,放在单引号或双引号之中。


空字符串

‘’


空格字符串

‘ ‘


多行字符串

有多种写法,如行末加\,引号用反引号`代替
推荐用+号连接

1
2
3
4
var s = '123456' +
'7890'
console.log(s)
//1234567890


转义

\0 :null(\u0000)
\b :后退键(\u0008)
\f :换页符(\u000C)
\n :换行符(\u000A)
\r :回车键(\u000D)
\t :制表符(\u0009)
\v :垂直制表符(\u000B)
\’ :单引号(\u0027)
\” :双引号(\u0022)
\\ :反斜杠(\u005C)


5.对象

简单说,对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。

1
2
3
4
5
6
7
8
var obj = {
1: 'a',
3.2: 'b',
1e2: true,
1e-2: true,
.234: true,
0xFF: true
};

对象的所有键名都是字符串(ES6 又引入了 Symbol 值也可以作为键名),所以加不加引号都可以。
如果键名是数字,实际上都被自动转成了字符串。
对象的属性之间用逗号分隔,最后一个属性后面可以加逗号,也可以不加。


属性的读取

读取对象的属性,有两种方法,一种是使用点运算符,还有一种是使用方括号运算符。
如果使用方括号运算符,键名必须放在引号里面,否则会被当作变量处理。
如果键名不符合标识名的条件,且也不是数字,则必须加上引号,否则会报错。
数值键名不能使用点运算符(因为会被当成小数点),只能使用方括号运算符。


属性的读取

Object.keys

1
2
3
4
5
6
7
var obj = {
key1: 1,
key2: 2
};

Object.keys(obj);
// ['key1', 'key2']


属性的删除

delete命令用于删除对象的属性,删除成功后返回true。

1
2
3
4
5
6
var obj = { p: 1 };
Object.keys(obj) // ["p"]

delete obj.p // true
obj.p // undefined
Object.keys(obj) // []


属性的遍历:for…in 循环

它遍历的是对象所有可遍历(enumerable)的属性,会跳过不可遍历的属性。
它不仅遍历对象自身的属性,还遍历继承的属性。

1
2
3
4
5
6
7
8
9
10
11
12
var obj = {a: 1, b: 2, c: 3};

for (var i in obj) {
console.log('键名:', i);
console.log('键值:', obj[i]);
}
// 键名: a
// 键值: 1
// 键名: b
// 键值: 2
// 键名: c
// 键值: 3


感谢您的阅读。 🙏 关于转载请看这里