亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript極簡入門教程(一):基礎篇

2019-11-20 13:59:55
字體:
來源:轉載
供稿:網友

閱讀本文需要有其他語言的編程經驗。

開始學習之前

大多數的編程語言都存在好的部分和差的部分。本文只講述 JavaScript 中好的部分,這是因為:

1.僅僅學習好的部分能夠縮短學習時間
2.編寫的代碼更加健壯
3.編寫的代碼更加易讀
4.編寫的代碼更加易于維護

弱類型和強類型

通常來說,越早的修復錯誤,為之付出的代價就越小。強類型語言的編譯器可以在編譯時檢查某些錯誤。而 JavaScript 是一門弱類型語言,其解釋器無法檢查類型錯誤,但實踐表明:

1.強類型能夠避免的錯誤并不是那些關鍵性錯誤
2.弱類型能夠帶來靈活性,也無需背上強類型的包袱

JavaScript 相關標準

ECMA-262 標準定義了語言 ECMAScript。我們所熟知的 JavaScript 和 ActionScript 都是基于 ECMAScript 的。目前主流使用 ECMA-262 第五版,Google 的 V8 引擎就是對此的實現。

Hello JavaScript

JavaScript 是一門腳本語言,需要解釋器解釋執行。你可以在瀏覽器中解釋執行 JavaScript 或者直接使用 node.js,node.js 整合了 Google 的 V8 JavaScript 引擎。由于 node.js 使用非常方便,由此,這里我使用 node.js 來解釋執行 JavaScript。現在看第一個 JavaScript 程序:

復制代碼 代碼如下:

// test.js
console.log("Hello JavaScript");

執行此程序:

復制代碼 代碼如下:

node test.js

語法

注釋

JavaScript 使用和 C++ 相同的注釋方式,// 用于單行注釋,/* */ 用于多行注釋。

數字類型

JavaScript 僅有一種數字類型,也就是 64 位浮點數。數字類型有兩個特殊的值 NaN 和 Infinity,NaN 的含義為 not a number(不是一個數),使用函數 isNaN 檢查是否為 NaN,值 Infinity 表示無窮大。在 Math 對象中,有一組操作數字的方法,例如:Math.floor 方法用于向下取整。

字符串

字符串 literal 可以被包裹在單引號或者雙引號中,轉義字符使用 /(和其他很多語言沒有什么不同)。JavaScript 中每個字符都是兩個字節,其使用 Unicode 字符集。字符串有一個 length 屬性:

復制代碼 代碼如下:

"Hello".length // 值為 5,注意不是 "Hello".length()

字符串是不可以改變的(和 Lua 一樣),除了這里說的 length 屬性,還有一些方法,例如:

復制代碼 代碼如下:

'cat'.toUpperCase() === 'CAT'

語句

var 語句用于聲明局部變量,否則變量為全局變量,未初始化的變量的值為 undefined:

復制代碼 代碼如下:

function f() {
    var localVar = 123;
    globalVar = 456;
    var i; // i 的值為 undefined
};
 
f();
 
console.log(globalVar); // ok
console.log(localVar); // 錯誤,localVar 沒有被定義

由 {} 包裹的一組語句被叫做語句塊(Block),和其他語言不同的是,JavaScript 中的函數會而塊不會創建新的作用域,例如:

復制代碼 代碼如下:

{
    var v = 123;
}
console.log(v); // ok

if 語句

復制代碼 代碼如下:

if (expression)
    statement

或者

復制代碼 代碼如下:

if (expression)
    statement1
else
    statement2

或者

復制代碼 代碼如下:

if (expression1)
    statement1
else if (expression2)
    statement2
else if (expression3)
    statement3
else
    statement4

if 語句通過判斷表達式的值為真或假來決定執行或者跳過某些語句。在 JavaScript 中以下值為假(其他值均為真):

1.false
2.null
3.undefined
4.空字符串
5.0
6.NaN

if 中的 statement 可以是一個語句,也可以是一個語句塊。

switch 語句

復制代碼 代碼如下:

switch (n) {
    case 1: // 如果 n 等于 1
    // 執行代碼塊
    break;
    case 2: // 如果 n 等于 2
    // 執行代碼塊
    break;
    default: // 如果 n 不為 1 也不為 2
    // 執行代碼塊
    break;
}

這里的 break 用于退出循環語句或者 switch 語句。在 JavaScript 中,比較兩個值是否相等有兩個操作符:

1.==(對應 != 操作符),相等,兩個操作數類型不同時,此運算符嘗試操作數類型轉換后再進行比較,例如:

復制代碼 代碼如下:

