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

資訊專欄INFORMATION COLUMN

JavaScript學(xué)習(xí)總結(jié)(一)基礎(chǔ)部分

AlanKeene / 3063人閱讀

摘要:前綴規(guī)范每個(gè)局部變量都需要有一個(gè)類型前綴,按照類型可以分為表示字符串。例如,表示以上未涉及到的其他對(duì)象,例如,表示全局變量,例如,是一種區(qū)分大小寫的語(yǔ)言。布爾值與字符串相加將布爾值強(qiáng)制轉(zhuǎn)換為字符串。

基本概念

javascript是一門解釋型的語(yǔ)言,瀏覽器充當(dāng)解釋器。js執(zhí)行時(shí),在同一個(gè)作用域內(nèi)是先解釋再執(zhí)行。解釋的時(shí)候會(huì)編譯functionvar這兩個(gè)關(guān)鍵詞定義的變量,編譯完成后從上往下執(zhí)行并向變量賦值。

區(qū)分大小寫

ECMASCript中的一切(包括變量,函數(shù)名和操作符)都區(qū)分大小寫。

1. 變量

變量在第一次用到時(shí)就設(shè)置于內(nèi)存中,便于后來(lái)在腳本中引用。使用變量之前先進(jìn)行聲明。可以使用 var 關(guān)鍵字來(lái)進(jìn)行變量聲明。

var count, amount, level; // 用單個(gè) var 關(guān)鍵字聲明的多個(gè)聲明。

變量命名

變量名包括全局變量,局部變量,類變量,函數(shù)參數(shù)等等,他們都屬于這一類。

變量命名都以類型前綴+有意義的單詞組成,用駝峰式命名法增加變量和函式的可讀性。例如:sUserName,nCount。

前綴規(guī)范:
每個(gè)局部變量都需要有一個(gè)類型前綴,按照類型可以分為:

s:表示字符串。例如:sName,sHtml;
n:表示數(shù)字。例如:nPage,nTotal;
b:表示邏輯。例如:bChecked,bHasLogin;
a:表示數(shù)組。例如:aList,aGroup;
r:表示正則表達(dá)式。例如:rDomain,rEmail;
f:表示函數(shù)。例如:fGetHtml,fInit;
o:表示以上未涉及到的其他對(duì)象,例如:oButton,oDate;
g:表示全局變量,例如:gUserName,gLoginTime;

JScript 是一種區(qū)分大小寫的語(yǔ)言。創(chuàng)建合法的變量名稱應(yīng)遵循如下規(guī)則:

注意第一個(gè)字符不能是數(shù)字。

后面可以跟任意字母或數(shù)字以及下劃線,但不能是空格
變量名稱一定不能是 保留字。

javascript是一種弱類型語(yǔ)言,JavaScript 會(huì)忽略多余的空格。您可以向腳本添加空格,來(lái)提高其可讀性。

varjavascript的保留字,表明接下來(lái)是變量說(shuō)明,變量名是用戶自定義的標(biāo)識(shí)符,變量之間用逗號(hào)分開。

如果聲明了一個(gè)變量但沒有對(duì)其賦值,該變量存在,其值為Jscriptundefined。

強(qiáng)制類型轉(zhuǎn)換

Jscript 中,可以對(duì)不同類型的值執(zhí)行運(yùn)算,不必?fù)?dān)心 JScript 解釋器產(chǎn)生異常。相反,JScript 解釋器自動(dòng)將數(shù)據(jù)類型之一改變(強(qiáng)制轉(zhuǎn)換)為另一種數(shù)據(jù)類型,然后執(zhí)行運(yùn)算。例如:

運(yùn)算                    結(jié)果

數(shù)值與字符串相加    將數(shù)值強(qiáng)制轉(zhuǎn)換為字符串。
布爾值與字符串相加    將布爾值強(qiáng)制轉(zhuǎn)換為字符串。
數(shù)值與布爾值相加    將布爾值強(qiáng)制轉(zhuǎn)換為數(shù)值。

要想顯式地將字符串轉(zhuǎn)換為整數(shù),使用 parseInt 方法。要想顯式地將字符串轉(zhuǎn)換為數(shù)字,使用 parseFloat 方法。

