![Web技術基礎第一章_第1頁](http://file4.renrendoc.com/view10/M02/3E/01/wKhkGWVp0aOARkczAAF2YoQMtBo709.jpg)
![Web技術基礎第一章_第2頁](http://file4.renrendoc.com/view10/M02/3E/01/wKhkGWVp0aOARkczAAF2YoQMtBo7092.jpg)
![Web技術基礎第一章_第3頁](http://file4.renrendoc.com/view10/M02/3E/01/wKhkGWVp0aOARkczAAF2YoQMtBo7093.jpg)
![Web技術基礎第一章_第4頁](http://file4.renrendoc.com/view10/M02/3E/01/wKhkGWVp0aOARkczAAF2YoQMtBo7094.jpg)
![Web技術基礎第一章_第5頁](http://file4.renrendoc.com/view10/M02/3E/01/wKhkGWVp0aOARkczAAF2YoQMtBo7095.jpg)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章Javascript基礎
Javascript是一種小型的,輕量級的,面向對象的,跨平臺的腳本語言,是目前最流行的客戶端編程語言
Javascript的作用是表單有效性的驗證、動態(tài)顯示內容、動態(tài)改變文本格式、動態(tài)改變元素位置等
Javascript是一種解釋性的語言,是HTML網頁的一部分存在,隨著網頁內容的豐富,功能強大,基于瀏覽器的應用已經成為趨勢。Javascript能做什么表單數據驗證動態(tài)HTML用戶交互數據綁定少量數據查找Ajax核心技術(Asynchronous
Javascript
+XML)Javascript如何實現動態(tài)效果
要實現動態(tài)效果,需要訪問和控制瀏覽器部件和頁面文檔中元素的途徑,使Javascript能夠訪問和控制它們,需要使用BOM(Browser
Object
Model)和DOM(DocumentObject
Model)和瀏覽器事件模型
BOM由一組對象組成,它們提供了訪問瀏覽器各種功能部件的途徑,例如瀏覽器窗口本身,瀏覽器歷史等
DOM創(chuàng)建了一組按順序、層次訪問文檔中各種元素的結構化方法。在DOM中,每個元素都成為Javascript可以訪問的對象,既可以讀,也可以改變屬性值Javascript的歷史和發(fā)展
Javascript最初稱為Livescript語言,是由NetScape公司的Brendan
Erich開發(fā)的,是NetScape
Navigator
2.0腳本語言,為了推廣它,用了流行語言Java.
Microsoft推出IE,由于沒有授權,微軟公司的支持的腳本是Jscript,實際是Javascript的克隆
1997年,Javascript
1.1提交給ECMA(European
Computer
Manufacturer’s
Association),ECMA專門成立第39技術委員會來制定Javascript標準,并于1997年6月發(fā)表了第一個正式規(guī)范ECMA-262,由于授權問題,將其命名為ECMAscript.
ECMA網站:http://www.ecma-/publications/standards/Standard.htJavascript與ECMAscriptECMAscript只是一種語言規(guī)范,描述了腳本語言的語法、類型、屬性、方法和對象等內容,而Javascript則是實現
Javascript不是唯一實現ECMAscript規(guī)范的語言,Flash中使用的Actionscript也是ECMAscript的一種實現ECMAscript與瀏覽器無關Javascript語言的特點安全性:
Javascript是一種安全性高的語言,它只能通過瀏覽器實現網絡的訪問和動態(tài)交互,可以有效地防止通過訪問本地硬盤或者將數據存入到服務器,而對網絡文檔或者重要數據進行不正當的操作。Javascript語言的特點易用性:
Javascript是一種腳本的編程語言,沒有嚴格的數據類型,同時是采用小段程序的編寫方式來實現編程的。Javascript語言的特點動態(tài)交互性:
在HTML中嵌入Javascript小程序后,提高了網頁的動態(tài)性。Javascript可以直接對用戶提交的信息在客戶端做出回應。Javascript的出現使用戶與信息之間不再是一種瀏覽與顯示的關系,而是一種實時、動態(tài)、可交互式的關系。Javascript語言的特點跨平臺性:
它的運行環(huán)境與操作系統(tǒng)沒有關系,它是一種依賴瀏覽器本身運行的編程語言,只要安裝了支持Javascript瀏覽器,并且能正常運行瀏覽器的電腦,就可以正確地執(zhí)行
Javascript程序。Javascript常用元素Javascript程序Javascript程序網頁效果數據類型基本類型:數值、字符串、布爾、未定義和空復合型:數組、對象和函數數值型
數值型包括整數和浮點數,所有的數均被作為
64位的浮點數處理。數值可以用十進制或十六進制表示(0x)特殊數據NaN,表示不是數字字符串型由單引號或雙引號括起來的字符串
在雙引號中使用單引號或在單引號中使用雙引號時不需用轉義
在雙引號中使用雙引號或單引號中使用單引號時需用轉義例如:”The
boy
is
name‘John’.”“The
boy
is
name\”John\”.
”\b
//退格
\f
//換頁 \n
//換行
\r
//回車\’//單引號/”//雙引號\\//\\x
XX//十六進制數表示的符號\uXXXX//四位十六進制表示的二進制字符布爾型、undefineed和null兩個可取值:true和false,不區(qū)分大小寫
當一個對象的屬性不存在或變量定義后從未賦值,則返回undefined
不能通過比較來判斷是否變量是undefined,只能通過字符串來比較例如:if(a==undefined)
//errorif(typeof(a)==undefined)
//errorif(typeof(a)=“undefined”)
//right
null是一個值,表示該變量沒有保存有效的數值、字符串、布爾值、數組或對象,可以用其清除變量的內容數組不要求數組類型相同數組長度可以動態(tài)變化
不支持多維數組,但支持數組嵌套,即數組中的元素可以是數組數組定義一、通過Array構造函數定義var
name=new
Array(num);name[0]=元素1;name[1]=元素2;var
name=new
Array();//個數由賦值個數決定(3)var
name=new
Array(元素1,元素2,…..)二、直接賦值var
name=[元素1,元素2,….];數組元素與長度數組中元素類型可以不同長度可以動態(tài)變化var
arr=new
Array(3);可以賦值的個數超過3個
可以用delete刪除數組中的元素,如果輸出被刪除的元素,則顯示undefined數組嵌套不支持多維數組,但支持嵌套 var
arr=new
Array(3); arr[0]=[‘xiao’,3,45]; arr[1]=4;arr[2]=“hi”;document.writer(arr[0][0]);var
arr=[
[‘xiao’,3,45],[4,5,6],“hi”];嵌套可以是多層的不支持類似于c的定義與賦值變
量使用var定義一次可以定義一個或幾個變量變量名必須以字母或下劃線開始區(qū)分大小寫重復定義變量時,后面的覆蓋前面的
在函數之外定義的變量為全局變量,在函數內省略var定義的變量也是全局變量
當函數中定義的局部變量與全局變量重名時,局部變量覆蓋全局變量數據類型轉換
Javascript是弱數據類型語言,可以根據賦值的類型確定數據類型表達式中自動實現數據類型轉換
布爾型轉換:數值0或NaN為false,字符串空串為false,undefined,null為false,布爾值true轉換為數值時,false為0,轉換為字符串是為”true”和”false”
ParseInt()和ParseFloat()強制將字符串轉換成數值,左至右提取數值,遇到非數值為止。如果全部是非數
值,則返回NaN.函
數定義:function
function_name(參數列表){
codesreturn;
}
調用函數時,如果實參數的個數少于形參數個數時,缺少的用undefined代替,如果多于形參數的個數,則忽略
參數可以通過arguments屬性訪問。函數定義中,關鍵字arguments代表一個與當前函數對象對應的數組對象型屬性,實參列表中每個參數是arguments的一個元素,定義函數時可以不制定參數名稱,而在調用時用arguments訪問調用時指定的各個參數函
數function
showInfo(){
if(arguments.length==1)documesnt.write(“您好!”+arguments[0]);if(arguments.length==2)document.write(showInfo.arguemts[0]+”今年”+showInfo.arguments[1]+”歲”);}
showInfo(“小黑“);showInfo(“小黑“,23);函
數在調用函數時,如果將基本數據類型變量作為函數參數,直接將值傳遞給函數,函數內的操作對原變量沒有影響。如果將復合類型變量作為函數參數時,傳遞給函數的是存儲地址,將改變函數外的原變量值例:var
arrName={“Li”,”Zhang”,”Wang”};newName=“He”;functionchangeName(arrA,name){
code;
}changeName(arrName,newName);函
數
不支持函數重載,即如果定義了兩個名字相同的函數,則后面的覆蓋前面的。函數作為數據使用: function
getCube(num1){
return
num1*num1*num1;}var
a=getCube;var
b=a(20);var
arr=Array();arr[0]=getCube;var
c=arr[0](30);匿
名
函
數
當函數被作為數據使用時,函數定義可以直接被指定給變量,數組元素,對象屬性等,而不需要指定名稱var
obj=new
object;obj.func=function(num)
{
returnnum*num*num;}var
n=obj.func(20);函數作為函數的參數函數作為函數的參數<script
language="Javascript">function
getCube(num1){ return
num1*num1*num1;}var
a
=
getCube;var
b
=
a(20);var
arr
=
Array();arr[0]
=
getCube;var
c
=
arr[0](30);document.write(b+","+c);var
obj=new
Object; //定義一個對象obj.func
=
function(num)
{return
num*num*num;};var
n
=obj.func(20);document.write("<br>"+n);函數作為函數的參數function
getMax(number_arr){var
max
=
number_arr[0];for(var
i=0;i<number_arr.length;i++){ if(max
<
number_arr[i])max
=
number_arr[i];
}return
max;
}function
getMin(number_arr){var
min
=
number_arr[0];for(var
i=0;i<number_arr.length;i++){ if(min
>
number_arr[i])min
=
number_arr[i];
}return
min;
}函數作為函數的參數function
getSum(number_arr){var
sum
=
0;for(var
i=0;i<number_arr.length;i++){
sum
+=
number_arr[i];
}return
sum;
}function
getAvg(number_arr){var
sum
=
0;for(var
i=0;i<number_arr.length;i++){ sum
+=
number_arr[i];
}return
sum/number_arr.length;
}函數作為函數的參數function
getResult(func){
var number_arr
=
new
Array();for(var
i=1;i<arguments.length;i++)number_arr[i-1]
=
arguments[i];return
func(number_arr);
}var
max
=
getResult(getMax,3,4.5,6,1,23);var
min
=
getResult(getMin,3,4.5,6,1,23);var
sum
=
getResult(getSum,3,4.5,6,1,23);var
avg
=
getResult(getAvg,3,4.5,6,1,23);document.write("max:"+max);document.write("min:"+min);document.write("sum:"+sum);document.write("avg:"+avg);</script>函數對象的屬性與方法
函數對象的屬性有argument,它表示函數所接受的參數,argument.length表示函數實際接受的參數個數,length表示函數定義時參數的個數
Javascript函數對象擁有一些通用的內建方法,如value()和toString(),它們功能相同,返回函數定義代碼function
showInfo(name,age){document.write(name+”今年”+age+”歲“);
}alert(showInfo.toString)());函數對象的屬性與方法call()與apply()使函數象調用其他對象的方法一樣
var
obj=new
object();showInfo.call(obj,”xiao”,24);上述代碼等同于:var
obj=new
Object();obj.func=showInfo;obj.func(“xiao”,24);showInfo.apply(obj,[“xiao”,24]
);函數對象的屬性與方法自定義屬性和方法function
getsum()//定義一個函數對象{
getsum.sum=0;for(var
i=0;i<arguments.length;i++)getsum.sum+=arguments[i];
return
getsum.sum;
}getsum(4,5,6);//函數必須先被調用,產生實體alter(“sum”+getsum.sum);//才能對函數屬性調用函數對象的屬性與方法
當將函數定義賦予函數對象的屬性后,便為函數定義了方法function
hello(theName){
=theName;hello.welcome=function(){
alert(“welcome:”+);
};hello.bye=function()
{
alert(“Bye!”);
};
}hello(“xiao”);hello.welcome();函數對象的屬性與方法<script
language="Javascript">function
showInfo(name,age){document.write(name+"今年"+age+"歲");}
alert(showInfo.toString());var
obj=new
Object;showInfo.call(obj,"小軒",24);function
getSum(){getSum.sum
=
0;for(var
i=0;i<arguments.length;i++)getSum.sum
+=
arguments[i];return
getSum.sum;
}getSum(4,5,6);alert("sum:"+getSum.sum);函數對象的屬性與方法function
getAcc(){for(var
i=0;i<arguments.length;i++)getAcc.sum
+=
arguments[i];return
getAcc.sum;
}getAcc.sum=0;//靜態(tài)屬性getAcc.show
=
function(){alert("The
sum
is:"+getAcc.sum)};getAcc.show();getAcc(2,3);
getAcc(4,5,6);
getAcc(8);alert("sum:"+getAcc.sum);function
hello(theName){
=
theName;hello.welcome
=
function()
{alert("welcome
to
ourweb:"+);
};hello.bye=function(){alert("Bye!");};}
hello("小軒");hello.welcome();</script>嵌套函數<script
language="Javascript">function
dealNum(){var
number_arr
=
arguments;//這里省略var關鍵字,定義全局變量getMax=function()/*求最大值,getMax是全局變量*/{ var
max
=
number_arr[0];for(var
i=0;i<number_arr.length;i++){ if(max
<
num
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀川油泵項目申請報告模板參考
- 2025年正在改制行業(yè)深度研究分析報告
- 助貸服務合同范本
- 2025年度腳手架施工質量監(jiān)督與驗收合同
- 2025年度建筑勞務市場合同示范文本匯編
- 2025年度國際貨物保險風險評估與管理合同
- 別克車銷售合同范本
- 2025年度攪拌樁施工設備租賃合同
- 化肥包裝租賃合同范例
- 2025年度創(chuàng)意產業(yè)園區(qū)租賃運營管理合同
- 中央2025年交通運輸部所屬事業(yè)單位招聘261人筆試歷年參考題庫附帶答案詳解
- 2025年上半年上半年重慶三峽融資擔保集團股份限公司招聘6人易考易錯模擬試題(共500題)試卷后附參考答案
- 特殊教育學校2024-2025學年度第二學期教學工作計劃
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設計規(guī)范
- 2023年青島遠洋船員職業(yè)學院高職單招(數學)試題庫含答案解析
- 2023年衛(wèi)生院崗位大練兵大比武競賽活動實施方案
- 2023年浙江省初中學生化學競賽初賽試卷
- 遼海版小學五年級美術下冊全套課件
- 專題7閱讀理解之文化藝術類-備戰(zhàn)205高考英語6年真題分項版精解精析原卷
- 2022年廣東省10月自考藝術概論00504試題及答案
- 隧道二襯承包合同參考
評論
0/150
提交評論