不是的,兩者有很大的差別。語法方面JavaScript的基本語法和對象體系,是模仿Java而設(shè)計的。但是,JavaScript沒有采用Java的靜態(tài)類型。正是因為JavaScript與Java有很大的相似性,所以這門語言才從一開始的LiveScript改名為JavaScript?;旧?,JavaScript這個名字的原意是“很像Java的腳本語言”。千鋒官網(wǎng)每日更新最新軟件開發(fā)基礎(chǔ)知識內(nèi)容,鞏固日常學(xué)習(xí)中的基礎(chǔ)技能。更有免費(fèi)的軟件開發(fā)視頻教程幫助學(xué)員快速學(xué)習(xí)。 千鋒教育就有線上免費(fèi)的軟件開發(fā)公開課,。
成都創(chuàng)新互聯(lián)公司專注于雙灤企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),商城網(wǎng)站制作。雙灤網(wǎng)站建設(shè)公司,為雙灤等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
在JavaScript語言中,函數(shù)是一種獨(dú)立的數(shù)據(jù)類型,以及采用基于原型對象(prototype)的繼承鏈。這是它與Java語法最大的兩點(diǎn)區(qū)別。JavaScript語法要比Java自由得多。數(shù)據(jù)結(jié)構(gòu)部分則借鑒Java語言,包括將值分成原始值和對象兩大類。另外,Java語言需要編譯,而JavaScript語言則是運(yùn)行時由解釋器直接執(zhí)行??傊?,JavaScript的原始設(shè)計目標(biāo)是一種小型的、簡單的動態(tài)語言,與Java有足夠的相似性,使得使用者(尤其是Java程序員)可以快速上手千鋒教育集團(tuán)目前已與國內(nèi)4000多家企業(yè)建立人才輸送合作,與500多所大學(xué)建立實訓(xùn)就業(yè)合作,每年為各大企業(yè)輸送上萬名移動開發(fā)工程師,每年有數(shù)十萬名學(xué)員受益于千鋒教育組織的技術(shù)研討會、技術(shù)培訓(xùn)課、網(wǎng)絡(luò)公開課及免費(fèi)教學(xué)視頻。
o 是 對象 對象用法跟 數(shù)組差不多
比如 var o = {'a':10 , 'b': 20};
可以 alert( o['a'] ); //10
比如
var o = {'a':10 , 'b': 20}; //這個就是 對象定義 {屬性:值 , 屬性:值 , 屬性:值}
var a = ['a', 'b', 'c']; //這個是 數(shù)組
var i = 1;
這個時候 a[i] 是 字符 b
那么 o[a[i]] 就等于 o['b'] 也就是 20了
-----
比如
var o = {'a':10, 'b': 20, ‘c’:[3,6,9] }; // o是對象 有 3個屬性 第3個屬性c 本身又是 數(shù)組
var a = ['a', 'b', 'c'];
var i = 2;
var j = 1 ;
那么 o[a[i]] 等于 o[a[2]] 等于 o['c'] 就是 那個 [3,6,9]數(shù)組了
那么 o[a[i]][j] 就 等于 o['c'][j] 等于 o['c'][1] 等于 6
(1)嵌入HTML文件中
一般放在head/head(事實上可以放在任何位置)中,格式:
script type="text/javascript"
//此處為JavaScript代碼
/script
(2) 定義專門的外部文件
將JavaScript代碼寫在一個獨(dú)立的腳本文件(擴(kuò)展名為.js)中,在頁面中使用時直接導(dǎo)入該腳本文件即可,導(dǎo)入的格式:
script type="text/javascript" src="要導(dǎo)入的js文件.js"/script
(3)除了上面兩種最為常用的方式外,還可以在以下地方定義JavaScript代碼
A、在HTML的元素事件屬性中,比如,按鈕的單擊事件,語法:
input type="button" onclick="javascript:js腳本代碼" /
范例:
B、在超鏈接中定義,語法:
a href="javascript:js腳本代碼" 超鏈接/a
范例:
1. 在HTML里面加入JavaScript;方法非常簡單,就是通過一對標(biāo)簽,然后在標(biāo)簽里面書寫代碼即可;2. 標(biāo)簽位置;按照以前傳統(tǒng)的方法,我們的script標(biāo)簽都是放在head標(biāo)簽里面的。但是由于瀏覽器進(jìn)行渲染的時候是由上往下進(jìn)行渲染,這樣會導(dǎo)致瀏覽器在呈現(xiàn)頁面的時候出現(xiàn)延遲。延遲的時候就是空白,影響用戶體驗。所以現(xiàn)在的方法,都是講script標(biāo)簽寫body里面,元素的后面。;3. 外部JS文件;1)可維護(hù)性高;2)可緩存:例如有兩個HTML文件(A,B)都是用的同一個JS文件。當(dāng)用戶請求A頁面的時候,A頁面的HTML文件和JS文件一起被下載到本地。接下來用戶再請求B頁面的時候,只需要下載B頁面的HTML頁面即可,因為JS文件已經(jīng)有了。4. JavaScript語法;1)JavaScript區(qū)分大小寫test和Test表示不同變量2)標(biāo)識符;JavaScript里面的標(biāo)識符由數(shù)字,字母,下劃線(_)和$組成,不能以數(shù)字開頭3)注釋:JavaScript注釋有兩種:多行注釋和單行注釋
JavaScript的特點(diǎn)
(1).一種解釋性執(zhí)行的腳本語言。
同其他腳本語言一樣,JavaScript也是一種解釋性語言,其提供了一個非常方便的開發(fā)過程。JavaScript的語法基本結(jié)構(gòu)形式與C、C++、Java十分類似。但在使用前,不像這些語言需要先編譯,而是在程序運(yùn)行過程中被逐行地解釋。JavaScript與HTML標(biāo)識結(jié)合在一起,從而方便用戶的使用操作。
(2).一種基于對象的腳本語言。
其也可以被看作是一種面向?qū)ο蟮恼Z言,這意味著JavaScript能運(yùn)用其已經(jīng)創(chuàng)建的對象。因此,許多功能可以來自于腳本環(huán)境中對象的方法與腳本的相互作用。
(3).一種簡單弱類型腳本語言。
其簡單性主要體現(xiàn)在:首先,JavaScript是一種基于Java基本語句和控制流之上的簡單而緊湊的設(shè)計,從而對于使用者學(xué)習(xí)Java或其他C語系的編程語言是一種非常好的過渡,而對于具有C語系編程功底的程序員來說,JavaScript上手也非常容易;其次,其變量類型是采用弱類型,并未使用嚴(yán)格的數(shù)據(jù)類型。
(4).一種相對安全腳本語言。
JavaScript作為一種安全性語言,不被允許訪問本地的硬盤,且不能將數(shù)據(jù)存入服務(wù)器,不允許對網(wǎng)絡(luò)文檔進(jìn)行修改和刪除,只能通過瀏覽器實現(xiàn)信息瀏覽或動態(tài)交互。從而有效地防止數(shù)據(jù)的丟失或?qū)ο到y(tǒng)的非法訪問。
(5).一種事件驅(qū)動腳本語言。
JavaScript對用戶的響應(yīng),是以事件驅(qū)動的方式進(jìn)行的。在網(wǎng)頁(Web Page)中執(zhí)行了某種操作所產(chǎn)生的動作,被稱為“事件”(Event)。例如按下鼠標(biāo)、移動窗口、選擇菜單等都可以被視為事件。當(dāng)事件發(fā)生后,可能會引起相應(yīng)的事件響應(yīng),執(zhí)行某些對應(yīng)的腳本,這種機(jī)制被稱為“事件驅(qū)動”。
(6).一種跨平臺性腳本語言。
JavaScript依賴于瀏覽器本身,與操作環(huán)境無關(guān),只要計算機(jī)能運(yùn)行瀏覽器,并支持JavaScript的瀏覽器,就可正確執(zhí)行,從而實現(xiàn)了“編寫一次,走遍天下”的夢想。
因此,JavaScript是一種新的描述語言,其可以被嵌入到HTML文件中。JavaScript語言可以做到響應(yīng)使用者的需求事件(例如表單的輸入),而不需要任何的網(wǎng)絡(luò)來回傳輸資料。所以當(dāng)一位使用者輸入一項資料時,此資料數(shù)據(jù)不用經(jīng)過傳給服務(wù)器(server)處理再傳回來的過程,而直接可以被客戶端(client)的應(yīng)用程序所處理。
你理解錯誤了,輸入結(jié)果是由alert進(jìn)行的一個全局變量的輸出,也就是說alert(msg)中的msg變遠(yuǎn)是全局變量.
而在第一個例子中,由于show是引用了全局變量,并將全局變量的值更改為"局部變量",也就是說show函數(shù)在執(zhí)行時并沒有開辟新的變量,而是將全局變量的值更改了,所以顯示的是"局部變量",但msg卻不是一個局部變量,不能做為局部變量去理解的.
在第二個例子中,由于使用了var msg,在JS或是C中都是這樣的處理的,而不是不同于C,var 表示開辟新的內(nèi)存空間,這里會出現(xiàn)兩個msg變量,但是你別忘記了,show函數(shù)內(nèi)部的msg當(dāng)show函數(shù)執(zhí)行完畢返回到主程序中時,這個局部變量已經(jīng)不存在了.而alert(msg)顯示的仍然是主程序中的變量,當(dāng)然,show函數(shù)的變量不會了生任何的覆蓋的.所以會顯示出”全局變量”.
也就是說,兩次顯示的都是全局變量的值,雖然值有改變的.所以我想你可能將第一個變量想成了局部變量的,所以你錯了!
但是二樓,JS與C同屬于EMCA-262語言核心,在這一點(diǎn)上有什么區(qū)別?
我給樓主一個例子,樓主可以看一下:
script
var msg ="全局變量";//開辟全局變量
function show(){
var msg="局部變量";
alert(msg);//此處輸出的是局部變量,因為這些函數(shù)體內(nèi)如果有同名的全局變量昌被屏掉了.
}
/script
也就是說只有在我的這種情況是輸出的局部變量,而在你的兩個例子中由于alert()名是在主程序中,所以輸出都是全局變量的!只不過是全局變量與局部變量的值有沒有被覆蓋而已.當(dāng)你看到它輸入出的值是”局部變量”時,并不表示他是局部變量.變量的作用域與變量的值完全是兩碼事,不可混為一談!
我的例子與第二個例子做一下比較,你的理解會更深刻的.這種情況,如果輸入的是”全局變量”時才是全局變量,輸出的是”局部變量”時才是局部變量!想一想為什么吧!