数据类型
Number
JavaScript不区分整数和浮点数,都用Number表示,NaN表示不是数字,infinity表示无限大
四则运算中的取余用%
布尔值
和Python的差不多
&&
运算是与运算,只有所有都为true
,&&
运算结果才是true
:
true && true; // true
true && false; // false false && true && false; // false
||
运算是或运算,只要其中有一个为true
,||
运算结果就是true
:
false || false; // false
true || false; // true false || true || false; // true
!
运算是非运算,它是一个单目运算符,把true
变成false
,false
变成true
:
! true; // false
! false; // true ! (2 > 5); // true
JavaScript允许对任意数据类型做比较:
false == 0; // true
false === 0; // false
要特别注意相等运算符==
。JavaScript在设计时,有两种比较运算符:
第一种是==
比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;
第二种是===
比较,它不会自动转换数据类型,如果数据类型不一致,返回false
,如果一致,再比较。
由于JavaScript这个设计缺陷,不要使用==
比较,始终坚持使用===
比较。
NaN与任何值都不相等包括自己 唯一能判断的是isNaN函数通过isNaN(NaN)
同样跟Python一样因为计算机无法精确表示无限循环小数 所以浮点数也最好不要比较
null和undefined
null表示空与0和字符串‘’不一样,0是一个数值,''表示长度为0的字符串,而null
表示“空”,重点' '中间加一个空格能够被判断成True,而前面三个都是False。
undefined
表示值未定义 仅在判断函数参数是否传递的情况下有用
数组
数组是一组按顺序排列的集合,集合的每个值称为元素。JavaScript的数组可以包括任意数据类型
例如:
[1, 2, 3.14, 'Hello', null, true];
另一种创建数组的方法是通过Array()
函数实现:
new Array(1, 2, 3); // 创建了数组[1, 2, 3]
和Python的list一样用索引访问
对象
JavaScript的对象是一组由键-值组成的无序集合,例如:
var person = {
name: 'Bob',
age: 20,
tags: ['js', 'web', 'mobile'], city: 'Beijing', hasCar: true, zipcode: null };
JavaScript对象的键都是字符串类型,值可以是任意数据类型。上述对象每个键又称为对象的属性,例如,person
的name
属性为'Bob'
,zipcode
属性为null
。
要获取一个对象的属性,我们用对象变量.属性名
的方式:
person.name; // 'Bob'
person.zipcode; // null
变量
变量名是大小写英文、数字、$
和_
的组合,不能用数字开头,var表示声明变量
使用var声明的变量不是全局变量,它的范围被限制在该变量被申明的函数体内,同名变量在不同的函数体内互不冲突