var x = 1;
x == 1; // true
x == "1"; // true

2.===(對應 !== 操作符),完全相等,比較兩個操作數,不進行操作數類型轉換,例如:

復制代碼 代碼如下:

var x = 1;
x === 1; // true
x === "1"; // false

需要注意的是 NaN 和任何值都不相等,如果 x 為 NaN,那么 x !== x(僅對 NaN 成立),我們可以這樣實現 isNaN 函數:

復制代碼 代碼如下:

function isNaN(n) {
    return n !== n;
}

上面 switch 語句,轉換為 if 語句為:

復制代碼 代碼如下:

if (n === 1)
    // ...
else if (n === 2)
    // ...
else
    // ...

while 和 do-while 語句

復制代碼 代碼如下:

while (expression)
    statement

如果 expression 為真則重復執行 statement 直到 expression 為假。

復制代碼 代碼如下:

do
    statement
while (expression);

類似 while 循環,只是先執行 statement,然后再檢查條件 expression。

for 語句

復制代碼 代碼如下:

for (initialize ; test ; increment)
    statement

首先 initialize 被執行一次(常用來初始化循環變量),然后進行 test 條件測試(常用來測試循環變量),如果 test 條件為假則停止循環,否則執行 statement,然后執行 increment(常用來更新循環變量),接著又進行 test 條件測試,如此循環執行下去。使用范例:

復制代碼 代碼如下:

for (var i=0; i<5; ++i) {
    console.log(i);
}

for 的另外一種形式被用于枚舉一個對象的所有屬性名:

復制代碼 代碼如下:

for (variable in object)
    statement

范例:

復制代碼 代碼如下:

var obj = {
    a: 1,
    b: 2,
    c: 3
};
 
for (var name in obj)
    console.log(name);

需要注意的是,我們通過 hasOwnProperty 方法來檢查屬性名是該對象的,還是從原型鏈(prototype chain,prototype 會在 下一篇 中介紹)中找到的:

復制代碼 代碼如下:

for (var in obj) {
    if (obj.hasOwnProperty(var)) {
        // ...
    }
}

return 語句

return 語句用于讓函數返回一個值,如果函數沒有顯式的使用 return,那么返回 undefined:

復制代碼 代碼如下:

function f() { }
var v = f(); // v === undefined

?: 條件操作符(JavaScript 中唯一的一個三元操作符)
?: 條件操作符在很多編程語言中都存在,在第一個操作數為真時,操作符返回第二個操作數的值,否則返回第三個操作數的值,使用范例:

復制代碼 代碼如下:

function abs() {
    return x > 0 ? x : -x;
}

typeof 操作符

typeof 操作符用于獲取變量的類型,其返回值包括:

1.'number'
2.'string'
3.'boolean'
4.'undefined'
5.'function'
6.'object'

特別的 typeof null 返回的結果是 'object'。關于 typeof 的范例:

復制代碼 代碼如下:

var a = typeof 'hello'; // a === 'string'
var b = typeof null; // b === 'object'

+ 操作符

+ 操作符在 JavaScript 中可以用于加法運算,也可以用于字符串連接:

復制代碼 代碼如下:

var message = 'hello' + 'world'; // message === 'helloworld'

&& 和 || 運算符

&& 操作符在第一個操作數為假時返回第一個操作數的值,否則返回第二個操作數的值
|| 操作符在第一個操作數為真時返回第一個操作數的值,否則返回第二個操作數的值

復制代碼 代碼如下:

var a = 1 && true; // a === true
var b = 1 || false; // b === 1

|| 的一個習慣用法:

復制代碼 代碼如下:

