關於JavaScript語法的小筆記


1、pop() 函數用來移出數組中最后一個元素;shift() 函數移出數組中的第一項,unshift(移入)一個元素到數組的頭部。

   例如:

var myArray = [["John", 23], ["dog", 3]];
var a=myArray.pop();  //var myArray = [ ["John", 23] ]; 移出最后一個
var a=myArray.shift();  //var myArray = [ ["dog", 3] ]; 移出第一個
var c=myArray.unshift(["ccc",1]);  //var myArray =[["ccc",1],["John", 23], ["dog", 3]]; 數組["ccc",1]插入了頭部,成為了第一個

 

2、所有的比較操作符返回的都是一個boolean值,要么是 true 要么是false 。使用 if/else語句來做比較然后返回truefalse已經成為大家的共識:

例如:

function isEqual(a,b) {
  if (a === b) {
    return true;
  } else {
    return false;
  }
}

可以簡化成:

function isEqual(a,b) {
  return a === b;
}

 

3、有兩種方式訪問對象屬性,一個是點操作符(.),一個是中括號操作符([])。當你知道屬性的名稱的時候,使用點操作符。

    1)點操作符(.)

例如:

var myObj = {
  prop1: "val1",
  prop2: "val2"
};
var prop1val = myObj.prop1; // val1
var prop2val = myObj.prop2; // val2

//

var testObj = {
  "hat": "ballcap",
  "shirt": "jersey",
  "shoes": "cleats"
};
var hatValue = testObj.hat;      // ballcap 點操作符
var shirtValue = testObj.shirt;    // jersey 點操作符

  2)中括號操作符([]):如果你想訪問的屬性的名稱有一個空格,這時你只能使用中括號操作符([])。

var myObj = {
  "Space Name": "Kirk",
  "More Space": "Spock"
};
myObj["Space Name"]; // Kirk
myObj['More Space']; // Spock

//提示:屬性名稱中如果有空格,必須把屬性名稱用單引號或雙引號包裹起來。

 注意:

1)當你創建了一個對象后,你可以用點操作符或中括號操作符來更新對象的屬性。

// 舉例
var ourDog = {
  "name": "Camper",
  "legs": 4,
  "tails": 1,
  "friends": ["everything!"]
};

讓我們更改它的名稱為 "Happy Camper",這有兩種方式來更新對象的name屬性:

var ourDog = {
  "name": "Camper",
  "legs": 4,
  "tails": 1,
  "friends": ["everything!"]
};

ourDog.name = "Happy Camper"; //點操作符
ourDog["name"]= "Happy Camper"; //中括號操作符

 

2)也可以像更改屬性一樣給對象添加屬性。

// 舉例
var ourDog = {
  "name": "Camper",
  "legs": 4,
  "tails": 1,
  "friends": ["everything!"]
};

   給myDog添加一個"bark" 屬性,設置它的值為狗的聲音,例如:"bow-wow"。

var ourDog = {
  "name": "Camper",
  "legs": 4,
  "tails": 1,
  "friends": ["everything!"]
};

ourDog.bark = "bow-wow"; //點操作符
ourDog["bark"]= "bow-wow"; //中括號操作符

 

3)刪除對象的屬性 (刪除ourDog對象的"tails"屬性。)

// 舉例
var ourDog = {
  "name": "Camper",
  "legs": 4,
  "tails": 1,
  "friends": ["everything!"],
  "bark": "bow-wow"
};

delete ourDog.bark; //點操作符

 

4)中括號操作符的另一個使用方式是用變量來訪問一個屬性。當你需要遍歷對象的屬性列表或查表時,這種方式極為有用。

使用變量來訪問屬性的例子:

var someProp = "propName";
var myObj = {
  propName: "Some Value"
}
myObj[someProp]; // "Some Value"

以及:

var myDog = "Hunter";
var dogs = {
  Fido: "Mutt",
  Hunter: "Doberman",
  Snoopie: "Beagle"
}
var breed = dogs[myDog]; // "Hunter"
console.log(breed)// "Doberman"

