java和JavaScript究竟什麼關係,有什麼樣的區別
猶記得剛剛接觸Java的時候,有一天突然看見了JavaScript,第一反應就是:這是什麼?跟Java這麼像,莫非它倆之間有什麼不可告人的關係?
這就得從他們誕生時開始說起:
1994年的時候,網景公司(Netscape)釋出了Navigator瀏覽器0.9版。這是歷史上第一個比較成熟的網路瀏覽器,轟動一時。但是,這個版本的瀏覽器只能用來瀏覽,不具備與訪問者互動的能力。因此,網景公司急需一種網頁尾本語言,使得瀏覽器可以與網頁互動。1995年Sun公司將Oak語言改名為Java,正式向市場推出,並且打出了“一次編寫,到處執行(Write once,run anywhere)”的宣傳口號。網景公司非常看好Java,決定與Sun公司結成聯盟。僅一個月後,網景公司做出決定,未來的網頁尾本語言,必須看上去與Java足夠相似,但是比Java簡單。程式設計師Brendan Eich被指定為這種“簡化版Java語言”的設計師。如果你想學習Java可以來這個群,首先是二二零,中間是一四二,最後是九零六,裡面可以學習和交流,也有學習資料可以下載。
但是Brendan Eich對Java絲毫沒有興趣,用了10天時間就設計出了JavaScript。總體的設計思路是:(1)借鑑C語言的基本語法;(2)借鑑Java語言的資料型別和記憶體管理;(3)借鑑Scheme語言,將函式提升到“第一等公民”(first class)的地位;(4)借鑑Self語言,使用基於原型(prototype)的繼承機制。也就是說,Java Script在設計時所參考的物件不包括 Java,而包括了像 Self 和 Scheme 這樣的語言,它實際上是函數語言程式設計和麵向物件程式設計兩種語言風格的混合產物。並且javascript最初的名字並不是javascript,而是LiveScript,名字中的“Java”是經過SUN Microsystems公司授權的。
簡單說java和JavaScript是兩個不同的語言。
1 語言特點:
1.1 弱型別:
JavaScript在變數宣告的時候並不嚴格區分資料型別,(var 變數名),不像java那樣嚴格(型別:變數名)。也就說,Javascript面前一切平等,在他眼裡大家都是人,而在java就有所不同,男人、女人、什麼的……
基於這個特性,javascript在很多時候會都可以寫的比java簡潔,比如函式的宣告等。如果你想學習js可以來這個群291851189,可以交流學習
1.2 動態語言:
java在定義了一個陣列的長度以後就不能再改變了,但是javascript卻可以。並且java一個陣列只能放同一種型別,但javascript可以在一個陣列內加不同資料型別的資料。可以說Java比較死心眼,javascript則比較靈活。
1.3 指令碼語言:
Java等後臺語言都是編譯後執行的,但是javascript卻是邊編譯邊執行。
2 資料型別
2.1 基礎資料型別:
Java有八大資料型別:byte,short,intlong,float,double,char,Boolean。感覺javascript把上面的整理成了三種原始型別:number,string,boolean。另外還有兩個特殊的原始型別是:null和undefined。
2.2 變數
Java:資料型別 變數名=值;
Javascript:var 變數名=值;陣列
Java:
型別[] 陣列名=new 型別[數量];
型別[] 陣列名=new 型別[]{元素1,元素2…};
Javascript:
var 陣列名=[];
var 陣列名=new Array();
3 函式:
Java:返回值型別 函式名(型別 引數1,型別 引數2…){}
Javascript:function 函式名(引數1,引數2…){}
兩者用途
java廣泛應用於個人PC、資料中心、遊戲控制檯、科學超級計算機、行動電話和網際網路等。
Javascript的用途是:1.嵌入動態文字於HTML頁面;2.對瀏覽器事件做出響應; 3.讀寫HTML元素;4.在資料被提交到伺服器之前驗證資料;5.檢測訪客的瀏覽器資訊; 6.控制cookies,包括建立和修改等。
相關文章
- linux和ubuntu區別是什麼?有什麼關係?LinuxUbuntu
- Linux和Unix有什麼區別?兩者有什麼關係Linux
- Java 和 JavaScript 是什麼關係?JavaScript
- Apache與Tomcat有什麼關係和區別ApacheTomcat
- Java和Python是什麼?有什麼區別?JavaPython
- 奈學:Java 和 JavaScript 是什麼關係?JavaScript
- Java 介面和抽象類是什麼,有什麼區別Java抽象
- 頻寬是什麼意思 頻寬和寬頻網速有什麼區別關係
- pycharm和python區別(關係)是什麼PyCharmPython
- 什麼是IPFS?IPFS與區塊鏈有什麼關係區塊鏈
- cookie是什麼?和session有什麼區別?CookieSession
- Java培訓教程:”==“和 equals 方法究竟有什麼區別?Java
- Java技術分享:”==“和 equals 方法究竟有什麼區別?Java
- 【Java面試】IO和NIO有什麼區別?Java面試
- 元宇宙是什麼,和遊戲有什麼關係元宇宙遊戲
- 什麼是Cython?和Python有什麼關係?Python
- XML和HTML有什麼區別?兩者之間有什麼關聯?XMLHTML
- IP、域名和DNS的關係與區別是什麼?DNS
- *和body有什麼區別
- 供應商關係和管理有什麼型別?型別
- Linux中apt是什麼?和Dpkg有什麼關係?LinuxAPT
- JavaScript 中的 Var,Let 和 Const 有什麼區別JavaScript
- Centos和Redhat有什麼關係?Centos和Redhat的區別與聯絡介紹CentOSRedhat
- Http 和TCP的關係,TCP長連線和短連線有什麼區別?HTTPTCP
- java泛型中<?>和<T>有什麼區別?Java泛型
- 優思學院|精益(Lean)和敏捷(Agile)有什麼關係和區別?敏捷
- Cache 和 Buffer 有什麼區別?
- mongodb和mysql有什麼區別MongoDBMySql
- shim和polyfill有什麼區別
- float和double有什麼區別?
- int 和 Integer 有什麼區別
- cookie和session 有什麼區別?CookieSession
- session 和 cookie 有什麼區別?SessionCookie
- modbus和tcp有什麼區別?TCP
- Nginx和Apache有什麼區別?NginxApache
- COOKIE和SESSION有什麼區別?CookieSession
- RegisterClass和RegisterClassEx有什麼區別?
- for update 和 for update of 有什麼區別