成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript高程第三章部分筆記

lentoo / 1133人閱讀

摘要:標(biāo)識符按以下規(guī)則組合第一個字符必須是一個字母,下劃線或一個美元符號。包含值的變量和尚未定義的變量是不一樣的,例子報錯然而,對未初始化的變量執(zhí)行操作符會返回值,對未聲明的變量執(zhí)行操作符統(tǒng)一也會返回值。

1. 語法 1.1 區(qū)分大小寫

變量、函數(shù)名和操作費都區(qū)分大小寫。

1.2 標(biāo)識符

標(biāo)識符指變量、函數(shù)、屬性的名字,或者函數(shù)的參數(shù)。標(biāo)識符按以下規(guī)則組合:

第一個字符必須是一個字母,下劃線(_)或一個美元符號($)。
其他字符可以是字母、下劃線、美元符號或者數(shù)字。

標(biāo)識符采用駝峰大小寫格式,也就是第一個字母小寫,剩下的每個單詞首字母大寫,例如:

firstSecond
myCar
doSomethingImportant
1.3 注釋

使用c風(fēng)格的注釋

//單行注釋

/*
多
行
注
釋
*/
1.4 嚴格模式

在頂部添加如下代碼進入嚴格模式:
"use strict";
(此處不深究)

1.5 語句

ECMAScript中的語句以一個分號結(jié)尾,如果省略了分號,那么由解析器確定語句的結(jié)尾。
雖然語句結(jié)尾的分號不是必須的,但我們建議任何時候都不要省略他。
加上分號可以避免很多錯誤(例如不完整的輸入),開發(fā)人員也可以放心地通過刪除多余的空格來壓縮ECMAScript代碼。加上分號也會在某些情況下增進代碼的性能,減輕解析器的負擔(dān)。

在條件控制語句中,即使代碼塊里只有一條語句也使用代碼塊。

if (test)           //有效但容易出錯,不要使用
    alert(test);
    
if (test){                  //推薦使用
    alert(test);
}
2. 關(guān)鍵字和保留字

ECMA-262描述了一組具有特定用途的關(guān)鍵字,以及一組不能用作標(biāo)識符的保留字

3. 變量

ECMAScript的變量是松散類型的,所謂松散類型就是可以用來保存任何類型的數(shù)據(jù)。換句話說,每個變量靜靜是一個用于保存值的占位符而已。使用var操作符定義變量(var是一個關(guān)鍵字),后跟變量名(即標(biāo)識符)。
省略var操作符,可以在函數(shù)中創(chuàng)建全局變量:

function test(){
    message = "hi";      //message為全局變量
}
test();
alert(message);

可以使用一條語句定義多個變量

var message = "hi",
    found = false,
    age = 29;
    

由于ECMAScript是松散類型的,因而使用不同類型初始化變量的操作可以放在一條語句中完成。

4. 數(shù)據(jù)類型

ECMAScript中有5中簡單數(shù)據(jù)類型(也稱為基本數(shù)據(jù)類型):Undefined,Null,Boolean,Number,String
還有一種復(fù)雜數(shù)據(jù)類型——Object,Object本質(zhì)上是有一組無序的名值對組成的。
ECMAScript不支持任何創(chuàng)建自定義類型的機制,而所有值最終都將是上述6中數(shù)據(jù)類型之一。
ECMAScript具有動態(tài)性,因此沒有再定義其他數(shù)據(jù)類型的必要了。

4.1 typeof操作符

對一個值使用typeof操作符可能返回下列某個字符串

"underfined"——如果這個值未定義
"boolean"——如果這個值是布爾值
"string"——如果這個值是字符串
"number"——如果這個值是數(shù)值
"object"——如果這個值是對象
"function"——如果這個值是函數(shù)

以下是幾個例子:

var message = "some string";
alert(typeof message);  //string
alert(typeof(message)); //string
alert(typeof 95);   //number

這幾個例子說明,typeof操作符的操作數(shù)可以是變量(message),也可以是數(shù)值字面量。注意,typeof是一個操作符而不是函數(shù),因此例子中的圓括號盡管可以使用,但是不是必須的。
有些時候,typeof操作符會返回一些令人迷惑但是技術(shù)上卻正確的值。比如,調(diào)用typeof null會返回"object"。因為特殊值"null"被認為是一個空的對象引用。

從技術(shù)上講,函數(shù)在ECMAScript中是對象,不是一種數(shù)據(jù)類型。然而,函數(shù)也確實有一些特殊的屬性,因此通過typeof操作符來區(qū)分函數(shù)和其他對象是有必要的。
4.2 Undefined類型

Undefined類型只有一個值,即特殊的Undefined。在使用var聲明變量但未對其加以初始化時,這個變量的值就是undefined,如:

var message;
alert(message == undefined);  //true
字面值undefined的主要目的是比較。

包含undefined值的變量和尚未定義的變量是不一樣的,例子:

var message;
alert(message);//underfined
alert(asnfoiasnfi);//報錯

然而,對未初始化的變量執(zhí)行typeof操作符會返回undefined值,對未聲明的變量執(zhí)行typeof操作符統(tǒng)一也會返回undefined值。

顯示地初始化變量是明智的選擇,這樣,當(dāng)typeof操作符返回"undefined"值時,我們就知道該變量是沒有被聲明,而不是沒有初始化。
4.3 Null類型

Null類型是第二個只有一個值的數(shù)據(jù)類型,這個特殊的值是null。從邏輯關(guān)系看,null值表示一個空對象指針,所以typeof操作符檢測null值會返回object。

