1.通過串聯(lián)起來的點操作符或中括號操作符來訪問JSON對象的嵌套屬性
var ourStorage = {
"desk": {
"drawer": "stapler"
},
"cabinet": {
"top drawer": {
"folder1": "a file",
"folder2": "secrets"
},
"bottom drawer": "soda"
}
}
ourStorage.cabinet["top drawer"].folder2; // "secrets"
ourStorage.desk.drawer; // "stapler"
2.Math操作
1.Math.random() 生成一個隨機小數(shù)
2.用 Math.floor() 向下取整 獲得它最近的整數(shù)。
function myFunction() {
// 生成一個 0 到 9之間的隨機整數(shù)杂瘸。
return Math.floor(Math.random() * 10);
}
3.正則表達式
正則表達式被用來根據(jù)某種匹配模式來尋找strings中的某些單詞
1.舉例:如果我們想要找到字符串The dog chased the cat中單詞 the胎署,我們可以使用下面的正則表達式: /the/gi
/ 是這個正則表達式的頭部
the 是我們想要匹配的模式
/ 是這個正則表達式的尾部
g 代表著 global(全局)动遭,意味著返回所有的匹配而不僅僅是第一個芦圾。
i 代表著忽略大小寫眼耀,意思是當我們尋找匹配的字符串的時候忽略掉字母的大小寫。
var testString = "Ada Lovelace and Charles Babbage designed the first computer and the software that would have run on it.";
// 舉例
var expressionToGetSoftware = /software/gi;
var softwareCount = testString.match(expressionToGetSoftware).length;
//結果是獲取software單詞的個數(shù)
// Only change code below this line.
var expression = /and/gi; // Change this Line
// This code counts the matches of expression in testString
var andCount = testString.match(expression).length;
2.特殊選擇器中的一種就是數(shù)字選擇器\d碉哑,意思是被用來獲取一個字符串的數(shù)字食拜。
在JavaScript中, 數(shù)字選擇器類似于: /\d/g鸵熟。
在選擇器后面添加一個加號標記(+),例如:/\d+/g负甸,它允許這個正則表達式匹配一個或更多數(shù)字流强。
尾部的g是'global'的簡寫,意思是允許這個正則表達式 找到所有的匹配而不是僅僅找到第一個匹配
// Setup
var testString = "There are 3 cats but 4 dogs.";
// Only change code below this line.
var expression = /\d+/g; // Change this line
// Only change code above this line
// This code counts the matches of expression in testString
var digitCount = testString.match(expression).length;
3.我們也可以使用正則表達式選擇器 \s 來選擇一個字符串中的空白
\s 匹配任何空白字符呻待,\S 匹配任何非空白字符煮盼。。
空白字符有 " " (空格符)带污、\r (回車符)、\n (換行符)香到、\t (制表符) 和 \f (換頁符)鱼冀。
空白正則表達式類似于:
/\s+/g
// Setup
var testString = "How many spaces are there in this sentence?";
var expression = /\s+/g; // Change this line
// This code counts the matches of expression in testString
var spaceCount = testString.match(expression).length;
4.JS創(chuàng)建對象
1.創(chuàng)建對象
1
var car = {
"wheels":4,
"engines":1,
"seats":5
};
//構造函數(shù)創(chuàng)建
var Car = function() {
this.wheels = 4;
this.engines = 1;
this.seats = 1;
};
//構造函數(shù) 中添加 參數(shù)
//Try it out here
var Car = function(wheels,seats,engines){
this.wheels = wheels;
this.seats = seats;
this.engines = engines;
};
var myCar = new Car(6, 3, 1);
2.創(chuàng)建私有對象,只可以通過getSpeed方法訪問該對象
var Car = function() {
// 創(chuàng)建一個私有對象
var speed = 10;
// public方法
this.accelerate = function(change) {
speed += change;
};
this.decelerate = function() {
speed -= 5;
};
this.getSpeed = function() {
return speed;
};
};
5.數(shù)組操作的方法
1.map方法:map 方法會迭代數(shù)組中的每一個元素,并根據(jù)回調(diào)函數(shù)來處理每一個元素悠就,最后返回一個新數(shù)組千绪。注意,這個方法不會改變原始數(shù)組梗脾。
var oldArray = [1,2,3,4,5];
// 使用 map 方法來為 oldArray 中的每一項增加3荸型,
//并且在 newArray 中保存它們。 oldArray 不應該被改變
var newArray = oldArray.map(function(val){
return val + 3;
});
//
```
2.reduce方法:數(shù)組方法 reduce 用來迭代一個數(shù)組炸茧,并且把它累積到一個值中瑞妇。
使用 reduce 方法時,你要傳入一個回調(diào)函數(shù)梭冠,這個回調(diào)函數(shù)的參數(shù)是一個 累加器 (比如例子中的 previousVal) 和當前值 (currentVal)辕狰。
reduce 方法有一個可選的第二參數(shù),它可以被用來設置累加器的初始值控漠。如果沒有在這定義初始值蔓倍,那么初始值將變成數(shù)組中的第一項,而 currentVal 將從數(shù)組的第二項開始盐捷。
```
var array = [4,5,6,7,8];
var singleVal = 0;
// 遍歷數(shù)組相加
singleVal = array.reduce(function(previosVal,cur){
//結果等于30
return previosVal + cur;
});
//下面的例子使用了 reduce 來讓數(shù)組中的所有值相減:
var singleVal = array.reduce(function(previousVal, currentVal) {
return previousVal - currentVal;
}, 0);
```
3 . filter 方法用來迭代一個數(shù)組偶翅,并且按給出的條件過濾出符合的元素。
filter 方法傳入一個回調(diào)函數(shù)碉渡,這個回調(diào)函數(shù)會攜帶一個參數(shù)聚谁,參數(shù)為當前迭代的項(我們叫它 val )。
回調(diào)函數(shù)返回 true 的項會保留在數(shù)組中滞诺,返回 false 的項會被過濾出數(shù)組
```
//使用 filter 來創(chuàng)建一個新數(shù)組垦巴,新數(shù)組的值是 oldArray 中值小于6的元素媳搪。不改變原數(shù)組 oldArray
var oldArray = [1,2,3,4,5,6,7,8,9,10];
// 只能在這一行下面寫代碼
var newArray = oldArray.filter(function(val){
return val <6;
});
```
4.使用 sort 方法,你可以很容易的按字母順序或數(shù)字順序?qū)?shù)組中的元素進行排序骤宣。
與我們之前用的數(shù)組方法僅僅返回一個新數(shù)組不同秦爆, sort 方法將改變原數(shù)組,返回被排序后的數(shù)組憔披。
sort 可以把比較函數(shù)作為參數(shù)傳入等限。比較函數(shù)有返回值,當 a 小于 b芬膝,返回一個負數(shù)望门;當 a 大于 b ,返回一個正數(shù)锰霜;相等時返回0筹误。
```
//下面的例子將展示 sort 的使用,傳入的比較函數(shù)把元素按照從小到大的順序進行排列:
var array = [1, 12, 21, 2];
array.sort(function(a, b) {
return a - b;
});
```
5.你可以使用 reverse 方法來翻轉數(shù)組癣缅。
var myArray = [1, 2, 3];
myArray.reverse();
6.concat 方法可以用來把兩個數(shù)組的內(nèi)容合并到一個數(shù)組中厨剪。
```
下面是一個拼接數(shù)組的例子,用concat 把 otherArray 拼接在 oldArray 的后面:
newArray = oldArray.concat(otherArray);
```