JavaScript語法基礎

//所有在雙斜線之后的內容都屬于注釋
//變量是表示值的一個符號名字
//變量是通過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....

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末管闷,一起剝皮案震驚了整個濱河市粥脚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌包个,老刑警劉巖刷允,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異碧囊,居然都是意外死亡树灶,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門糯而,熙熙樓的掌柜王于貴愁眉苦臉地迎上來天通,“玉大人,你說我怎么就攤上這事熄驼∠窈” “怎么了烘豹?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長诺祸。 經常有香客問我吴叶,道長,這世上最難降的妖魔是什么序臂? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任蚌卤,我火速辦了婚禮,結果婚禮上奥秆,老公的妹妹穿的比我還像新娘逊彭。我一直安慰自己,他們只是感情好构订,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布侮叮。 她就那樣靜靜地躺著,像睡著了一般悼瘾。 火紅的嫁衣襯著肌膚如雪囊榜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天亥宿,我揣著相機與錄音卸勺,去河邊找鬼。 笑死烫扼,一個胖子當著我的面吹牛曙求,可吹牛的內容都是我干的。 我是一名探鬼主播映企,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼悟狱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了堰氓?” 一聲冷哼從身側響起挤渐,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎双絮,沒想到半個月后浴麻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡掷邦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年白胀,在試婚紗的時候發(fā)現(xiàn)自己被綠了椭赋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抚岗。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖哪怔,靈堂內的尸體忽然破棺而出宣蔚,到底是詐尸還是另有隱情向抢,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布胚委,位于F島的核電站挟鸠,受9級特大地震影響,放射性物質發(fā)生泄漏亩冬。R本人自食惡果不足惜艘希,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望硅急。 院中可真熱鬧覆享,春花似錦、人聲如沸营袜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荚板。三九已至凤壁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間跪另,已是汗流浹背拧抖。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留免绿,地道東北人徙鱼。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像针姿,于是被迫代替她去往敵國和親袱吆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內容

  • 王濤 著 本書的觀點是宣傳中醫(yī)的一個理念:養(yǎng)生距淫。 我們的健康是自己在平時就要注意的绞绒,不要等到已經出現(xiàn)疾病的癥狀后才...
    知識分享閱讀 508評論 0 0
  • 沒想到一家米線店可以如此的浪漫。 今晚出去逛逛榕暇,看看有什么可吃的蓬衡。逛到了一家米線店,看到店名一下子就吸引我...
    長街聽風人閱讀 298評論 0 0
  • 彎月天邊懸 夜幕降臨彤枢,美好生活剛剛開始 1 放下碗筷狰晚,她對她說,你在家學習缴啡,我出去散步哦壁晒。 你去吧!她坐在學習桌前...
    db9c7a56803e閱讀 231評論 0 6