数据类型
计算机顾名思义就是可以做数学计算的机器,计算机程序可以处理各种数值。计算机能处理的不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,
不同的数据,需要定义不同的数据类型。
1.Number
不区分整数和浮点数,统一用Number表示
Number可以直接做四则运算,规则和数学一致
2.字符串
字符串是以单引号’或双引号"括起来的任意文本
''或""本身只是一种表示方式
3.布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有true、false两种值
&&运算是与运算,只有所有都为true,&&运算结果才为true;
||运算是或运算,只要其中有一个为true,||运算结果就是true;
!运算是非运算,它是一个单目运算符,把true变成false,false变成true;
! true; // 结果为false
! false; // 结果为true
! (2 > 5); // 结果为true
4.比较运算符
当我们对Number做比较时,可以通过比较运算符得到一个布尔值
2 > 5; // false
5 >= 2; // true
7 == 7; // true
特别注意:
- 相等运算符==。JavaScript在设计时,有两种比较运算符:
**=比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。
由于JavaScript这个设计缺陷,不要使用**比较,始终坚持使用===比较。 - NaN这个特殊的Number与所有其他值都不相等,包括它自己
isNaN(NaN); // true
- 注意浮点数的相等比较:
浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值:
Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true
5.null和undefined
null表示一个“空”的值,它和0以及**空字符串’’**不同,0是一个数值,’ '表示长度为0的字符串,而null表示“空”。
undefined表示值未定义,undefined仅仅在判断函数参数是否传递的情况下有用。
6.数组
数组是一组按顺序排列的集合,集合的每个值称为元素。
[1, 2, 3.14, 'Hello', null, true];
var arr = [1, 2, 3.14, 'Hello', null, true];
arr[0]; // 返回索引为0的元素,即1
arr[5]; // 返回索引为5的元素,即true
arr[6]; // 索引超出了范围,返回undefined
7.对象
JavaScript的对象是一组由键-值组成的无序集合
var person = {
name: 'Bob',
age: 20,
tags: ['js', 'web', 'mobile'],
city: 'Beijing',
hasCar: true,
zipcode: null
};
person.name; // 'Bob'
person.zipcode; // null
8.变量
变量不仅可以是数字,还可以是任意数据类型。
变量在JavaScript中就是用一个变量名表示,变量名是大小写英文、数字、$和_的组合,且不能用数字开头。变量名也不能是JavaScript的关键字,如if、while等。申明一个变量用var语句
var a;
在JavaScript中,使用等号**=对变量进行赋值。可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,但是要注意只能用var**申明一次
var a = 123; // a的值是整数123
a = 'ABC'; // a变为字符串
这种变量本身类型不固定的语言称之为动态语言 var定义的,与之对应的是静态语言,如int a=10,之类的。
使用**console.log()代替alert()**的好处是可以避免弹出烦人的对话框。