最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2014年10月25日 15:59:40   投稿:junjie  
這篇文章主要介紹了JavaScript極簡入門教程(一):基礎篇,本文講解了JavaScript的基礎語法、操作符、運算符等內(nèi)容,需要的朋友可以參考下

閱讀本文需要有其他語言的編程經(jīng)驗。

開始學習之前

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

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

弱類型和強類型

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

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

JavaScript 相關標準

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

Hello JavaScript

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

復制代碼 代碼如下:

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

執(zhí)行此程序:

復制代碼 代碼如下:

node test.js

語法

注釋

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

數(shù)字類型

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

字符串

字符串 literal 可以被包裹在單引號或者雙引號中,轉(zhuǎn)義字符使用 \(和其他很多語言沒有什么不同)。JavaScript 中每個字符都是兩個字節(jié),其使用 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 中的函數(shù)會而塊不會創(chuàng)建新的作用域,例如:

復制代碼 代碼如下:

{
    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 語句通過判斷表達式的值為真或假來決定執(zhí)行或者跳過某些語句。在 JavaScript 中以下值為假(其他值均為真):

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

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

switch 語句

復制代碼 代碼如下:

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

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

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

復制代碼 代碼如下:

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

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

復制代碼 代碼如下:

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

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

復制代碼 代碼如下:

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

上面 switch 語句,轉(zhuǎn)換為 if 語句為:

復制代碼 代碼如下:

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

while 和 do-while 語句

復制代碼 代碼如下:

while (expression)
    statement

如果 expression 為真則重復執(zhí)行 statement 直到 expression 為假。

復制代碼 代碼如下:

do
    statement
while (expression);

類似 while 循環(huán),只是先執(zhí)行 statement,然后再檢查條件 expression。

for 語句

復制代碼 代碼如下:

for (initialize ; test ; increment)
    statement

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

復制代碼 代碼如下:

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 語句用于讓函數(shù)返回一個值,如果函數(shù)沒有顯式的使用 return,那么返回 undefined:

復制代碼 代碼如下:

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

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

復制代碼 代碼如下:

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'

&& 和 || 運算符

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

復制代碼 代碼如下:

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

|| 的一個習慣用法:

復制代碼 代碼如下:

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

相關文章

  • 20個非常有用的PHP類庫 加速php開發(fā)

    20個非常有用的PHP類庫 加速php開發(fā)

    下面是一些非常有用的PHP類庫,相信一定可以為你的WEB開發(fā)提供更好和更為快速的方法。
    2010-01-01
  • javascript 精確獲取樣式屬性(下)

    javascript 精確獲取樣式屬性(下)

    繼續(xù)上一部分,我們要看一下顏色?;鸷孟癫还苋叨欢紩D(zhuǎn)變?yōu)閞gb格式,不過我們通常比較習慣的是hex格式。這就用到以下兩函數(shù)。
    2010-01-01
  • JavaScript獲取瀏覽器信息的方法

    JavaScript獲取瀏覽器信息的方法

    這篇文章主要介紹了JavaScript獲取瀏覽器信息及獲取瀏覽器地址和參數(shù)的方法的相關資料,需要的朋友可以參考下
    2015-11-11
  • 全面了解javascript中的錯誤處理機制

    全面了解javascript中的錯誤處理機制

    下面小編就為大家?guī)硪黄媪私鈐avascript中的錯誤處理機制。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • 第四篇Bootstrap網(wǎng)格系統(tǒng)偏移列和嵌套列

    第四篇Bootstrap網(wǎng)格系統(tǒng)偏移列和嵌套列

    這篇文章主要介紹了Bootstrap網(wǎng)格系統(tǒng)偏移列和嵌套列的相關資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • JAVA面試題 static關鍵字詳解

    JAVA面試題 static關鍵字詳解

    這篇文章主要介紹了JAVA面試題 淺析Java中的static關鍵字,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • Bootstrap實現(xiàn)的標簽頁內(nèi)容切換顯示效果示例

    Bootstrap實現(xiàn)的標簽頁內(nèi)容切換顯示效果示例

    這篇文章主要介紹了Bootstrap實現(xiàn)的標簽頁內(nèi)容切換顯示效果,結合完整實例形式分析了基于Bootstrap實現(xiàn)的標簽頁內(nèi)容切換顯示功能相關操作技巧,非常簡單實用,需要的朋友可以參考下
    2017-05-05
  • javascript cookie的簡單應用

    javascript cookie的簡單應用

    這篇文章主要介紹了javascript cookie的簡單應用,我們先介紹一下cookie的使用,以及我后面簡單封裝一個cookie操作的單例,便于實現(xiàn)cookie的設置,獲取,刪除的方法,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 學習JavaScript設計模式之迭代器模式

    學習JavaScript設計模式之迭代器模式

    這篇文章主要為大家介紹了JavaScript設計模式中的迭代器模式,對JavaScript設計模式感興趣的小伙伴們可以參考一下
    2016-01-01
  • 淺談JavaScript中指針和地址

    淺談JavaScript中指針和地址

    Javascript是一門基于對象的動態(tài)語言,也就是說,所有東西都是對象,一個很典型的例子就是函數(shù)也被視為普通的對象。Javascript可以通過一定的設計模式來實現(xiàn)面向?qū)ο蟮木幊?,其中this指針就是實現(xiàn)面向?qū)ο蟮囊粋€很重要的特性。
    2015-07-07

最新評論

孟村| 汝阳县| 金堂县| 崇阳县| 许昌市| 衡山县| 新乡县| 色达县| 改则县| 乌拉特前旗| 河东区| 工布江达县| 松原市| 资中县| 桐柏县| 高邮市| 蒲江县| 云龙县| 万载县| 墨玉县| 宾阳县| 新龙县| 堆龙德庆县| 马关县| 凉城县| 亳州市| 宁武县| 广宗县| 皮山县| 上思县| 汕尾市| 金华市| 河北省| 贡嘎县| 沅陵县| 和龙市| 鄂托克前旗| 东城区| 梁河县| 昔阳县| 昂仁县|