在JavaScript中,變量在使用以前須要先聲明。javascript
聲明變量是經過關鍵字var來實現的。如:java
var i; //聲明一個變量,變量名爲i var j; //聲明一個變量,變量名爲j
多個變量的聲明能夠這樣:數組
var i,j; //同時聲明變量名爲i,j的兩個變量 //同時聲明多個變量時,變量名之間須要用逗號(,)隔開
在聲明變量的同時也能夠對變量進行賦值:函數
var i = 1; //聲明一個變量名爲i的變量,i的值爲1 var j = 2; //聲明一個變量名爲j的變量,j的值爲2
同時聲明多個變量的時候也能夠對變量進行賦值:指針
var i = 1, j = 2, k = 3; //同時聲明3個變量,變量名分別爲i、 j、 k,i的值是1,j的值是2,k的值是3
若是在聲明變量的同時沒有給變量賦值,那麼直接使用這個變量則會輸出undefined:code
var a; a; //輸出undefined
若是直接調用沒有聲明過的變量,會報錯。對象
全局變量與局部變量:繼承
在JavaScript中,在函數體內部聲明的變量是局部變量,只在函數體內部能使用,在函數體外部不能使用。索引
在函數體外部聲明的變量是全局變量,在本JavaScript代碼下能夠均可以使用:ip
var xo = 'alex'; function Func(){ var xo = "seven"; console.log(xo); } Func(); //輸出seven,由於打印是在Func()體內部的方法,因此它首先是在Func()體內查找變量xo
變量做用域
在函數體內部的做用域是局部做用域,在函數體外部的做用域是全局做用域
var ju = 1; //擁有全局做用域 function Func() { var jh = 2; //擁有局部做用域 console.log(ju); //輸出1 } Func(); console.log(jh); //報錯
在函數體內部聲明的變量是局部變量,擁有局部做用域。
在函數體外部聲明的變量是全局變量,擁有全局做用域。
局部做用域只在固定的代碼片斷中能訪問到,最多見的是函數體內部,因此局部做用域也叫函數做用域。
沒有使用var關鍵字但直接賦值的變量會被自動聲明爲擁有全局做用域:
function check() { var scope = "local"; scopeglobal = "global"; alert(scope); } check(); //輸出local alert(scopeglobal); //輸出global alert(scope); //報錯
原型鏈的基本概念:原型鏈是利用原型對象讓一個類型繼承另外一個類型的屬性和方法,而後層層遞進,就構成了實例與原型對象的鏈條。
指針:指針只是指向內存的一個索引,使用不帶圓括號的函數名是訪問函數指針,不是調用函數。
原型對象:咱們建立的每個函數都有一個原型屬性,這個屬性是一個指針,指向一個對象,這個對象是包含能夠由特定類型的全部示例共享的屬性和方法。
數組,函數,和對象的基本使用:
一、命名:函數的命名須要用到function關鍵字,接着是函數名,必須以字母或者下劃線開始,不能有空格和特殊字符($符能夠有),函數名後面必須帶有括號,括號裏面填入參數,參數能夠不填,多個參數要用逗號(,)隔開,括號後面跟着大括號,,大括號中是寫函數代碼的:
function Func(x) { return x * x; } Func(5); //輸出25 //return用來返回函數的結果 //這就是一個簡單地JavaScript函數
JavaScript的對象是一種基本數據類型。
對象中有不少值,每一個屬性都是一個名/值對,對象能夠看作是屬性的無序集合。
建立對象是經過關鍵字new來實現的:
var o = {}; //建立一個空對象 var i = new object(); //建立一個空對象,和{}同樣 var j = {x: 1, y: 2}; //建立一個有兩個成員的對象 //訪問對象中的成員 j.x; //輸出1 j.y; //輸出2
JavaScript的數組是值的有序集合。
每個值叫作一個元素,每一個元素在數組中有一個位置,用數字表示,叫做索引(第一個索引爲0)。
建立數組:
var em = []; //建立一個空數組 var en = [2, 3, 4, 5, 6]; //建立一個有5個數值的數組 var ev = [1.1, true, "a"]; //建立一個有3個不一樣類型的元素的數組 //讀取數組中的元素 ev[0]; //輸出1.1 //寫入新元素 ev[4] = 3.14; //將第4個元素寫爲3.14
獲取數組長度用.length屬性:
var i = [1, 2, 3, 4, 5]; i.length; //輸出5,表示有5個元素,數組長度爲5