JavaScript教程筆記(9)-陣列
1 定義
陣列(array)是按次序排列的一組值。每個值的的位置都有編號(從0開始),整個陣列用方括號表示。
var arr = ['a', 'b', 'c'];
陣列在定義時賦值,也可以先定義後賦值。任何型別的資料,都可以放入陣列。
var arr = [
'abc',
{x: 1},
[1, 2, 3],
function() {return true;}
];
上面陣列arr的4個成員依次是字串、物件、陣列、函式。
如果陣列的成員還是陣列,就形成了多維陣列。
var arr = [[1, 2], [3, 4]]; arr[0][1] // 2 arr[1][1] // 4
2 陣列的本質
本質上,陣列屬於一種特殊的物件。
typeof [1, 2, 3] // "object"
如上面程式碼所示,typeof運算子返回陣列的型別是object。
注:本文適用於ES5規範,原始內容來自 JavaScript 教程,有修改。
相關推薦
JavaScript教程筆記(9)-陣列
1 定義 陣列(array)是按次序排列的一組值。每個值的的位置都有編號(從0開始),整個陣列用方括號表示。 var arr = ['a', 'b', 'c']; 陣列在定義時賦值,也可以先定義後賦值。任何型別的資料,都可以放入陣列。 var arr = [ '
JavaScript教程筆記(1)-資料型別
JavaScript共有6種資料型別,分別是: 數值 (number):整數和小數。 字串 (string):文字。 布林值 (boolean):true 和 false。 undefined:表示“未定義”或“不存在”。 null:表示空值。
JavaScript教程筆記(2)-關於null、undefined、true、false
1 null和undefined 1.1 定義 null和undefined都表示“沒有”,實際上,將一個變數賦值為null或undefined,語法效果幾乎一樣。它們的區別是:null是一個表示“空”的物件,轉為數值時為0;undefined是一個表示“未定義”的值,轉為數值時
JavaScript教程筆記(3)-數值
整數和浮點數 JavaScript內部,所有數字都是以64位浮點數形式儲存,即使整數也是如此。所以,1與1.0是相等的,是同一個數。 1 === 1.0 // true 也就是說,JavaScript 底層根本沒有整數,所有數字都是小數(64位浮點數)。如果某些運算一定要整
JavaScript教程筆記(4)-和數值相關的全域性方法
parseInt() parseInt 的作用是將字串轉換為整數。 parseInt('123') //123 // 如果字串開頭有空格,將會自動去除空格。 parseInt(' 123') // 123 // 如果輸入引數不是字串,則先轉為字串再轉換。 parseInt(
JavaScript教程筆記(6)-物件
定義 物件(object)是JavaScript語言的核心概念,也是最重要的資料型別。簡單說,物件就是一組“鍵值對”的集合,是一種無序的複合資料集合。 var obj = { foo: 'Hello', bar: 'World' }; 上面程式碼中,大括號就
JavaScript教程筆記(5)-字串
定義 字串就是放在單引號或雙引號之中的若干個字元。單引號字串的內部可以使用雙引號,雙引號字串的內部可以使用單引號。 'abc' "abc" 'name = "abc"' "It's ok" 上面這些都是合法的字串。 如果要在單引號字串內部使用單引號,就必須加上反斜槓,用
JavaScript教程筆記(8)-閉包函式和IIFE
1 閉包 閉包(closure)是JavaScript語言的一大特色,也是一個難點。理解閉包,首先要理解變數作用域。 作用域有兩種:全域性作用域和函式作用域。函式內部可以訪問全域性變數。 var n = 999; function f() { console.log(
JavaScript教程筆記(7)-函式
1 概述 函式是一段可以反覆呼叫的程式碼,它接受不同的輸入引數,返回不同的值。 1.1 函式的宣告 有兩種常用的宣告方法。 (1) function命令 function 命令宣告的程式碼區塊,就是一個函式。function 命令後面是函式名,函式名後面是一對圓括號,
JavaScript精華筆記:陣列內建函式的原始碼實現
本篇文章中,對forEach、filter、map、Every、Some、reduce和reduceRight等函式,講述瞭如何自己編寫程式碼實現它們的功能。 通過閱讀原始碼,自己編寫原始碼,能瞭解編寫思想、熟悉設計模式,能鍛鍊自己編寫元件、框架的能力。 試驗物
JavaScript教程筆記(12)-物件的繼承
大部分面向物件的程式語言,都是通過“類”(class)來實現物件的繼承。而JavaScript語言不一樣,是通過“原型物件”(prototype)來實現的,本文介紹JavaScript的原型鏈繼承。 ES6引入了class語法,基於class的繼承將在後面再介紹。
JavaScript教程筆記(11)-this關鍵字
1 定義 this關鍵字是一個非常重要的語法點,不理解它的含義,大部分開發任務都很難完成。 無論什麼場合,this總是返回一個物件。簡單說,this就是屬性或方法“當前”所在的物件。 var person = { name: 'mark', say: func
JavaScript教程筆記(10)-運算子
1 概述 JavaScript 提供了10種算術運算子,用來完成基本的算術運算。 加法運算子:x + y 減法運算子: x - y 乘法運算子: x * y 除法運算子:x / y 指數運算子:x ** y 餘數運算子:x % y 自增
【JavaScript基礎筆記】陣列
陣列由於陣列成員的鍵名是固定的(預設總是0、1、2…),因此陣列不用為每個元素指定鍵名。陣列的鍵名等同於物件的鍵名,必須為字串。 只要是陣列,就一定有length屬性。該屬性是一個動態的值,等於鍵名中的最大整數加上1。 arr.0的寫法不合法,因為單獨的數值不能作為識別符號(identifier)。所以,
JavaScript教程筆記(13)-Object物件的相關方法
JavaScript為Object提供了很多方法,用來處理物件程式設計的相關操作。 1 Object.getPrototypeOf() Object.getPrototypeOf 方法返回引數物件的原型,這是獲取原型物件的標準方法。 var Person = function
JavaScript教程筆記(14)-例項物件與 new 命令
1 物件是什麼 物件是單個實物的抽象。通常有一個模板表示共同特徵,然後物件根據這個模板生成。 典型的面向物件程式語言(比如C++和Java),都有“類”(class)這個概念。所謂“類”就是物件的模板,物件就是“類”的例項。但是JavaScript的物件體系,不是基於“類”的,而
JavaScript教程筆記(15)-非同步操作
1 單執行緒模型 單執行緒模型是指,JavaScript只在一個執行緒上執行,同時只能執行一個任務。 但是,這不是說JavaScript引擎只有一個執行緒,事實上,JavaScript引擎有多個執行緒,單個指令碼只能在一個執行緒上執行(稱為主執行緒),其它執行緒都是在後臺配合。
JavaScript教程筆記(16)-定時器
JavaScript中定時執行程式碼的功能,叫做定時器(timer),主要由setTimeout和setInterval兩個函式完成。 1 setTimeout() setTimeout函式用來指定某個函式或某段程式碼,在多少毫秒後執行。返回值是一個整數,表示定時器的ID,以後用
javaScript學習筆記, 陣列排序sort();
陣列排序的方法sort(); 該方法有個引數,稱為方法函式。 1.如果沒有指定方法引數,則按unicode碼順序排列 2.指定方法引數: function sortnum(a,b){ return a-b;//正序;b-a倒序,按數值大小 } var myarr = new
JavaScript教程筆記(17)-正則表示式
JavaScript中正則表示式的功能由RegExp物件提供。 1 概述 正則表示式(Regular expression)是一種表達文字模式(即字串結構)的方法,有點像是字串的模板,常用來按照“指定模式”匹配文字。例如,可以用正則表示式定義好一個郵箱地址的模式,然後用它來檢查某