JavaScript基礎
JavaScript不難,但是對於初學者來講比較的怪異。
是一種客戶端語言,在瀏覽器執行的。是一種腳本語言,直接就能解釋執行的叫腳本代碼。像dos命令還有SQL也是。
為什么要引用JavaScript語言呢?HTML沒有計算能力。為什么不用C#中的代碼來完成呢?C#得通過網絡,一通過網絡就慢了。
JS是非常靈活的動態語言,不像C#等靜態語言那樣嚴謹。數據類型不固定。建議不去使用VS2010里面關於JS的智能提示。
JavaScript基本組成
基本語法ECMAScript
Dom(文檔對象模型)
Bom(瀏覽器對象,有兼容性的問題)
語法概述
大小寫敏感
弱類型語言(聲明變量都用var)JS當中的字符串推薦使用單引號,當然用雙引號也行。當C#和JS遇見的時候就不會尷尬了。每句話后面要跟分號。
C#和JS中的注釋一樣,但是推薦使用//單行注釋。(因為在使用正則表達式的時候會有問題)。

一、新建HTML頁

二、選擇語言JS代碼

三、alert 內置方法

四、聲明變量,及同時聲明多個變量

五、顯示當前時間
<script 兩下tab鍵
整個一行<script type=”text/javascript”>就出來了。

六、標簽<script>可以放的位置

七、不能再插入一個</script>
下面我們看看如果我把JS文件寫到另外一個頁面上時,怎么加載。

八、Jscript
在Jscript中專門寫JS的代碼。然后進行添加。

九、外部引用
還可以連接入外部網站的JS,這樣功能就非常的強大了。一般當連入大量的JS的時候都是把這段代碼寫在最后,讓用戶感覺不到慢。
下面我們看看JS當中的事件:

十、按鈕的單擊事件(更新圖片)

十一、單擊一個超鏈接顯示當前時間
一個特殊的地方:單擊一個超鏈接顯示當前時間。
<a href=“javascript:js代碼”>熱點文字</a>
只有超鏈接的href中的JavaScript中才需要加“javascript:”,因為它不是事件,而是把”javascript:”看成像“http:”、“ftp:”、“thunder://”、“ed2k://”、“mailto:”一樣的網絡協議,交由js解析引擎處理。只有href中這是,這是一個特例。

十二、失去焦點事件
變量命名規則:以字母、下划線或$開頭,中間可以包括字母、數字、下划線或$。(變量命名中多了一個$)
jS中的數據類型
Boolean(布爾)、Number(數字)、String(字符串)、Undefined(未定義)、Null(空對象)、Object(對象類型),undefined與其他值計算得到的結果不是我們想要的,但與數據庫中的null稍有區別,比如與數字計算或與字符串計算結果。
除了Object是引用類型以外,其他都是基本數據類型
Undefined類型、Null類型都是只有一個值的數據類型,分別為undefined與null.

十三、用typeof看數據類型
接下來我們看下JS中的null和undefined的區別。

十四、undefined
null表示的是一個已知的值,是一個空對象,與undefined不一樣,undefined表示的是一個未定義的值。

十五、null

十六、==和===
怎么樣轉成布爾類型呢?
alert(Boolean(x));
下面我們再來判斷變量是否可用?

十七、判斷變量是否可用
&& ||表示短路,& | 表示 每個條件都要判斷一下,不存在短路問題。
也可以直接把判斷的方法寫在括號里面。

十八、判斷變量是否可用也可以寫成這樣
接下來我們看下JS中變量的作用域

十九、JS中變量的作用域

二十、聲明變量的時候一般建議都要使用var關鍵字
下面我們看看JS中的轉譯符問題
跟C#中一樣的,
JavaScript中字符串同樣需要轉義符 ’ \ ’,與C#一樣。
想在頁面輸出:c:\windows\microsoft\vs.txt,這句話,需要這樣寫:alert(‘c:\\windows\\microsoft\\vs.txt’);不能用@,@只在C#中有效。
常見轉義符:\t、\n、\’、\”、\\
在用正則表達式的時候也會遇到轉義符問題。
注:switch判斷時,是“全等於”,===
接下來我們看下類型轉換:
第一種是字符串轉到整數

