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

首頁 > 編程 > JavaScript > 正文

javascript學習筆記(一)基礎知識

2019-11-20 14:04:40
字體:
來源:轉載
供稿:網友

基本概念

javascript是一門解釋型的語言,瀏覽器充當解釋器。js執行引擎并不是一行一行的執行,而是一段一段的分析執行。 

延遲腳本

HTML4.0.1中定義了defer屬性,它的用途是表明腳本在執行時不會影響頁面的構造。也就是說,腳本會延遲到整個頁面都解析完畢后再執行。因此,在<script>元素中設置defer屬性,相當于告訴瀏覽器立即下載,但延遲執行。在XHTML文檔中,要把defer屬性設置為defer=“defer"

異步腳本

html5為<script>定義了async屬性。整個屬性與defer屬性類似,都用于改變處理腳本的行為。同樣,與defer類似,async只適用于外部腳本文件,并告訴瀏覽器立即下載文件。但與defer不同的是,標記為async的腳本并不保證按照指定他們的先后順序執行。
指定async的目的是不讓頁面等待腳本文件下載和執行,從而異步加載頁面其他內容。因此,建議異步腳本不要再加載期間操作DOM

區分大小寫

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

1. JScript 的變量

變量在第一次用到時就設置于內存中,便于后來在腳本中引用。使用變量之前先進行聲明??梢允褂?var 關鍵字來進行變量聲明。

var count, amount, level; // 用單個 var 關鍵字聲明的多個聲明。

變量命名

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

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

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

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

JScript 是一種區分大小寫的語言。創建合法的變量名稱應遵循如下規則:

注意第一個字符不能是數字。
后面可以跟任意字母或數字以及下劃線,但不能是空格
變量名稱一定不能是 保留字。

javascript是一種弱類型語言,JavaScript 會忽略多余的空格。您可以向腳本添加空格,來提高其可讀性。

varjavascript的保留字,表明接下來是變量說明,變量名是用戶自定義的標識符,變量之間用逗號分開。

如果聲明了一個變量但沒有對其賦值,該變量存在,其值為Jscript 值 undefined。

強制類型轉換

在 Jscript 中,可以對不同類型的值執行運算,不必擔心 JScript 解釋器產生異常。相反,JScript 解釋器自動將數據類型之一改變(強制轉換)為另一種數據類型,然后執行運算。例如:

運算 結果數值與字符串相加  將數值強制轉換為字符串。布爾值與字符串相加  將布爾值強制轉換為字符串。數值與布爾值相加  將布爾值強制轉換為數值。

要想顯式地將字符串轉換為整數,使用 parseInt 方法。要想顯式地將字符串轉換為數字,使用 parseFloat 方法。

JavaScript 變量的生存期:當您在函數內聲明了一個變量后,就只能在該函數中訪問該變量。當退出該函數后,這個變量會被撤銷。這種變量稱為本地變量。您可以在不同的函數中使用名稱相同的本地變量,這是因為只有聲明過變量的函數能夠識別其中的每個變量。
如果您在函數之外聲明了一個變量,則頁面上的所有函數都可以訪問該變量。這些變量的生存期從聲明它們之后開始,在頁面關閉時結束。

js變量思維導圖

2.js的數據類型

jscript 有三種->主要數據類型、兩種->復合數據類型和兩種->特殊數據類型。

主要(基本)數據類型

字符串數值布爾

復合(引用)數據類型

對象數組

特殊數據類型

 Null`Undefined`

字符串數據類型:字符串數據類型用來表示 JScript 中的文本。在js中,雖然雙引號("")和單引號('')均可表示字符串,而且它們幾乎沒有任何區別。但只使用雙引號("")來表示字符串被認為是最佳的。

一個字符串值是排在一起的一串零或零以上的 Unicode 字符(字母、數字和標點符號)。

什么是Unicode?

Unicode為每個字符都提供了唯一的數值,不管是什么平臺、什么程序或什么語言。開發unicode是為了給處理世界上存在的所有字符提供統一的編碼。

數值數據類型

我們需要明白一點,JScript 內部將所有的數值表示為浮點值,因此,在 Jscript 中整數和浮點值沒有差別。

Boolean數據類型

布爾(邏輯)只能有兩個值:true 或 false。

js數組和對象

詳情看我這篇文章->javascript學習總結― ―數組和對象部分

Null 數據類型:可以通過給一個變量賦 null 值來清除變量的內容。

Jscript中 typeof 運算符將報告 null 值為 Object 類型,而非類型 null

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head>  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title></title> <script type="text/javascript">    alert(typeof null); </script></head><body></body></html>

