日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JavaScript高级程序设计之基本概念篇

發布時間:2024/4/17 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaScript高级程序设计之基本概念篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

日子天天過,啥都能忘,學習不能忘。《JavaScript高級程序設計》這本書之前看過,但是只看了js的部分,其余部分并沒有看。當時想,看看js部分應該夠用了,但最近看了篇文章,受到了很深的打擊,遂決定從頭到尾把高設完整的在看一遍。

基本概念篇是高設第三章的內容,之所以在該章開始,主要是因為前兩章的內容看不看都差不多。既然說是基本概念,講的當然是JavaScript的基礎內容了。內容主要包括語法、數據類型、操作符、流控制語句、函數幾部分。

語法

JavaScript是一門區分大小寫的語言,例如一個變量名num 和 Num,雖然它們是一個單詞,但因為第二個Num的首字母是大寫的,因此JavaScript認為它們兩個是完全不同的變量,不過在正式編程中不建議使用單詞相同,大小寫不同的單詞來作為兩個意義不同的變量,這樣程序寫的過多的時候,很容易混淆。

標識符是個統稱,它表示變量、函數、屬性的名或者函數的參數。通常對標識符進行起名字時,是需要遵循一定規則的。基本上有兩種規則:1、不能以數字開頭,可以是字母、下劃線或者美元符號2、其它字符可以是數組、字母、下劃線、美元符號。當然,標識符的名稱也可以包含Unicode或者ASCII的字母字符,但通常是不建議這樣做的。標識符的名稱書寫格式也有一定的規范,雖然不是強硬的,但一般都遵循此規范,那就是駝峰命名,即名稱的一個單詞都小寫,其余單詞首字母大寫。例:firstChild。

注釋的話,基本沒甚可講的,就是//、/**/兩種注釋方式。

嚴格模式,是ESMA5中出現的,他為JavaScript定義了一種不同的解析方式,一般是在文件的頭部聲明,關鍵字為“use strict”。看上去像字符串,但其實是一個編譯指示。所謂嚴格,就是說對于一些不安全的操作將會拋出異常而不確定的行為也會得到處理。ES6出現后,必須聲明為嚴格模式,才能正常編程,如果用新語法的話,可要注意了。

?語句的話也很簡單,通常一條語句的話以分號結尾,如果多條語句以逗號分隔的話,js視為一條語句。語句的分號如果省略不寫,則解析器會自動確定語句的結尾。雖然可以不寫分號,但從長遠來看,還是不要省略的好。

關鍵字和保留字是js語言已經征用,寫代碼時,不能用來起名字的一組單詞。其中關鍵字包含:break、do、instanceof、typeof、case、else、new、var、catch、finally、return、void、continue、for、switch、while、debugger*、function、this、with、default、if、throw、delete、in、try。保留字就不寫了,想了解的話可以去看書。

變量在編程中是用來存儲數據的,它是松散類型的,用var聲明,在ES6語法中,用const和let取代了var。const俗稱常量,及不可變的量,其值一旦定義,便不可再改變。let則和const相反,它的值是可以隨時改變的,和var不同的是,它沒有了var聲明提前的特點。所謂聲明提前,就是指你的變量無論定義在何處,都相當于在頂部聲明,所以你在變量聲明前使用該變量,也不會報錯。

數據類型

?JavaScript一共擁有六種數據類型,其中五種基本數據類型:Undefined、NULL、Number、String、Boolean,一種復雜數據類型:Object。javaScript不支持自定義數據類型,當然就憑JavaScript的動態性,完全是沒有必要去自定義數據類型,六種數據類型很夠用了。

?typeof操作符是用來檢測變量數據類型的,它會以字符串的方式返回變量的數據類型。例如Number數據類型的變量就會返回"number",當然typeof也有發神經的時候,比如NULL數據類型,typeof返回”object“,因為NULL被認為是空對象引用。

Undefined數據類型只有一個值,就是undefined,通常作為聲明但沒有賦值的變量的值,當然可以為變量顯示聲明undefined,但這是完全沒有必要的。對于未定義的變量,如果檢測數據類型的話,也會返回undefined,因此聲明的時候就賦值,是一個明智的做法,這樣就可以成功的檢測變量是不是未定義的。雖然未定義的變量,類型檢測也返回undefined,但他與聲明過為賦值的變量不同,它只能進行檢測數據類型這一種操作,進行其它操作會產生錯誤。

Null數據類型也只有一個值null,用來表示空對象指針,而這也是它用typeof檢測時返回''object"的原因。null和undefined比較的時候,用==的話,因為會自動轉換,所以會返回true。但是它們完全是兩個不同的東西,這點需要注意。

Boolean數據類型有兩個值,ture和false。在判斷中0和1會產生與Boolean類型一樣的作用,都可以判斷真假,但是Boolean的true和false卻和1和0不是一回事,也就是說true不一定等于1,false也不一定等于0.使用Boolean()可以對其它的數據類型進行顯示的Boolean轉換。