JavaScript 變量的生存期:當(dāng)您在函數(shù)內(nèi)聲明了一個(gè)變量后,就只能在該函數(shù)中訪問該變量。當(dāng)退出該函數(shù)后,這個(gè)變量會(huì)被撤銷。這種變量稱為本地變量。您可以在不同的函數(shù)中使用名稱相同的本地變量,這是因?yàn)橹挥新暶鬟^變量的函數(shù)能夠識(shí)別其中的每個(gè)變量。
如果您在函數(shù)之外聲明了一個(gè)變量,則頁(yè)面上的所有函數(shù)都可以訪問該變量。這些變量的生存期從聲明它們之后開始,在頁(yè)面關(guān)閉時(shí)結(jié)束。

js變量思維導(dǎo)圖

2.js的數(shù)據(jù)類型

jscript 有三種->主要數(shù)據(jù)類型、兩種->復(fù)合數(shù)據(jù)類型和兩種->特殊數(shù)據(jù)類型。

主要(基本)數(shù)據(jù)類型
字符串
數(shù)值
布爾
復(fù)合(引用)數(shù)據(jù)類型
對(duì)象
數(shù)組
特殊數(shù)據(jù)類型
 Null

`Undefined`

字符串?dāng)?shù)據(jù)類型:字符串?dāng)?shù)據(jù)類型用來(lái)表示 JScript 中的文本。在js中,雖然雙引號(hào)("")和單引號(hào)("")均可表示字符串,而且它們幾乎沒有任何區(qū)別。但只使用雙引號(hào)("")來(lái)表示字符串被認(rèn)為是最佳的。

一個(gè)字符串值是排在一起的一串零或零以上的 Unicode 字符(字母、數(shù)字和標(biāo)點(diǎn)符號(hào))。

什么是Unicode?

Unicode為每個(gè)字符都提供了唯一的數(shù)值,不管是什么平臺(tái)、什么程序或什么語(yǔ)言。開發(fā)unicode是為了給處理世界上存在的所有字符提供統(tǒng)一的編碼。

數(shù)值數(shù)據(jù)類型

我們需要明白一點(diǎn),JScript 內(nèi)部將所有的數(shù)值表示為浮點(diǎn)值,因此,在 Jscript 中整數(shù)和浮點(diǎn)值沒有差別。

Boolean數(shù)據(jù)類型

布爾(邏輯)只能有兩個(gè)值:truefalse。

js數(shù)組和對(duì)象

詳情看我這篇文章->javascript學(xué)習(xí)總結(jié)— —數(shù)組和對(duì)象部分

Null 數(shù)據(jù)類型:可以通過給一個(gè)變量賦 null 值來(lái)清除變量的內(nèi)容。

Jscripttypeof 運(yùn)算符將報(bào)告 null 值為 Object 類型,而非類型 null。



    
 
 



null用來(lái)表示尚未存在的對(duì)象,常用來(lái)表示函數(shù)企圖返回一個(gè)不存在的對(duì)象。

Undefined 數(shù)據(jù)類型:

如下情況將返回 undefined 值:

對(duì)象屬性不存在,
聲明了變量但從未賦值。

null和undefined的區(qū)別
alert(typeof undefined); //output "undefined"  
alert(typeof null); //output "object"  
alert(null == undefined); //output "true" 

ECMAScript認(rèn)為undefined是從null派生出來(lái)的,所以把它們定義為相等的。

alert(null === undefined); //output "false"  
alert(typeof null == typeof undefined); //output "false"  

nullundefined的類型是不一樣的,所以輸出"false"。而===代表絕對(duì)等于,在這里null === undefined輸出false

另外,這里介紹一種比較重要的數(shù)據(jù)類型——引用數(shù)據(jù)類型

引用數(shù)據(jù)類型

javascript引用數(shù)據(jù)類型是保存在堆內(nèi)存中的對(duì)象,JavaScript不允許直接訪問堆內(nèi)存空間中的位置和操作堆內(nèi)存空間,只能通過操作對(duì)象在棧內(nèi)存中的引用地址。所以引用類型的數(shù)據(jù),在棧內(nèi)存中保存的實(shí)際上是對(duì)象在堆內(nèi)存中的引用地址。通過這個(gè)引用地址可以快速查找到保存在堆內(nèi)存中的對(duì)象。

下面我們來(lái)演示這個(gè)引用數(shù)據(jù)類型賦值過程

自然,給obj2添加name屬性,實(shí)際上是給堆內(nèi)存中的對(duì)象添加了name屬性,obj2obj1在棧內(nèi)存中保存的只是堆內(nèi)存對(duì)象的引用地址,雖然也是拷貝了一份,但指向的對(duì)象卻是同一個(gè)。故而改變obj2引起了obj1的改變。

