js
數據類型
- Number,javascript不區(qū)分整數和浮點數;
注意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();倆中方法創(chuàng)建數組。 - 對象
- 變量
- 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()將數組中的元素按指定的連接符號連接成字符串,不是字符串的元素強制轉換為字符串。
對象
- 當屬性名含有特殊符號或空格時需要用' '引起來;
- .訪問法和[]訪問法(變量)
循環(huán)
- 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可以使用下標循環(huán),而Set和Map沒有下標,所以es6引入iterable類型,array、Map、Set都屬于iterable類型。
該類型可以使用for-of來循環(huán)。
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只循環(huán)集合本身的元素。
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);
});