Number數據類型指的是數字。在js中,采用IEEE754來表示整數和浮點數。字面量格式有十進制、八進制、十六進制。八進制的字面量以0開頭,例070,065。十六進制以0x開頭,例0xffff,0x1a。再嚴格模式下八進制字面量是無效的,會導致錯誤。在進行計算的時候,八進制和十六進制都會轉換成十進制。浮點數就是常見的小數,它所占的內存空間是整數的兩倍,所以js會捉住一切機會,把它轉換成整數。而且浮點數的算數運算精度也不如整數,例如0.1+0.2的值不是0.3,而是0.30000000000000004,因此盡量不要用浮點數做高精度的運算。js的數值的表示是有范圍的,一旦超過該范圍,就會返回infinity,當得到此值的時候,將無法繼續運算。js中有一個isFinite()函數,可以用來判斷數值是不是已經超過范圍,未超過的話返回true,超過的話返回false。NaN是一個特殊的數值,含義為非數字,用來表示不能正常返回數值的情況,例如0除以0會返回NaN。NaN和誰都是不相等的,包括自己。js中,用isNaN()函數來檢測值是不是NaN。是NaN的話為true,不是為false。數值轉換的方法,Number要比Boolean要多,有Number()、parseInt()和parseFloat()。Number()可以把任何類型轉換為數值,其參數如果是undefined、或者字符串中包含非數字字符皆返回NaN。parseInt()和parseFloat()只能轉換字符串數值。

String數據類型是有多個字符組成的,可以用單引號也可以用 雙引號表示。它是不可變的,也就是說,一旦聲明,就不會發生變化,變量每次賦值,都會銷毀老值,然后用新字符串進行填充。其它類型轉換為字符串的話可以調用toString()方法,null和undefined例外,不過null和undefined可以通過String()函數轉換為字符串類型。

操作符

一元操作符包含++、--、+、-。++、--操作符可以前置,也可以后置。前置的話會先進行計算,再返回值。后置的話,單個運算的話和前置++沒有區別,但是還包含其它運算的話,區別就會顯現出來,后置++會把值返回后,在進行計算。+、-操作符,含義和數學含義相同,表示正數和負數。

布爾操作符包含!、&&和||,主要用于判斷中。!會對操作的數據類型,進行求反操作,也就是說操作類型為ture,用了!結果就會變為false。&&中文意思并且,表示兩件事都是真的時候,結果為真,一旦有一個為假,則結果為假。如果一上來第一件事情就為假,則不在對第二件事情的真假進行驗證。||中文意思或者,表示一旦有一方為真,則結果為真,除非都是假,結果才為假。||始終返回最右側點的值。

乘性操作符包含*、/、%。*就是數學計算中的乘法。/就是數學計算中的除法。%會在計算中進行求余計算,并返回余數。

加性操作符包含+、-。+的話有點復雜,因為它不僅會執行正常的+發運算,還會執行字符串拼接。也就是說如果兩邊值是字符串的話,它不會執行+法運算,而是執行字符串拼接。如果有一方是字符串的話,仍然執行拼接運算。-的話,則就執行常規的-法運算。

關系操作符包含>、<、>=、<=.主要用于比較操作,結果為Boolean類型。如果是數值進行比較的話,正常比較大小。如果是字符串的話,則比較的是字符串對應的字符編碼的大小。

相等操作符包含==、!=、===、!==。==、!=執行操作的時候會執行類型轉換,而===、!==則不會。因此建議使用===、!==。

條件操作符格式為?:。前邊為條件,中間和最右側為要執行條件。執行時,會根據前邊條件的結果,決定執行中間部分還是右側部分。

賦值操作符用于把右側的值賦給變量,用=號表示。

逗號操作符可以使多條語句變為一條語句執行,例let _a = 3,c=4;

流控制語句

?if語句表示如果條件滿足,則執行if塊里邊的語句,不滿足則執行else塊里邊的語句。

do-while語句是后測試循環語句,就是不管條件滿不滿足,都會執行一次塊里的語句,之后在通過條件判斷是否還執行。例do{}while(i!=3);

while語句是前測試循環語句,就是說語句塊的語句,必須在條件滿足的情況下,才會連續執行。

for語句也是前測試循環語句,但它擁有初始化變量,和定義循環后要執行的代碼的能力。

for-in語句是迭代語句,用來迭代對象的可枚舉屬性

label語句一般編程中也不會用到,使用它可以在代碼中添加標簽。

break和continue語句都有跳出的意思break表示立即跳出循環,執行后邊的語句。continue則表示跳出當前這次循環,進行下次循環

with語句是已經被拋棄的語句,所以不在闡述。

switch語句和if語句類似都是條件語句,與if不同的是,起條件的結果不一定是Boolean數據類型,也可以是其它數據類型。

for of語句是ES6中出現的語句,也是循環語句,可以循環任何數據類型,只要它實現了iterator接口,是目前為止,js中最強大的循環語句。雖然知道,但我具體沒有用過。

轉載于:https://www.cnblogs.com/wangyinqian/p/7705428.html

總結

以上是生活随笔為你收集整理的JavaScript高级程序设计之基本概念篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。