name = name || 'unknown'; // 為 name 設定默認值 'unknown'

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区欧美日韩| 欧美激情2020午夜免费观看| 一区二区在线视频播放| 久久97精品久久久久久久不卡| 欧美另类高清videos| 这里只有精品在线观看| 久久91超碰青草是什么| 成人黄色短视频在线观看| 欧美极品xxxx| 中文字幕一区二区三区电影| 成人免费自拍视频| 日韩黄色av网站| 国产精品一二三在线| 亚洲第一综合天堂另类专| 国产欧美日韩精品丝袜高跟鞋| 不卡毛片在线看| 91av在线免费观看视频| 亚洲国产成人在线视频| 久久伊人91精品综合网站| 欧美日韩中文字幕在线视频| 啪一啪鲁一鲁2019在线视频| 精品久久久久久久久久国产| 91欧美日韩一区| 成人在线国产精品| 奇米成人av国产一区二区三区| 欧美激情乱人伦一区| 91精品中国老女人| 久久99亚洲精品| 国产亚洲人成a一在线v站| 91中文在线观看| 久久久女女女女999久久| 欧美黄色片在线观看| 欧美激情在线有限公司| 国产在线一区二区三区| 久久国产精品久久久| 欧美第一页在线| 91精品91久久久久久| 国自产精品手机在线观看视频| 国产精品激情av电影在线观看| 亚洲国产精品免费| 亚洲激情视频在线播放| 日本成人精品在线| 97涩涩爰在线观看亚洲| 91精品国产91久久久久久吃药| 国产一区二区香蕉| 91免费国产网站| 欧美国产日韩二区| 91美女片黄在线观看游戏| 国产精品91在线| 成人淫片在线看| 日韩精品在线第一页| 91精品视频播放| 欧美激情亚洲一区| 国产va免费精品高清在线| 亚洲黄色av网站| 精品国产电影一区| 亚洲一区二区三| 欧美黑人性视频| 欧美成人一区二区三区电影| 最近更新的2019中文字幕| 欧美国产日韩一区二区| 懂色av一区二区三区| 欧美成aaa人片在线观看蜜臀| 日韩精品中文在线观看| 91在线免费看网站| 久久视频在线观看免费| 最近日韩中文字幕中文| 亚洲美女激情视频| 永久免费精品影视网站| 亚洲大胆美女视频| 欧美在线观看一区二区三区| 亚洲最大av在线| 久久91亚洲精品中文字幕| 国产精品福利片| 日韩精品免费看| 成人综合国产精品| 中文字幕日韩精品在线| 国产精品青草久久久久福利99| 久久久999精品视频| 中文字幕在线视频日韩| 国产成人精品亚洲精品| 成人免费看吃奶视频网站| 色偷偷av亚洲男人的天堂| 精品久久香蕉国产线看观看gif| 国产一区二区三区久久精品| 欧美性生活大片免费观看网址| 久久精品视频在线观看| 国产精品99久久久久久人| 亚洲国产精品电影| 97av在线视频免费播放| 日韩av快播网址| 欧美激情乱人伦一区| 亚洲最大成人免费视频| 亚洲精品视频网上网址在线观看| 日韩www在线| 国产欧美日韩免费| 久久久精品国产亚洲| 亚洲国产欧美一区二区三区同亚洲| 国产亚洲精品久久| 日韩精品一区二区视频| 国产99视频在线观看| 黑人巨大精品欧美一区二区一视频| 精品久久久久久中文字幕大豆网| 97超视频免费观看| 国产精品视频xxxx| 日韩视频免费在线观看| 亚洲欧美日韩视频一区| 91精品国产综合久久久久久久久| 久久久爽爽爽美女图片| 北条麻妃99精品青青久久| 国产午夜精品理论片a级探花| 在线视频免费一区二区| 国产视频精品免费播放| 日本aⅴ大伊香蕉精品视频| 国产a级全部精品| 亚洲国产精品99久久| 国产成人精品免费视频| 欧美一区视频在线| 91av成人在线| 在线精品91av| 亚洲偷熟乱区亚洲香蕉av| 日韩av免费在线看| 欧美性感美女h网站在线观看免费| 国产成人jvid在线播放| 久久成人精品一区二区三区| 欧美日韩国产精品一区二区三区四区| 久久久午夜视频| 国产精品久久国产精品99gif| 136fldh精品导航福利| 亚洲伊人一本大道中文字幕| 九九热视频这里只有精品| 2020欧美日韩在线视频| 日韩精品在线观看一区| 欧美午夜宅男影院在线观看| 国产一区二区三区精品久久久| 日韩中文字幕在线精品| 久久精品国产亚洲一区二区| 欧美日本在线视频中文字字幕| 国产日产欧美精品| 久久精品国产欧美亚洲人人爽| 国产精品美女无圣光视频| 久久久久久国产精品久久| 欧美巨大黑人极品精男| 亚洲精品国产欧美| 亚洲色图综合久久| 亚洲精品电影在线| 久久99久国产精品黄毛片入口| 一区二区三区精品99久久| 国产精品久久久久久久久久久不卡| 欧美视频在线视频| 亚洲欧美国产精品专区久久| 草民午夜欧美限制a级福利片| 久久影视电视剧免费网站清宫辞电视| 国产视频亚洲精品| 国产精品老牛影院在线观看| 2023亚洲男人天堂| 国产午夜精品久久久| 成人伊人精品色xxxx视频| 亚洲女同精品视频| 最近2019中文字幕大全第二页| 久久视频在线看| 亚洲精品成人免费| 日韩亚洲欧美成人| 欧美成人精品三级在线观看|