如果定義的變量準(zhǔn)備在將來用于保存對象,那么最好將該變量初始化為null而不是其他值。
這樣一來,只要檢測null值就可以知道相應(yīng)的變量是否已經(jīng)保存了一個對象的引用。
只要意在保存對象的變量還沒有真正保存對象,就應(yīng)該明確地讓變量保存null值.
if (car != null){
//對car對象執(zhí)行某些操作
}

undefined值是派生自null值的,因此ECMA-262規(guī)定對它們的相等性測試要返回true。

alert(null == undefined);   //true
4.4 Boolean類型

Boolean類型只有兩個字面值:truefalse。這兩個值和數(shù)字值不是一回事,true不一定等于1,false不一定等于0。
ECMAScript中所有類型的值都有與這兩個Boolean值等價的值。調(diào)用轉(zhuǎn)型函數(shù)Boolean(),如:

var message = "Hello world!";
var messageAsBoolean = Boolean(message);

下表給出各種數(shù)據(jù)類型以及其對應(yīng)的轉(zhuǎn)換規(guī)則。

數(shù)據(jù)類型 轉(zhuǎn)換為true的值 轉(zhuǎn)換為false的值
Boolean true false
String 任何非空字符串 " "(空字符串)
Number 任何非零數(shù)字值(包括無窮大) 0和NaN
Object 任何對象 null
Undefined undefined

這對理解流控制語句(如if語句)自動執(zhí)行相應(yīng)的Boolean轉(zhuǎn)換非常重要:

var message = "Hello world!:;
if (message){  //自動轉(zhuǎn)換
    alert("Value is true");
}
4.5 Number類型

Number類型使用IEEE754格式來表示整數(shù)和浮點數(shù)值。
八進制字面值的第一位必須是0,十六進制字面值的前兩位必須是0x,在進行算術(shù)計算時,所有八進制和十六進制表示的數(shù)值最終都將被轉(zhuǎn)換成十六進制。

var intNum = 55;  //整數(shù)
var octalNum1 = 070;   //八進制的56
var octalNum2 = 079;   //無效的八進制,解析為79
var hexNum1 = 0xA;  //十六進制的10
var hexNum2 = 0x1f; //十六進制的31

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/107098.html

相關(guān)文章

  • JS高程讀書筆記--三章基本概念

    摘要:高程讀書筆記第三章語法中的一切變量函數(shù)名和操作符都區(qū)分大小寫。建議無論在任何情況下都指定基數(shù)函數(shù)與函數(shù)類似。返回對象的字符串?dāng)?shù)值或布爾值表示。 JS高程讀書筆記--第三章 語法 ECMAScript中的一切(變量、函數(shù)名和操作符)都區(qū)分大小寫。 不能把關(guān)鍵字、保留字、true、false和null用做標(biāo)識符。 嚴格模式是為JavaScript定義了一種不同的解析與執(zhí)行模型。在嚴格模式...

    keithyau 評論0 收藏0
  • 讀“js高程筆記

    showImg(http://img3.douban.com/lpic/s8958650.jpg); 0x00 javascript組成 ECMAScript(-265)核心語言部分 DOM文檔對象模型(DOM1、2、3) BOM瀏覽器對象模型(提供與瀏覽器交互的接口和方法) 0x01 async 異步加載 執(zhí)行順序不定 charset defer 延遲加載,立即下載腳本但不執(zhí)行 src ...

    CollinPeng 評論0 收藏0
  • javascript高程3 學(xué)習(xí)筆記(二)

    摘要:的理解函數(shù)與其他語言函數(shù)最大的不同在于,其不介意傳入多少參數(shù)以及參數(shù)的類型比如函數(shù)的形參有兩個,但是調(diào)用函數(shù)傳入的參數(shù)可以寫一個,三個或不寫參數(shù)對應(yīng)等,解析器都可以正常解析,這是因為中參數(shù)在內(nèi)部是以一個數(shù)組形式來表示,故而不需要關(guān)系傳入?yún)?shù) ECMAScript function的理解 ECMAScript 函數(shù)與其他語言函數(shù)最大的不同在于,其不介意傳入多少參數(shù)以及參數(shù)的類型...

    JerryWangSAP 評論0 收藏0
  • javascript高程3 學(xué)習(xí)筆記(一)

    摘要:元素,當(dāng)瀏覽器不支持腳本數(shù)據(jù)結(jié)構(gòu)有如下中基本數(shù)據(jù)結(jié)構(gòu)操作符,用來檢測給定變量的數(shù)據(jù)類型結(jié)果都是,聲明沒初始化,使用生命變量但未對其進行初始化的,默認沒有進行聲明,傳遞給函數(shù)會導(dǎo)致一個錯誤,對于未聲明變量這么操作沒什么意義比如,也是返回。 javascript簡史 微軟IE和網(wǎng)景在瀏覽器上的競爭 ECMAScript,由ECMA-262定義,提供核心語言功能 `ECMA 歐洲計算機制...

    you_De 評論0 收藏0
  • javascript高程3 學(xué)習(xí)筆記(三)

    摘要:與執(zhí)行環(huán)境相關(guān)的變量對象中有執(zhí)行環(huán)境定義的所有變量和函數(shù)作用域鏈代碼在一個環(huán)境中執(zhí)行,便會創(chuàng)建變量對象的一個作用域鏈。 執(zhí)行環(huán)境 執(zhí)行環(huán)境是什么? javascript的解釋器每次開始執(zhí)行一個函數(shù)時,都會為每個函數(shù)創(chuàng)建一個執(zhí)行環(huán)境(execution context)。 執(zhí)行環(huán)境定義了變量或者函數(shù)有權(quán)訪問的其他數(shù)據(jù),決定了他們各自的行為。 與執(zhí)行環(huán)境相關(guān)的變量對象(...

    avwu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<