Javascript基礎知識(一)核心基礎文法與事件模型,javascript基礎知識

來源:互聯網
上載者:User

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。
這些話都是可笑錯誤的,形而上學的。為什麼說形而上學,就是學了些用法而臆想原理,夾雜很多錯誤認識。
取法乎上,只得其中,取法其中,只得其下。如果你好意思把這些錯漏百出的表述說給初學者?而跟你學,得到什麼呢?不該指責其他認識到這些錯漏的人。...餘下全文>>
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.