null用來表示尚未存在的對象,常用來表示函數企圖返回一個不存在的對象。

Undefined 數據類型:

如下情況將返回 undefined 值:

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

null和undefined的區別

alert(typeof undefined); //output "undefined" alert(typeof null); //output "object" alert(null == undefined); //output "true" 

ECMAScript認為undefined是從null派生出來的,所以把它們定義為相等的。

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

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

另外,這里介紹一種比較重要的數據類型――引用數據類型

引用數據類型

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

下面我們來演示這個引用數據類型賦值過程

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

基本類型值指的是那些保存在棧內存中的簡單數據段,即這種值完全保存在內存中的一個位置。

而引用類型值則是指那些保存在堆內存中的對象,即變量中保存的實際上只是一個指針,這個指針指向內存中的另一個位置,該位置保存對象。

簡而言之,堆內存存放引用值,棧內存存放固定類型值。

ECMAScript 中,變量可以存在兩種類型的值,即原始值和引用值。
原始值存儲在棧(stack)中的簡單數據段,也就是說,它們的值直接存儲在變量訪問的位置。引用值存儲在堆(heap)中的對象,也就是說,存儲在變量處的值是一個指針(point),指向存儲對象的內存處。

<script type="text/javascript”>var box = new Object(); //創建一個引用類型var box = "lee";  //基本類型值是字符串box.age = 23;  //基本類型值添加屬性很怪異,因為只有對象才可以添加屬性。alert(box.age); //不是引用類型,無法輸出;</script>

3.JScript 的運算符

優先級:指運算符的運算順序,通俗的說就是先計算哪一部分。
結合性:同一優先級運算符的計算順序,通俗的說就是從哪個方向算起,是左到右還是右到左。

數據類型轉換

String() 轉換為字符串類型
Number() 轉換為數字類型
Boolean() 轉換為布爾類型

parseInt:將字符串轉換為整數。從字符串的開頭開始解析,在第一個非整數的位置停止解析,并返回前面讀到所有的整數。如果字符串不是以整數開頭的,將返回NaN。如:parseInt(“150 hi”)返回的值是:150,parseInt("hi")返回的值是:NaN。
parseFloat:將字符串轉換為浮點數。 從字符串的開頭開始解析,在第一個非整數的位置停止解析,并返回前面讀到所有的整數。如果字符串不是以整數開頭的,將返回NaN。如:parseFloat("15.5 hi") 返回的值是:15.5,parseFloat("hi 15.5")返回的值是:NaN。

eval:將字符串作為javascript表達式進行計算,并返回執行結果,如果沒有結果則返回undefined。

4.js流程控制

對于js流程控制語句,這里只講幾個比較難懂的。其他不贅述。等下附上一張思維導圖。
1.for...in 語句對應于一個對象的每個,或一個數組的每個元素,執行一個或多個語句。

for (variable in [object | array])statements 

參數:

variable:必選項。一個變量,它可以是 object 的任一屬性或 array 的任一元素。
object, array:可選項。要在其上遍歷的對象或數組。
statement:可選項。相對于 object 的每個屬性或 array 的每個元素,都要被執行的一個或多個語句。可以是復合語句。

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

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


js流程控制語句思維導圖

5.js函數

函數是由事件驅動的或者當它被調用時執行的可重復使用的代碼塊。

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

更多關于函數的知識請訪問我的另一篇文章:javascript學習大總結(四)function函數部分

對象的組成

方法――函數:過程、動態的屬性――變量:狀態、靜態的

