数据类型
Number
JavaScript不区分整数和浮点数,统一用Number表示,以下都是合法的Number类型
123;//整数123
0.456;//fudianshu0.456
1.2345e3;//科学记数法表示1.2345x1000,等同于1234.5
-99;//负数
NaN;//NaN表示Not a Number;当无法就按结果时用NaN表示
Infinity;//Infinity表示无限大,当数值超过了
字符串
字符串是以单引号或双引号括起来的任意文本,’ '," ",本身只是一种表达方式,不是字符串的一部分。
布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有true、false两种值,也可以用true和false表示布尔值。
比较运算符
要特别注意相等运算符,在JavaScript设计师,有两种比较运算符。
- 第一种’=='比较,他会自动转换数据类型再比较。
- 第二种时’==='比较,他不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。
- 最后一个时NaN,这个特殊的Number与所有其他值都不想等,包括他自己
NaN === NaN;//false
唯一能判断NaN的方法时通过isNaN()函数:
isNaN(NaN);//true
数组
Array
JavaScript的Array可以包含任意数据类型,并通过索引来访问每个元素。
要取得Array的长度,直接访问length长度:
var arr = [1,2,3,4,null,'Hello'];
arr.length;// length --> 6
请注意,直接给Array的length赋一个新的值会导致Array大小的变化:
var arr = [1, 2, 3];
arr.length; // 3
arr.length = 6;
arr; // arr变为[1, 2, 3, undefined, undefined, undefined]
arr.length = 2;
arr; // arr变为[1, 2]
Array可以通过索引把对应的元素修改为新的值,因此,对Array的索引进行赋值会直接修改这个Array:
var arr = ['A', 'B', 'C'];
arr[1] = 99;
arr; // arr现在变为['A', 99, 'C']
indexOf
与string类似,Array也可以通过indexOf()来搜索一个指定的元素的位置。
var arr = [10,20,'30','xyz'];
arr.indexOf(10);//元素10的索引为0
arr.indexOf(20);//元素20的索引为1;
arr.indexOf(30);//元素30未找到,返回-1;
slice
slice()就是对应String的substring()版本,它截取Array的部分元素,然后返回一个新的Array:
var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
arr.slice(0,3);//从索引0开始,到索引3结束,但不包括索引3:['A', 'B', 'C'];
arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G']
push和pop
push()向Array的末尾添加若干元素,pop()则把Array的最后一个元素删除掉:
var arr = [1, 2];
arr.push('A', 'B'); // 返回Array新的长度: 4
arr; // [1, 2, 'A', 'B']
arr.pop(); // pop()返回'B'
arr; // [1, 2, 'A']
arr.pop(); arr.pop(); arr.pop(); // 连续pop 3次
arr; // []
arr.pop(); // 空数组继续pop不会报错,而是返回undefined
arr; // []
sort
sort()可以对当前Array进行排序,他会直接修改当前Array的元素位置,直接调用是,按照默认顺序排序:
var arr = ['B', 'C', 'A'];
arr.sort();
arr;//['B', 'C', 'A']
reverse
reverse()把整个Array的元素给掉个个,也就是反转:
var arr = ['one','two','three'];
arr.reveerse();
arr;//['three', 'two', 'one']
splice
splice()方法是修改Array的“万能方法”,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素:
var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle'];
// 从索引2开始删除3个元素,然后再添加两个元素:
arr.splice(2, 3, 'Google', 'Facebook'); // 返回删除的元素 ['Yahoo', 'AOL', 'Excite']
arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']
// 只删除,不添加:
arr.splice(2, 2); // ['Google', 'Facebook']
arr; // ['Microsoft', 'Apple', 'Oracle']
// 只添加,不删除:
arr.splice(2, 0, 'Google', 'Facebook'); // 返回[],因为没有删除任何元素
arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']
concat
concat()方法把当前的Array和另一个Array连接起来,并返回一个新的Array:
var arr = ['A', 'B', 'C'];
var added = arr.concat([1, 2, 3]);
added; // ['A', 'B', 'C', 1, 2, 3]
arr; // ['A', 'B', 'C']
join
join()方法它是把当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串“
var arr = ['A', 'B', 'C', 1, 2, 3];
arr.join('-'); // 'A-B-C-1-2-3'