基本類型值指的是那些保存在棧內(nèi)存中的簡(jiǎn)單數(shù)據(jù)段,即這種值完全保存在內(nèi)存中的一個(gè)位置。
引用類型值則是指那些保存在堆內(nèi)存中的對(duì)象,即變量中保存的實(shí)際上只是一個(gè)指針,這個(gè)指針指向內(nèi)存中的另一個(gè)位置,該位置保存對(duì)象。
簡(jiǎn)而言之,堆內(nèi)存存放引用值,棧內(nèi)存存放固定類型值。

ECMAScript 中,變量可以存在兩種類型的值,即原始值和引用值。
原始值存儲(chǔ)在棧(stack)中的簡(jiǎn)單數(shù)據(jù)段,也就是說(shuō),它們的值直接存儲(chǔ)在變量訪問的位置。引用值存儲(chǔ)在堆(heap)中的對(duì)象,也就是說(shuō),存儲(chǔ)在變量處的值是一個(gè)指針(point),指向存儲(chǔ)對(duì)象的內(nèi)存處。

4.js流程控制

對(duì)于js流程控制語(yǔ)句,這里只講幾個(gè)比較難懂的。其他不贅述。等下附上一張思維導(dǎo)圖。
1.for...in 語(yǔ)句對(duì)應(yīng)于一個(gè)對(duì)象的每個(gè),或一個(gè)數(shù)組的每個(gè)元素,執(zhí)行一個(gè)或多個(gè)語(yǔ)句。

for (variable in [object | array])
statements 

參數(shù):

variable:必選項(xiàng)。一個(gè)變量,它可以是 object 的任一屬性或 array 的任一元素。
object, array:可選項(xiàng)。要在其上遍歷的對(duì)象或數(shù)組。
statement:可選項(xiàng)。相對(duì)于 object 的每個(gè)屬性或 array 的每個(gè)元素,都要被執(zhí)行的一個(gè)或多個(gè)語(yǔ)句??梢允菑?fù)合語(yǔ)句。

雖然條件控制語(yǔ)句(如if語(yǔ)句)只在執(zhí)行多條語(yǔ)句的情況下才要求使用代碼塊(左花括號(hào)"{"開頭,右花括號(hào)"}"結(jié)尾),但最佳實(shí)踐是始終使用代碼塊。

if(args)
    alert(args);//容易出錯(cuò)
    
if(args){
    alert(args);//推薦使用
}


js流程控制語(yǔ)句思維導(dǎo)圖

5.js函數(shù)

函數(shù)是由事件驅(qū)動(dòng)的或者當(dāng)它被調(diào)用時(shí)執(zhí)行的可重復(fù)使用的代碼塊。

Jscript 支持兩種函數(shù):一類是語(yǔ)言內(nèi)部的函數(shù),另一類是自己創(chuàng)建的。
JavaScript 函數(shù)允許沒有參數(shù)(但包含參數(shù)的小括號(hào)不能省略),也可以向函數(shù)傳遞參數(shù)供函數(shù)使用。

更多關(guān)于函數(shù)的知識(shí)請(qǐng)?jiān)L問我的另一篇文章:javascript學(xué)習(xí)大總結(jié)(四)function函數(shù)部分

對(duì)象的組成
方法——函數(shù):過程、動(dòng)態(tài)的
屬性——變量:狀態(tài)、靜態(tài)的

最后,再附上一張前輩總結(jié)的思維導(dǎo)圖:

我的相關(guān)文章:

javascript學(xué)習(xí)總結(jié)(二)數(shù)組和對(duì)象部分
javascript學(xué)習(xí)總結(jié)(三)BOM和DOM詳解
javascript學(xué)習(xí)總結(jié)(四)function函數(shù)部分
javascript學(xué)習(xí)總結(jié)(五)原型和原型鏈
javascript學(xué)習(xí)總結(jié)(六)數(shù)據(jù)類型和JSON格式

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

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