提示:當我們通過變量名訪問屬性的時候,不需要給變量名包裹引號。因為實際上我們使用的是變量的值,而不是變量的名稱。

 

 

4、檢查一個對象屬性是否存在是非常有用的,我們可以用.hasOwnProperty(propname)方法來檢查對象是否有該屬性。如果有返回true,反之返回 false

//舉例1
var myObj = {
  top: "hat",
  bottom: "pants"
};
myObj.hasOwnProperty("top");    // true
myObj.hasOwnProperty("middle"); // false
//舉例2

//用函數checkObj檢查myObj是否有checkProp屬性,如果屬性存在,返回屬性對應的值,如果不存在,返回 "Not Found"。

//代碼如下

var myObj = {
  gift: "pony",
  pet: "kitten",
  bed: "sleigh"
};
function checkObj(checkProp) {
  var tr = myObj.hasOwnProperty(checkProp); //檢查對象是否存在,將結果賦值給tr
  if(tr===true){                            //判斷tr是否true ?(存在)
    return myObj[checkProp]; //             //存在則返回屬性對應的值
  }else{
    return "Not Found";                     //不存在,則返回“Not Found”
} }
checkObj(
"gift");

 

5、for循環:

     for循環中的三個表達式用分號隔開:

  for ([初始化]; [條件判斷]; [計數器])

  初始化語句只會在執行循環開始之前執行一次。它通常用於定義和設置你的循環變量。

  條件判斷語句會在每一輪循環的開始執行,只要條件判斷為 true 就會繼續執行循環。

                  當條件為false的時候,循環將停止執行。這意味着,如果條件在一開始就為 false,這個循環將不會執行。

  計數器是在每一輪循環結束時執行,通常用於遞增或遞減

//舉例1:
var ourArray = [];
for (var i = 0; i < 5; i++) { 
  ourArray.push(i);
}
//先初始化i = 0,條件 i < 5 為真,進入第一次循環,執行大括號里的代碼,第一次循環結束。遞增i的值,條件判斷,就這樣依次執行下去,直到條件判斷為假,整個循環結束。

//舉例2:通過更改我們的 計數器,我們可以按照偶數順序來迭代。
var ourArray = []; 
for (var i = 0; i < 10; i += 2) {      
  ourArray.push(i);
}
//初始化 i = 0,當 i < 10 的時候繼續循環。i += 2 讓 i 每次循環之后增加2。循環結束后,ourArray 的值為 [0,2,4,6,8]。奇數同上

//舉例3:for循環也可以逆向迭代
var ourArray = [];
for (var i=10; i > 0; i-=2) {
  ourArray.push(i);
}
//為了能夠從后往前兩兩倒數,需要改變我們的 初始化,條件判斷 和 計數器。讓 i = 10,並且當 i > 0 的時候才繼續循環。使用 i-=2 來讓 i 每次循環遞減 2。循環結束后,ourArray 的值為 [10,8,6,4,2]。

//舉例4:for 循環迭代輸出一個數組的每個元素
var arr = [10,9,8,7,6];
for (var i=0; i < arr.length; i++) {
   console.log(arr[i]);
}
//數組的索引從零開始的,這意味着數組的最后一個元素的下標是:數組的長度 - 1。我們這個循環的 條件 是 i < arr.length,當 i 的值為 長度-1 的時候循環就停止了

//舉例5:二維數組,可以使用相同的邏輯,先遍歷外面的數組,再遍歷里面的子數組。
//1):
var arr = [
  [1,2], [3,4], [5,6]
];
for (var i=0; i < arr.length; i++) {
  for (var j=0; j < arr[i].length; j++) {
    console.log(arr[i][j]);
  }
}
//一次輸出 arr 中的每個子元素。提示,對於內部循環,我們可以通過 arr[i] 的 .length 來獲得子數組的長度,因為 arr[i] 的本身就是一個數組。
 //2):
  function multiplyAll(arr) {
  var product = 1;
  for (var i=0;i<arr.length;i++){
    for (var j=0;j<arr[i].length;j++){
      product *= arr[i][j];
    }
  }
  return product;
}
multiplyAll([[1,2],[3,4],[5,6,7]]);
//函數 multiplyAll,獲得 arr 內部數組的每個數字相乘的結果 product。

 

 

