Javascript基礎知識(一)核心基礎文法與事件模型,javascript基礎知識
一.Javascript核心基礎文法
1.Javascript是一門增加互動效果的程式設計語言,它最初由網景公司發明,最後提交給ECMA(歐洲電腦製造商協會),ECMA將Javascript標準化,其命名為Javascript。
2.Javascript是一門解釋性語言,無需編譯就可以直接在瀏覽器下運行。
3.Javascript的用途?
1.可以控制網頁中所有元素,增加.刪除.修改元素的屬性。
2.可以在html中放入動態文本。
3.響應使用者在使用網頁時產生的事件。
4.校正使用者輸入的資料。
5.檢測使用者的瀏覽器。
6.用於建立cookie。
4.Javascript在html網頁中建立的三種方式
1.外部樣式:
建立一個檔案名稱為:xx.js的檔案通過<script src="xx.js"><script>來連結
2.內嵌樣式:
在html中head或body裡使用<script type="text/javascript"></script>或直接使用<script></script>載入
3.內聯樣式:
直接在標籤中添加事件:<input onclick="alert('helloworld!')">載入
5.Javascript的資料類型:
它的資料類型有兩大類:1.原始性資料類型2.引用性資料類型(對象)
原始性資料類型:1.typeof 2.number 3.string 4.boolean 5.null 6.undefined
引用性資料類型:(預定義的對象有三種)1.原生對象(Object,number,string,boolean,function,Array,Date等)2.內建對象:不需要顯示初始化(math,Global)3.宿主對象(主要有BOM和DOM)
6.BOM和DOM
BOM:瀏覽器物件模型Browser Object Model
DOM:文件物件模型Document Object Model
二.Javascript的事件模型
1.Javascript事件模型:1.冒泡類型: <input type="button">當使用者點擊按鈕時:input-body-html-document-window(從下往上冒泡)IE瀏覽器只是用冒泡
2.捕獲類型: <input type="button">當使用者點擊按鈕時:window-document-html-body-input (從上往下)
經過ECMA標準化後,其他瀏覽器都支援兩種類型,捕獲先發生。
2.傳統事件書寫的三種方式:
1.<input type="button" onclick="alert('helloworld!')">
2.<input type="button onclick=name1()">======<script>function name1(){alert('helloword!');}</script> //有名函數
3.<input type="button" id="input1"> //匿名函數
複製代碼 代碼如下:
<script>
Var button1=document.getElementById("input1");
button1.onclick=funtion(){
alert('helloword!')
}
</script>
3.現代事件書寫方式:
複製代碼 代碼如下:
<input type="button" id="input1"> //IE中添加事件
<script>
var fnclick(){
alert("我被點擊了")
}
var Oinput=document.getElementById("input1");
Oinput.attachEvent("onclick",fnclick);
--------------------------------------
Oinput.detachEvent("onclick",fnclick);//IE中刪除事件
</script>
<input type="button" id="input1"> //DOM中添加事件
<script>
var fnclick(){
alert("我被點擊了")
}
var Oinput=document.getElementById("input1");
Oinput.addEventListener("onclick",fnclick,true);
--------------------------------------
Oinput.removeEventListener("onclick",fnclick);//DOM中刪除事件
</script>
<input type="button" id="input1"> //相容IE和DOM添加事件
<script>
var fnclick1=function(){alert("我被點擊了")}
var fnclick2=function(){alert("我被點擊了")}
var Oinput=document.getElementById("input1");
if(document.attachEvent){
Oinput.attachEvent("onclick",fnclick1)
Oinput.attachEvent("onclick",fnclick2)
}
else(document.addEventListener){
Oinput.addEventListener("click",fnclick1,true)
Oinput.addEventListener("click",fnclick2,true)
}
</script>
javascript基礎知識
你學過JAVA應該很好理解的~~
對象可以有層次性的~~~
public class test {
public string a = "a";
}
test t1 = new test();
test1.a = "b";
就是類似以上的意思啊~~
document是DOM實現的~~ 樓上說的是錯的..javascript不提供DOM和BOM得對象..這些對象的實現是所在的瀏覽器提供的~~在IE中...可以用vbscript也能實現document...當然還有其他語言可以實現..
all是IE特有的一個屬性..好像是,這個不敢肯定~~意思是返回document下的所有DOM的集合...
而form.numeric是對取form對象下的numeric對象~可能是這樣的
<form id="form"><input type="text" id="numeric" /></form>
推薦書是 <JavaScript進階程式設計> ~ 是本基礎書~~
如果不想購買書~~可以下2本手冊...JScript手冊(是MS的JScript語言,基本可以參考99%)和DHTML手冊(也是MS的..可以參考DOM)~
javascript基礎問題
var bbb=aaa();//bbb被賦值為aaa的傳回值
==============
var bbb=aaa;
//bbb被(地址)賦值為aaa,由於這裡aaa是“函數對象”,bbb也成了函數對象,也成了一個函數
可以調用bbb(); 這裡“函數對象”和弱類型無關,這是把函數作為頭等公民(First-class function)的語言設計。
javascript無嚴格意義上的“引用”或“指標”。
套用其他語言的概念是屬於比較形而上學的。
===========================
xxx=getElementById("idname"); //返回一個DOM的element對象,id為idname
xxx.onchange=func; //把這個element對象的onchange方法重寫(我想到的是英文override,之前用了錯誤的中文譯法),而這裡文法含義是重新賦值為func這一函數對象
Javascript強調函數對象這一概念。因為函數是最基本的對象,是頭等公民。
function foo(){ } //建立函數
等價於
var foo=new Function(){ } //建立函數對象
所以
xxx.onchange=foo
xxx.onchange=new Function("");
xxx.onchange=function(){}
都是把onchange指向另外一個函數(對象)
================
to 那個刀槍不入的francis674
你的回答,太誤人子弟,別人看不過去
“var a = funcitn() {}”
“a是變數,類型是function,alert(a)出來的是函數體的文本定義”
不僅拼字錯誤,而且解釋不出所以然,只好形而上學的說了內容
自己理解不透就來栽贓我,我從未提到
var a = function() {}
可以告訴題主,這是以函式宣告的方式定義無名函數。
而,var a = new Function("") 是定義函數對象的方式
這2種是互連的
"xxx.onchange=func 這個是事件委託" //絕非事件委託,僅僅重新指定對象,在沒放在事件模型時,文法上僅僅重新指定對象,重寫override對象的方法
“本質的區別就是可以理解為一個是變數,一個是指標,實際上都是變數。”
進階語言從來就沒有指標,瞎比擬就是形而上學。
“javascript是弱類型的指令碼語言。 函數和變數都稱為變數。" //函數能成為變數嗎?
“javascript 不支援oop等特性” //js不支援oop還叫js嗎?js屬於prototype模型的面對對象程式設計語言,非常支援oop。
這些話都是可笑錯誤的,形而上學的。為什麼說形而上學,就是學了些用法而臆想原理,夾雜很多錯誤認識。
取法乎上,只得其中,取法其中,只得其下。如果你好意思把這些錯漏百出的表述說給初學者?而跟你學,得到什麼呢?不該指責其他認識到這些錯漏的人。...餘下全文>>