二十一、字符串到整數

二十二、轉換小數
把任意的類型轉換成對應的類型。

二十三、任意類型轉換成對應的類型

二十四、調eval
下面重點講解通過瀏覽器來調試JS代碼。

二十五、VS中調試第一步

二十六、VS中調試第二步
用VS調試,需要保證默認的瀏覽器是IE6以上版本。

二十七、通過IE瀏覽器進行調試
目前火狐瀏覽器是JS調試最好的工具。

二十八、Firebug
如果沒有的話,可以上網下載一個,具體步驟如下:

二十九、Firebug的安裝
下面我們看看怎么在火狐中進行調試呢?

三十、在火狐中的調試過程
下面講下函數聲明:

三十一、js中方法的寫法
Js中沒有方法的重載,所以下面一段代碼的結果是這樣子的。

三十二、js中沒有方法的重載
如果我想實現多個數求和的功能,又沒有方法的重載怎么辦呢?
arguments里面是我們傳的參數,既然arguments里面都是我們
傳的參數,所以我們寫了個循環。

三十三、arguments
接下來我們看下匿名函數:
沒有方法名就是匿名函數,沒有方法名,我們怎么調用呢?

三十四、匿名函數的第一種寫法

三十五、匿名函數的第二種寫法
接下來我們看下閉包:

三十六、閉包
什么是“閉包”?
在一個函數內部又定義了一個函數,內部函數函數能訪問外部函數作用域范圍內的變量,這時這個內部函數就叫做閉包。無論這個內部函數在哪里被調用都能訪問的到外部函數作用域中的那些變量。
“閉包”是怎么實現的?
通過作用域鏈
“閉包”能做什么?
Js中的面向對象都是用“閉包”來模擬的。

三十七、用函數來模擬
接下來我們看看JS面向對象:
現在JS中的面向對象實際上還是用函數來模擬,為了便於大家的理解,我們還是用類,和對象來闡述。

三十八、面向對象的object寫法

三十九、自己寫的面向對象

四十、通過構造函數寫屬性
接下來我們看看JS中的字符串:

四十一、字符串的長度和根據索引找到指定的字符

四十二、indexof

四十三、split
作者近期文章列表:
| C#基礎教程(完全免費,獻給代碼愛好者的最好禮物。注:本作者分享自己精心整理的C#基礎教程,無任何商業目的。 希望與更多的代碼愛好者交流心得,也請高手多多指點!!!) |
|
| SQL數據庫 ADO.net | 數據庫的應用圖解一 |
| 數據庫的應用詳解二 | |
| 面向過程,面向對象中高級 | 面向過程,面向對象的深入理解一 |
| 面向過程,面向對象的深入理解二 | |
| 面向對象的深入理解三 | |
| winform基礎 | Winform基礎 |
| winform中常用的控件 | |
| 面向過程 | 三種循環的比較 |
| C#中的方法(上) | |
| 我們常見的數組 | |
| 面向對象 | 思想的轉變 |
| C#中超級好用的類 | |
| C#中析構函數和命名空間的妙用 | |
| C#中超級好用的字符串 | |
| C#中如何快速處理字符串 | |
| 值類型和引用類型及其它 | |
| ArrayList和HashTable妙用一 | |
| ArrayList和HashTable妙用二 | |
| 文件管理File類 | |
| 多態 | |
| C#中其它一些問題的小節 | |
| GDI+ | 這些年我收集的GDI+代碼 |
| 這些年我收集的GDI+代碼2 | |
| HTML概述 | 你不能忽視的HTML語言 |
| 你不能忽視的HTML語言2精編篇 | |
| 你不能忽視的HTML語言3 | |
