//所有在雙斜線之后的內容都屬于注釋
//變量是表示值的一個符號名字
//變量是通過var關鍵字聲明的
var x; //聲明一個變量
//值可以通過等號賦值給變量
x = 0; //現(xiàn)在變量的值為0
console.log(x) //通過變量獲得其值
//JavaScript支持多種數(shù)據類型
x = 1; //數(shù)字
x = 0.01; //整數(shù)和實數(shù)共用一種數(shù)據類型
x = "hello world"; //由雙引號內的文本構成字符串
x = 'JavaScript'; //單引號內的文本同樣構成字符串
x = true; //布爾值
x = false; //另一個布爾值
x = null; //null是一個特殊的值淮蜈,意思是"空"
x = undefined; //undefined和null非常相似
//JavaScript中最重要的類型就是對象
//對象時名/值的集合吁讨,或字符串到值映射的集合
var book = { //對象時由花括號括起來的
topic: "JavaScript", //屬性“topic”的值是"JavaScript"
fat: true //屬性“fat”的值是"true"
}; //右花括號標記了對象的結束
//通過“.”或者“[]”來訪問對象的屬性
book.topic // =>"JavaScript"
book["fat"] // => true:另外一種獲取屬性的方式
book.author = "Flanagan"; //通過賦值創(chuàng)建一個新的屬性
book.content = {}; //{}是一個空對象妻柒,它沒有屬性
//JavaScript同樣支持數(shù)組(以數(shù)字為索引的列表)
var primes = [2, 3, 5, 7]; //擁有4個值的數(shù)組,有由“[”和“]”劃定邊界
primes[0] // => 2:數(shù)組中的第一個元素(索引為0)
primes.length // => 4:數(shù)組中的元素個數(shù)
primes[primes.length - 1] //=> 7 :數(shù)組的最后一個元素
primes[4] = 9; //通過賦值來添加新的元素
primes[4] = 11; //或通過賦值來改變已有的元素
var empty = []; //[] 是空數(shù)組晚胡,它具有0和元素
empty.length // => 0
//數(shù)組和對象中可以包含另一個數(shù)組或對象:
var points = [ //具有兩個元素的數(shù)組
{x: 0, y: 0}, //每個元素都是一個對象
{x: 1, y: 1}
];
var data = { //一個包含兩個屬性的對象
trial1: [[1, 2], [3, 4]], //每個屬性都是數(shù)組
trial2: [[2, 3], [4, 5]] //數(shù)組的元素也是數(shù)組
}
//運算符作用于操作數(shù),生成一個新的值
//最常見的是算術運算符
3 + 2 //=> 5: 加法
3 - 2 // => 1 : 減法
3 * 2 // => 6 :乘法
3 / 2 // => 1.5:除法
points[1].x - points[0].x // => 1 :更復雜的操作數(shù)也能照常工作
"3" + "2" // => "32":+ 可以完成加法運算也可以作字符串連接
// JavaScript定義了一些算術符的簡寫形式
var count = 0; //定義一個變量
count++; //自增1
count--; //自減1
count += 2; //自增2:和"count = count + 2"寫法一樣
count *= 3; //自乘:和"count = count * 3"寫法一樣
count // => 6 :變量名本身也是一個表達式
//相等關系云算符用來判斷兩值是否相等
//不等藻烤、大于梗掰、小于云算符的運算結果是true或false
var x = 2, y = 3; //這里=等號是賦值的意思,不是比較相等
x == y; //=> false:相等
x != y; //=>true:不等
x < y; //=>true :小于
x <= y; //=>true:小于等于
x > y; //=> false:大于
x >= y // => 大于等于
"two" == "three"; //=>false: 兩個字符串不相等
"two" > "three"; // => true:"tw"在字母表中的索引大于"th'
false == (x > y); //=> true : false和false相等
//邏輯云算法是對布爾值的合并或求反
(x == 2) && (y == 3); //=> true:兩個比較的都是true吸奴、&&表示"與"
(x > 3) || (y < 3); //=> false:兩個比較不都是true,||表示"或"
!(x == y) //=> true: ! 求反
//函數(shù)是一段帶有參數(shù)的JavaScript代碼端允扇,可以多次調用
function plus1(x) { //定義了名為plus1的一個函數(shù),帶有參數(shù)x
return x + 1; //返回一個比傳入的參數(shù)大的值
} //函數(shù)的代碼塊是由花括號包裹起來的部分
plus1(y); //=>4:y為3,調用函數(shù)的結果為 3 + 1
var square = function (x) { //函數(shù)是一種值则奥,可以賦值給變量
return x * x; //計算函數(shù)的值
}; //分號標識了賦值語句的結束
square(plus1(y)); // => 16:在一個表達式中調用兩個函數(shù)
//當函數(shù)賦值給對象的屬性考润,我們稱為“方法”,所有的JavaScript對象都含有方法
var a = []; //創(chuàng)建一個空數(shù)組
a.push(1, 2, 3); //push()方法想數(shù)組中添加元素
a.reverse(); //將數(shù)組元素的次序反轉
//我們也可以定義自己的方法读处,“this”關鍵字是對定義方法的對象的引用
points.dist = function () { //定義一個方法來計算兩點之間的距離
var p1 = this[0]; //通過this獲得當前數(shù)組的引用
var p2 = this[1]; //并取得調用的數(shù)組前兩個元素
var a = p2.x = p1.x; //X坐標軸上的距離
var b = p2.y - p1.y; //Y坐標軸上的距離
return Math.sqrt(a * a + b * b); //勾股定理糊治,用Math.sqtr()罚舱;來計算平方根
};
points.dist(); //=> 1.414:求得兩個點之間的距離
//這些JavaScript語句使用該語言包含條件判斷和循環(huán)
function abs(x) { //求絕對值的函數(shù)
if (x >= 0) { //if語句
return x; //如果比較結果為true則執(zhí)行這里的代碼
} //子句的結束
else { //當if條件不滿足時執(zhí)行else子句
return -x; //如果分支中只有一條語句井辜,花括號是可以省略的
}
}
function factorial(n) { //計算階乘的函數(shù)
var product = 1; //product賦值為1
while (n > 1) { //當()內的表達式為true時循環(huán)執(zhí)行{}內的代碼
product *= n; //product = product * n;的簡寫
n--; // n = n - 1;的簡寫
}
return product; //返回product
}
factorial(4);
function factorial2(n) { //實現(xiàn)循環(huán)的另一種寫法
var i, product = 1;
for (i = 2; i <= n; i++)
product *= i;
return product;
}
//定義一個構造函數(shù)以初始化一個新的Point對象
function Point(x, y) { //按照慣例,構造函數(shù)均以大寫字母開始
this.x = x; //關鍵字this代指初始化的實例
this.y = y; //將函數(shù)參數(shù)存儲為對象的屬性
} //不需要return
//使用new 關鍵字和構造函數(shù)老創(chuàng)建一個實例
var p = new Point(1, 1);//平面幾何中的點
//通過給構造函數(shù)的prototype對象賦值來給Point對象定義方法
Point.prototype.r = function () {
return Math.sqrt( //返回 x^2 + y^2的平方根
this.x * this.x + //this值代調用這個方法的對象
this.y * this.y
);
};
p.r(); //=>1.414....
JavaScript語法基礎
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門糯而,熙熙樓的掌柜王于貴愁眉苦臉地迎上來天通,“玉大人,你說我怎么就攤上這事熄驼∠窈” “怎么了烘豹?”我有些...
- 正文 為了忘掉前任蚌卤,我火速辦了婚禮,結果婚禮上奥秆,老公的妹妹穿的比我還像新娘逊彭。我一直安慰自己,他們只是感情好构订,可當我...
- 文/花漫 我一把揭開白布侮叮。 她就那樣靜靜地躺著,像睡著了一般悼瘾。 火紅的嫁衣襯著肌膚如雪囊榜。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼悟狱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了堰氓?” 一聲冷哼從身側響起挤渐,我...
- 正文 年R本政府宣布胚委,位于F島的核電站挟鸠,受9級特大地震影響,放射性物質發(fā)生泄漏亩冬。R本人自食惡果不足惜艘希,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望硅急。 院中可真熱鬧覆享,春花似錦、人聲如沸营袜。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽荚板。三九已至凤壁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間跪另,已是汗流浹背拧抖。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 王濤 著 本書的觀點是宣傳中醫(yī)的一個理念:養(yǎng)生距淫。 我們的健康是自己在平時就要注意的绞绒,不要等到已經出現(xiàn)疾病的癥狀后才...