JS開發(fā)筆記(一)

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);
```
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末友存,一起剝皮案震驚了整個濱河市祷膳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌屡立,老刑警劉巖直晨,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異膨俐,居然都是意外死亡勇皇,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門焚刺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來儒士,“玉大人,你說我怎么就攤上這事檩坚∽帕茫” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵匾委,是天一觀的道長拖叙。 經(jīng)常有香客問我,道長赂乐,這世上最難降的妖魔是什么薯鳍? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上挖滤,老公的妹妹穿的比我還像新娘崩溪。我一直安慰自己,他們只是感情好斩松,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布伶唯。 她就那樣靜靜地躺著,像睡著了一般惧盹。 火紅的嫁衣襯著肌膚如雪乳幸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天钧椰,我揣著相機與錄音粹断,去河邊找鬼。 笑死嫡霞,一個胖子當著我的面吹牛瓶埋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播诊沪,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼养筒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了娄徊?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤盾戴,失蹤者是張志新(化名)和其女友劉穎寄锐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尖啡,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡橄仆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了衅斩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盆顾。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖畏梆,靈堂內(nèi)的尸體忽然破棺而出您宪,到底是詐尸還是另有隱情,我是刑警寧澤奠涌,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布宪巨,位于F島的核電站,受9級特大地震影響溜畅,放射性物質(zhì)發(fā)生泄漏捏卓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一慈格、第九天 我趴在偏房一處隱蔽的房頂上張望怠晴。 院中可真熱鬧遥金,春花似錦、人聲如沸蒜田。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽物邑。三九已至溜哮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間色解,已是汗流浹背茂嗓。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留科阎,地道東北人述吸。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像锣笨,于是被迫代替她去往敵國和親蝌矛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,237評論 0 4
  • 三错英,字符串擴展 3.1 Unicode表示法 ES6 做出了改進入撒,只要將碼點放入大括號,就能正確解讀該字符椭岩。有了這...
    eastbaby閱讀 1,537評論 0 8
  • 初衷:看了很多視頻茅逮、文章,最后卻通通忘記了判哥,別人的知識依舊是別人的献雅,自己卻什么都沒獲得。此系列文章旨在加深自己的印...
    DCbryant閱讀 4,014評論 0 20
  • 這個夏天 風神雷神度假去了 只有雨神留下來值班 于是雨一直下個沒完 無風亦無雷 若要問蒼天 此雨何時歇 要待風雷度...
    一元真人閱讀 177評論 2 8
  • 秋雨塌计, 寒意挺身。 發(fā)現(xiàn)自己患了很嚴重的失憶,片段記憶會消失锌仅,說不定在之后的某個時段再回憶出來章钾。本來我就試圖欺騙自己去...
    迷途不知返Stacey閱讀 112評論 0 0