js
数据类型
- Number,javascript不区分整数和浮点数;
注意NAN(not a number)和Infinity(无穷数)
NaN===NaN //false;NAN与所有其他值都不相等。
唯一判断NaN的方法是:isNaN(NaN);//true
1/3===(1-2/3)//false;无限小数只能通过判断阙值来判断。 - 字符串,引号不是字符串的一部分,只是一种表示方式
- 布尔值,只有true和false俩个值。
- null和undefined
- 数组
[],new Array();俩中方法创建数组。 - 对象
- 变量
- strict模式
字符串
- 字符串转义\
- 多行字符串:es6中用
.........
来表示。 - 模板字符串:连接多个变量和字符串可以表示为:
`你好,${name},你今年${year}了`;
- 操作字符串
toUpperCase ,toLowerCase , indexOf(搜索指定字符串出现的位置) , substring(start,end)
以上方法不会改变原字符串
split()按指定的字符将字符串分割为数组。
数组
1.javascript中的array包含多种数据类型的元素。
array.length获取数组长度,当直接给array.length赋值会更改array的大小。
array可以直接通过索引来修改对应元素的值。
索引赋值超过数组长度,会更改数组长度。
2.操作数组方法
- indexOf()搜索指定元素的索引。
- slice(start,end)截取指定范围的数组元素。不包含结束索引,只包含开始索引。不指定slice参数,则默认从头到尾截取。
- push,pop分别表示向数组末尾添加元素和删除元素。
- unshift,shift分别表示向数组头插入第一个元素和删除第一个元素。
- sort排序,更改原数组。默认按照unicode排序,需指定回调函数。
- reverse倒序数组,更改原数组。
- splice增,删,改数组。
- concat连接俩个数组。不修改原数组。
- join()将数组中的元素按指定的连接符号连接成字符串,不是字符串的元素强制转换为字符串。
对象
- 当属性名含有特殊符号或空格时需要用' '引起来;
- .访问法和[]访问法(变量)
循环
- for
- for in
for (var key in o) {
console.log(key); // 'name', 'age', 'city'
}
由于array也是对象当用for in对数组遍历会把索引当成属性输出索引,而得到的是字符串索引,并不是number。
for (var i in a) {
console.log(i); // '0', '1', '2'
console.log(a[i]); // 'A', 'B', 'C'
}
- while do-while
Map和Set(es6新增的数据类型)
javaScript的默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构,即一组键值对。但是对象的属性即键必须是数组所以引入map和set
- Map:初始化一个空map或者需要一个二维数组。
var map=new Map();
- map.set();添加新的key-value值
- map.has();是否存在键
- map.get();获取对应键的值
- map.delete();删除键
- Set(一组key集合,不存储value值)
:初始化一个空Set或者需啊要一个数组。
var set=new Set();
- set.add();添加一个键,可重复添加不过没有效果。
- set.delete();删除一个键。
iterable
由于array可以使用下标循环,而Set和Map没有下标,所以es6引入iterable类型,array、Map、Set都属于iterable类型。
该类型可以使用for-of来循环。
var a = ['A', 'B', 'C'];
var s = new Set(['A', 'B', 'C']);
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
for (var x of a) { // 遍历Array
console.log(x);
}
for (var x of s) { // 遍历Set
console.log(x);
}
for (var x of m) { // 遍历Map
console.log(x[0] + '=' + x[1]);
}
for-in把name包括在内,而length不包括。
var a = ['A', 'B', 'C'];
a.name = 'Hello';
for (var x in a) {
console.log(x); // '0', '1', '2', 'name'
}
for-of只循环集合本身的元素。
var a = ['A', 'B', 'C'];
a.name = 'Hello';
for (var x of a) {
console.log(x); // '0', '1', '2',
}
**iterable内置forEach**
1. Set由于没有索引所以前俩格元素均代表元素本身。
```var s = new Set(['A', 'B', 'C']);
s.forEach(function (element, sameElement, set) {
console.log(element);
});
- Map的参数为value,key,map
m.forEach(function (value, key, map) {
console.log(value);
});
网友评论