最后,再附上一張前輩總結的思維導圖:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲美女精品久久久| 日韩精品高清在线观看| 久久精品亚洲精品| 欧美日韩国产区| 日韩av网站大全| 动漫精品一区二区| 久久久精品久久久久| 亚洲美女自拍视频| 亚洲国产精品小视频| 国产精品成人久久久久| 日韩欧美在线一区| 性视频1819p久久| 国产精品v片在线观看不卡| 红桃av永久久久| 中文字幕视频在线免费欧美日韩综合在线看| 欧美精品一本久久男人的天堂| 国产精品大陆在线观看| 午夜免费在线观看精品视频| 欧美肥臀大乳一区二区免费视频| 亚洲欧美国产精品| 亚洲国产精久久久久久| 日韩av一区二区在线| 久久99国产综合精品女同| 精品久久久久久久久久久久| 国产成人在线亚洲欧美| 久久久成人的性感天堂| 国产精品草莓在线免费观看| 精品国产网站地址| 亚洲国产成人精品女人久久久| 久久久www成人免费精品| 91经典在线视频| 黑人极品videos精品欧美裸| 国产精品久久久久av| 色妞一区二区三区| 日韩电视剧在线观看免费网站| 91久久久久久久| 日韩成人性视频| 欧美性生活大片免费观看网址| 91视频-88av| 国产一区二区丝袜| 狠狠躁夜夜躁人人爽超碰91| 日韩视频免费在线观看| 日韩精品亚洲视频| 久久久国产精彩视频美女艺术照福利| 欧美精品在线免费播放| 国产精品久久久久久久久久| 中文字幕亚洲一区二区三区| 亚洲精品v欧美精品v日韩精品| 欧美极品欧美精品欧美视频| 欧美日韩亚洲网| 久久99国产精品自在自在app| 成人免费观看a| 丝袜情趣国产精品| 日韩av免费看网站| 久久久久久久电影一区| 亚洲精品久久久久中文字幕欢迎你| 久久成年人免费电影| 88xx成人精品| 国内精品久久久久久久| 神马久久久久久| 91九色蝌蚪国产| 毛片精品免费在线观看| 懂色av影视一区二区三区| 欧美—级高清免费播放| 2021久久精品国产99国产精品| 亚洲国产精品久久久久秋霞不卡| 成人激情在线播放| 欧美亚州一区二区三区| 日韩中文在线观看| 国产免费一区视频观看免费| 欧美成人四级hd版| 亚洲www在线| 欧美日韩国产中文字幕| 欧美性xxxx18| 亚洲а∨天堂久久精品9966| 国产91成人在在线播放| 国产成人一区三区| 最近2019中文字幕大全第二页| 日韩大胆人体377p| 中文字幕v亚洲ⅴv天堂| 美女999久久久精品视频| 韩国国内大量揄拍精品视频| 美女少妇精品视频| 国产精品va在线播放| 亚洲欧美激情另类校园| 黑人欧美xxxx| 亚洲成色777777在线观看影院| 亚洲精品电影在线观看| 国产精品av免费在线观看| 精品国产欧美一区二区三区成人| 国产精品爱啪在线线免费观看| 亚洲精品视频久久| 国产成人综合亚洲| 中文字幕精品一区二区精品| 日韩电影免费观看在线| 亚洲欧美三级伦理| 国产精欧美一区二区三区| 亚洲国产精品中文| 日韩av电影免费观看高清| 在线看国产精品| 久久久免费观看| 国产日韩av高清| 亚洲精品一二区| 日韩亚洲欧美中文高清在线| 亚洲美女在线观看| 97超视频免费观看| 欧美孕妇孕交黑巨大网站| 亚洲а∨天堂久久精品9966| 亚洲午夜女主播在线直播| 国产91ⅴ在线精品免费观看| 美女av一区二区三区| 国产免费久久av| 国内免费精品永久在线视频| 色999日韩欧美国产| 国产精品大片wwwwww| 国产精品视频一| 欧美三级免费观看| 日韩av在线资源| 亚洲精品久久久一区二区三区| 亚洲女人被黑人巨大进入al| 日韩最新在线视频| 亚洲va久久久噜噜噜| 麻豆国产精品va在线观看不卡| 久久久久成人精品| 岛国av一区二区在线在线观看| 国产精品精品视频| 精品国产一区二区三区在线观看| 亚洲色图欧美制服丝袜另类第一页| 最新国产成人av网站网址麻豆| 国产精品久久久久久亚洲影视| 日韩欧美国产中文字幕| 日韩一区二区久久久| 国产精品成人一区二区三区吃奶| 中文字幕日韩av电影| 国产在线999| 国产精品视频白浆免费视频| 97色在线观看免费视频| 久久精品国产精品| 日韩中文字幕久久| 精品久久久久久国产91| 国产日韩欧美91| 国产精品久久久久久久app| 国产精品久久电影观看| 91九色单男在线观看| 色综合91久久精品中文字幕| 国产精品自拍小视频| 日韩色av导航| 亚洲精品白浆高清久久久久久| 久久精品国产2020观看福利| 亚洲视频自拍偷拍| 亚洲男人天堂手机在线| 日本一区二区在线播放| 欧美日韩精品中文字幕| 中文字幕亚洲欧美日韩在线不卡| 91av在线国产| 午夜精品久久久久久久白皮肤| 亚洲国产日韩一区| 日韩中文字幕在线视频| 国产成人av网址| 国产精品久久国产精品99gif| 亚洲人成在线观看网站高清| 亚洲人成77777在线观看网| 亚洲欧洲日本专区| 91精品综合视频|