相關(guān)文章

  • 基礎(chǔ)鞏固:JavaScript基礎(chǔ)總結(jié)(基本概念篇)

    摘要:基礎(chǔ)鞏固基礎(chǔ)總結(jié)使用已經(jīng)好幾年了,由于工作主要是做服務(wù)端開發(fā),在工作中逐漸發(fā)現(xiàn)的使用范圍原來(lái)越廣泛。這里要注意,務(wù)必將基礎(chǔ)部分掌握牢靠,磨刀不誤砍柴功,只有將基礎(chǔ)部分掌握并建立起系統(tǒng)的知識(shí)體系,在后面學(xué)習(xí)衍生的其他模式才能游刃有余。 基礎(chǔ)鞏固:JavaScript基礎(chǔ)總結(jié) 使用JavaScript已經(jīng)好幾年了,由于工作主要是做服務(wù)端開發(fā),在工作中逐漸發(fā)現(xiàn)JavaScript的使用范圍原...

    YuboonaZhang 評(píng)論0 收藏0
  • Javascript學(xué)習(xí)總結(jié) - JS基礎(chǔ)系列三

    摘要:案例每隔毫秒調(diào)用函數(shù)并顯示時(shí)間。當(dāng)點(diǎn)擊按鈕時(shí),停止時(shí)間代碼如下計(jì)時(shí)器每隔毫秒調(diào)用函數(shù),并將返回值賦值給計(jì)時(shí)器計(jì)時(shí)器,在載入后延遲指定時(shí)間后去執(zhí)行一次表達(dá)式僅執(zhí)行一次。該值標(biāo)識(shí)要取消的延遲執(zhí)行代碼塊。 簡(jiǎn)述 本系列將持續(xù)更新Javascript基礎(chǔ)部分的知識(shí),誰(shuí)都想掌握高端大氣的技術(shù),但是我覺得沒有一個(gè)扎實(shí)的基礎(chǔ),我認(rèn)為一切高階技術(shù)對(duì)我來(lái)講都是過眼云煙,要成為一名及格的前端工程師,必須把...

    zlyBear 評(píng)論0 收藏0
  • Javascript學(xué)習(xí)總結(jié) - JS基礎(chǔ)系列

    摘要:變量定義變量使用關(guān)鍵字變量名變量名可以任意取名,但要遵循命名規(guī)則變量必須使用字母下劃線或者美元符開始。語(yǔ)法參數(shù)說(shuō)明在消息對(duì)話框中要顯示的文本返回值值。返回值點(diǎn)擊確定按鈕,文本框中的內(nèi)容將作為函數(shù)返回值。 簡(jiǎn)述 本系列將持續(xù)更新Javascript基礎(chǔ)部分的知識(shí),誰(shuí)都想掌握高端大氣的技術(shù),但是我覺得沒有一個(gè)扎實(shí)的基礎(chǔ),我認(rèn)為一切高階技術(shù)對(duì)我來(lái)講都是過眼云煙,要成為一名及格的前端工程師,必...

    Meils 評(píng)論0 收藏0
  • 前端開發(fā)-從入門到Offer - 收藏集 - 掘金

    摘要:一些知識(shí)點(diǎn)有哪些方法方法前端從入門菜鳥到實(shí)踐老司機(jī)所需要的資料與指南合集前端掘金前端從入門菜鳥到實(shí)踐老司機(jī)所需要的資料與指南合集歸屬于筆者的前端入門與最佳實(shí)踐。 工欲善其事必先利其器-前端實(shí)習(xí)簡(jiǎn)歷篇 - 掘金 有幸認(rèn)識(shí)很多在大廠工作的學(xué)長(zhǎng),在春招正式開始前為我提供很多內(nèi)部推薦的機(jī)會(huì),非常感謝他們對(duì)我的幫助?,F(xiàn)在就要去北京了,對(duì)第一份正式的實(shí)習(xí)工作也充滿期待,也希望把自己遇到的一些問題和...

    sf_wangchong 評(píng)論0 收藏0
  • 前端相關(guān)大雜燴

    摘要:希望幫助更多的前端愛好者學(xué)習(xí)。前端開發(fā)者指南作者科迪林黎,由前端大師傾情贊助。翻譯最佳實(shí)踐譯者張捷滬江前端開發(fā)工程師當(dāng)你問起有關(guān)與時(shí),老司機(jī)們首先就會(huì)告訴你其實(shí)是個(gè)沒有網(wǎng)絡(luò)請(qǐng)求功能的庫(kù)。 前端基礎(chǔ)面試題(JS部分) 前端基礎(chǔ)面試題(JS部分) 學(xué)習(xí) React.js 比你想象的要簡(jiǎn)單 原文地址:Learning React.js is easier than you think 原文作...

    fuyi501 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<