6、while循環:

    另一種類型的 JavaScript 循環被稱為while循環,因為它規定,當(while)條件為真,循環才會執行,反之不執行。

//舉例
var
ourArray = []; var i = 0; while(i < 5) { ourArray.push(i); i++; }

 

7、計算機的行為只有兩種:確定性和隨機性。Math.random()用來生成一個在0(包括0)到1(不包括1)之間的隨機小數,因此Math.random()可能返回0但絕不會返回1。

//舉例:
function myFunction(arr) {
  var arr = Math.random();
  return arr;
}
//myFunction 來生成一個隨機數。

  1)生成隨機小數很棒,但隨機數更有用的地方在於生成隨機整數

   例子:

  1. Math.random() 生成一個隨機小數。
  2. 把這個隨機小數乘以 20
  3. Math.floor() 向下取整 獲得它最近的整數。
  4. 注意:記住 Math.random() 永遠不會返回 1。同時因為我們是在用 Math.floor() 向下取整,所以最終我們獲得的結果不可能有 20。這確保了我們獲得了一個在0到19之間的整數
//把操作連綴起來,代碼類似於下面:
Math.floor(Math.random() * 20);

例子:
//生成一個 0 到 9之間的隨機整數。 function myFunction(arr) { var arr= Math.floor(Math.random() * 10); return arr; }

 

2)要生成的隨機數是在兩個指定的數之間。

//需要定義一個最小值和一個最大值。
Math.floor(Math.random() * (max - min + 1)) + min

//例子:
function randomRange(myMin, myMax) {
  var myRandom = Math.floor(Math.random() * (myMax - myMin + 1)) + myMin;
  return myRandom; 
}
var myRandom = randomRange(5, 15);
//randomRange的函數,參數為myMin和myMax,返回一個在myMin(包括myMin)和myMax(包括myMax)之間的隨機數。

 

8、Regular expressions 正則表達式  被用來根據某種匹配模式來尋找strings中的某些單詞。

    舉例:如果我們想要找到字符串The dog chased the cat中單詞 the,我們可以使用下面的正則表達式: /the/gi

 我們可以把這個正則表達式分成幾段:

/ 是這個正則表達式的頭部

the 是我們想要匹配的模式

/ 是這個正則表達式的尾部

g 代表着 global(全局),意味着返回所有的匹配而不僅僅是第一個。

i 代表着忽略大小寫,意思是當我們尋找匹配的字符串的時候忽略掉字母的大小寫。

 

1)可以在正則表達式中使用特殊選擇器來選取特殊類型的值。

//特殊選擇器中的一種就是數字選擇器\d,意思是被用來獲取一個字符串的數字。
//在JavaScript中, 數字選擇器類似於: /\d/g。

//在選擇器后面添加一個加號標記(+),例如:/\d+/g,它允許這個正則表達式匹配一個或更多數字。

//尾部的g是'global'的簡寫,意思是允許這個正則表達式 找到所有的匹配而不是僅僅找到第一個匹配。

//例子:
/\d+/g

2)可以使用正則表達式選擇器 \s 來選擇一個字符串中的空白。

//空白字符有 " " (空格符)、\r (回車符)、\n (換行符)、\t (制表符) 和 \f (換頁符)。

//空白正則表達式類似於:

/\s+/g

3)注意:正則表達式選擇器的大寫版本 來轉化任何匹配.

//例子:
\s   //匹配任何空白字符,
\S   //匹配任何非空白字符。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM