關于常見數(shù)據(jù)結(jié)構:
number
string
boolean
null
undefined
需要說明的:
在number 中特殊的 NaN (Not a number)非數(shù)
返回NaN的運算有如下三種:
至少有一個參數(shù)是NaN的運算
下列乘法運算:0×∞、0×?∞
下列加法運算:∞ + (?∞)涣易、(?∞) + ∞
下列減法運算:∞ - ∞良哲、(?∞) - (?∞)
產(chǎn)生復數(shù)結(jié)果的實數(shù)運算锹引。例如:
對負數(shù)進行開偶次方的運算
對負數(shù)進行對數(shù)運算
在JavaScript中關于有一個比較有意思的現(xiàn)象:
NaN==NaN;//false
isNaN(NaN);//true
關于string
個人覺得在js中本質(zhì)上是無法修改string 的值的矗钟。
只能創(chuàng)建一個新的string。指向新的string嫌变。
舉個例子:
var s = "Test";
s[0] = "X";
console.log(s);//Test
JavaScript array常用操作:
var arr = [1,2,3];
操作 | 作用 | 示例 | 返回結(jié)果 |
---|---|---|---|
pop() | 列尾出棧 | arr.pop() | 出棧元素 |
push() | 列尾進棧 | arr.push(1,2) | |
shift() | 列首出列 | arr.shift() | 出列元素 |
unshift() | 列首進棧 | arr.unshift(1,2) | |
reverse() | 逆序 | arr.reverse() | |
arr.splice(2, 3, "Google", "Oracle"); |
指定的索引(2)開始刪除若干元素吨艇,然后再從該位置添加若干元素"Google","Oracle" | arr.splice(2, 3, "Google", "Oracle"); |
被刪除的元素 |
arr.splice(2, 1); |
只刪除不添加 | arr.splice(2, 1); |
被刪除的元素 |
arr.splice(2, 0, 'Google', 'Facebook'); |
只添加不刪除 | arr.splice(2, 0, 'Google', 'Facebook'); |
被刪除的元素 |
arr.concat() |
拼接兩個字符串 | var added = arr.concat([1, 2, 3]); |
拼接的新串 |
var x = {
x: 1,
y: 2,
z: 3
};
x.a = "readme first";
for (a in x) {
console.log(a);
}//遍歷索引
var m = new Map([
['Michael', 95],
['Bob', 75],
['Tracy', 85]
]);
m.get('Michael'); // 95
var m = new Map(); // 空Map
m.set('Adam', 67); // 添加新的key-value
m.set('Bob', 59);
m.has('Adam'); // 是否存在key 'Adam': true
m.get('Adam'); // 67
m.delete('Adam'); // 刪除key 'Adam'
m.get('Adam'); // undefined
var a = ['A', 'B', "C"];
a.name = 'Hello';
for (var x of a) {
console.log(x);
}
//輸出 A B C hello
關于forEach
var a = ['A', 'B', 'C'];
a.forEach(function(element, index, array) {
// element: 指向當前元素的值
// index: 指向當前索引
// array: 指向Array對象本身
console.log(element + ', index = ' + index);
});
var s1 = new Set(["A", "B", "C"]);
s1.forEach(function(element, sameElement, set) {
console.log(element);
})
var m = new Map([
[1, 'x'],
[2, 'y'],
[3, 'z']
]);
m.forEach(function(value, key, map) {
console.log("key:" + key + "\r\n value " + value);
});
關于arguments
//arguments
//JavaScript還有一個免費贈送的關鍵字arguments,
//它只在函數(shù)內(nèi)部起作用腾啥,并且永遠指向當前函數(shù)的調(diào)用者傳入的所有參數(shù)东涡。
//arguments類似Array但它不是一個Array。
function foo(x) {
console.log("x =" + x);
for (var i = 0; i < arguments.length; i++) {
console.log("arg" + i + " = " + arguments[i]);
}
}
function area_of_circle(r, pi) {
if (arguments.length == 1) {
pi = 3.14;
return r * r * pi;
} else {
return pi * r * r;
}
}