任何的編程語言都有自己的語言核心,和眾多編程語言一樣,JavaScript也有自己語言的核心。語言的核心部分一般被稱之為JavaScript最為基礎的部分。正所謂萬事開頭難,學習JavaScript也是一個道理,也有句古話說得好,好的開始是成功的一半。了解並學好JavaScript的語言核心部分是JavaScript學習道路上非常良好的開始。
下面是一段代碼,主要介紹了JavaScript的數據類型和變量:
復制代碼 代碼如下:
//在script標簽中,所有//後面的內容都稱之為注釋
//注釋的作用一般都是為一段JavaScript進行一些解釋,讓其他Web前端開發工程師或者是閱讀這段代碼的時候更加清楚明了
//變量是一個值的符號名字,通過這些變量的名字,我們也能夠大體的知道這個變量是干什麼用的,屬於是什麼變量類型
//區別變量很簡單。變量的前面都有“var” ,也就是說變量是通過“var”進行聲明的。
var m; //聲明一個變量m
//一般我們把要聲明的值用等號賦給變量
var m = 10; //現在的變量m等於 10
m //通過 變量 m 來獲取剛才聲明的值
//alert(m) //利用alert()函數,在浏覽器出彈出m的值
//JavaScript的數據類型:布爾值,數字,字符串,underfind,函數,數組,對象
var n = 1; //數字
n = 0.01 //整數和實數都是數字類型
var s = "你好"; //由雙引號內的文本構成的字符串
s = '國安'; //由單引號內的文本構成的字符串
var b = false; //錯誤的布爾值
b = true; //正確的布爾值
var z = null; //一個null的空值,是一個特殊的類型,typeof後是對象
var u; //underfind
var j = { //一個代表json的對象
li :3, //屬性“li”的值是3
meng :4 //屬性“meng”的值是4
}
j["li"] //通過[]訪問json中的值
j.li //通過.訪問json中的值
j.long = 5 //通過賦值的方法創建新的屬性
j.ai = { //通過賦值可以創建新的json
xin : 33
}
j.kong = {} //{}代表空對象,它沒有屬性
j.ai.xin //通過.訪問新的json中的屬性
var a = [2,3,2] //一個代表數組的對象
a[0] //數組中[]代表[]中數字代表位置,數組從0開始,所以a[0]是數組的第一個元素
a.length //length代表數組a的個數,3
a[a.length-1] //代表數組中的最後一個元素
a[9] = 2; //用賦值的方法添加新的元素
//若a = [],那麼代表數組裡的元素為零個,a.length = 0
a[0] = {
li : 333
}
//json中能包含數組,數組中也能包含json
//alert(a[0]["li"])
上面的代碼中,可以通過“[]”、“{}”、“.”定義對象,也可以通過“[]”、“{}”、“.”開更改數組或者對象中的內容。也可以通過“[]”、“{}”、“.”來讀取對象中的一些數據。下面一組代碼是有關運算符的:
復制代碼 代碼如下:
//JavaScript中可以運用預算符,進行兩個數之間的運算,可以產生新的值
//下面是比較常見的一些預算符,如"+"、"-"、"*"、"/"
//1、介紹運算符
10 + 10 //加法,20
10 * 10 //乘法,100
10 - 10 //減法,0
10 /10 //除法,1
var j = { //一個代表json的對象
li :3, //屬性“li”的值是3
meng :4 //屬性“meng”的值是4
}
j["li"] - j.meng //json j中的屬性li 減去 json j中的屬性meng ,結果是-1
"10" + "10" //加法可以進行字符串的拼接,結果是100
//2、JavaScript中定義了一些簡寫的運算符
var num = 0 //定義一個數字
num++; //代表自增,num = num + 1;
num--; //代表自減,相當於 num = num - 1;
num += 2; //代表自增2 ,相當於num = num + 2;
num *= 8; //代表自稱8 ,相當於num = num * 8;
//3、運算符進行判斷
var a = 1,b = 2; //一個等號代表復制,兩個變量之間用","隔開,代表同時聲明
a == b; //結果是false 意思是a和b是相等嗎
a != b; //結果是true 意思是a和b不相等嗎
a < b; //結果是true 意思是a小於b嗎
a <= b; //結果是true 意思是a小於或者等於b嗎
a > b; //結果是false 意思是a大於b嗎
a >= b; //結果是false 意思是a大於或者等於b嗎
"two" == "three"; //true "tw"在字母表中的索引大於"th"
false > (a > b) //結果是true 意思是false和false進行比較
//4、邏輯運算符
(a == 2) && (b == 3) //結果是true。a是等於2 並且 b是等於3 的嗎 。&&代表並且的意思
a > 2 || b > 2 //結果true ,第一個是false,第二個是true,由於 || 代表或的意思
!(a == b) //結果是true 。! 是 求反 的意思
運算符中,僅僅算出個值並不影響任何操作的都叫做表達式,並不改變程序的運行狀態。而語句是不包含一個值,但是它改變運行狀態。語句由於改變運行狀態,所以後面加分號。
每個函數都有自己的名字,通過名字可以調用執行某一個函數,可以定義一次,調用多次。下面是簡單的函數小例子。
復制代碼 代碼如下:
//1、函數是一段帶有參數的JavaScript代碼端,可以一次定義,多次調用,也可以帶有參數
var a = 3; //聲明一個值為3的變量a;
function fn1 (n) { //一個參數為n名為fn1的函數
return n+1; //返回一個比傳入的值大一的值
}
fn1(a) //結果是4,由於剛才聲明的a的值為3,所以調用函數時候,執行 a+1 也就是3+1
var fOne = function(m) { //函數也是一種數據類型,所以也可以把變量賦值成一個函數
return m*m; //返回一個數值,進行 參數 * 參數 的運算
}
fOne(a) //結果是 9
//2、方法,把函數賦值給變量的屬性
var arr = []; //創建一個新數組
arr.push(1,2,3); //用push()方法向arr數組裡從後添加元素
arr.reverse(); //用reverse()方法將數組中的元素順序反轉
var points = [ //聲明一個元素中是json的數組
{a : 0,b : 0},
{a : 1,b : 1}
]
points.dist = function () { //在聲明的數組中定義一種計算兩點之間距離的方法
var p1 = this[0]; //用this獲取當前數組的引用
var p2 = this[1]; //並且賦值給兩個新的變量
var a = p2.a - p1.a; //x軸上的距離
var b = p2.b - p1.b; //y軸上的距離
return Math.sqrt(a*a + b*b) //用Math()中的sqrt()計算平方根從而得到兩點之間的距離
}
alert(points.dist()) //結果是1.414
//3、控制語句
//條件語句和循環語句被稱之為控制語句
function abs (m) { //求絕對值函數
if (m >= 0) { //如果比較結果為true
return m; //返回 m
}else { //若比較結果為false
return -m; //返回 -m
}
}
function factorial (n) { //計算階乘的函數
var num = 1; //聲明一個值為1的變量
while (n > 1) { //當()內的表達式為true時候,執行循環{}內的代碼
num *= n; //相當於 num = num * n
n--; //相當於 n = n -1
}
return num //返回階乘的結果
}
factorial(4) //結果是24
function factorialFor (n) { //用for循環實現階乘
var i, num = 1; //聲明變量i,並且聲明值為1的變量num
for (i=2; i <= n ; i++) { //將i從2循環到n
num *= i; //循環體,當循環體中只有一句話的時候可以省略{}
}
return num; //返回計算好的階乘表
}
factorialFor(5)
.從函數例子中可以看出,不管是while循環還是for循環,不管是判斷語句還是循環語句,都算得上是控制語句。通過一定的條件控制將要發生的事情。
介紹完函數,接下來介紹簡單介紹一下面向對象。
復制代碼 代碼如下:
//定義一個構造函數,就是先創造一個初始化的對象
function Point (x,y) { //構造函數名的第一個字母要大寫
this.x = x; //this代表的就是這個初始化對象
this.y = y; //將函數的參數存到這個初始化對象的屬性中
} //構造函數中不需要返回,return什麼東西
//使用new關鍵字,和構造函數,創建一個新的對象
var p = new Point(1,1); //創建一個平面坐標為(1,1)的點
//通過給構造函數原型賦值,來給Point新創建的對象添加方法
Point.prototype.r = function () {
return Math.sqrt(
this.x*this.x + this.y*this.y
); //利用Math中的sqrt()方法進行開平方根運算。this指代的是調用方法的對象
}
p.r() //結果是1.414
上面的例子是教大家如何定義一個有求平方根方法的點。JavaScript的面向對象和其他編程語言的面向對象有一些區別。具體的區別呢,我們只能繼續往下研究,才能知道。