java和JavaScript究竟什么关系,有什么样的区别

简介: 犹记得刚刚接触Java的时候,有一天突然看见了JavaScript,第一反应就是:这是什么?跟Java这么像,莫非它俩之间有什么不可告人的关系?

犹记得刚刚接触Java的时候,有一天突然看见了JavaScript,第一反应就是:这是什么?跟Java这么像,莫非它俩之间有什么不可告人的关系?

0


       这就得从他们诞生时开始说起:

      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,包括创建和修改等。

相关文章
|
13天前
|
JavaScript 前端开发 索引
问js的forEach和map的区别
JavaScript中的`forEach`和`map`都是数组迭代方法。`forEach`遍历数组但不修改原数组,无返回值;它接受回调函数处理元素。`map`则遍历数组并返回新数组,新数组元素为回调函数处理后的结果。两者都接收元素、索引和数组作为回调函数参数。
18 7
|
17天前
|
JavaScript 前端开发
JS require 与 import 的区别
JS require 与 import 的区别
14 1
|
25天前
|
JavaScript
js开发:请解释什么是ES6的类(class),并说明它与传统构造函数的区别。
ES6的类提供了一种更简洁的面向对象编程方式,对比传统的构造函数,具有更好的可读性和可维护性。类使用`class`定义,`constructor`定义构造方法,`extends`实现继承,并可直接定义静态方法。示例展示了如何创建`Person`类、`Student`子类以及它们的方法调用。
21 2
|
26天前
|
自然语言处理 JavaScript 网络架构
js开发:请解释什么是ES6的箭头函数,以及它与传统函数的区别。
ES6的箭头函数以`=>`定义,简化了函数写法,具有简洁语法和词法作用域的`this`。它无`arguments`对象,不能用作构造函数,不支持`Generator`,且不改变`this`、`super`、`new.target`绑定。适用于简短表达式,常用于异步编程和高阶函数。
17 5
|
27天前
|
JavaScript 前端开发
js开发:请解释原型继承和类继承的区别。
JavaScript中的原型继承和类继承用于共享对象属性和方法。原型继承利用原型链查找属性,节省内存但不支持私有成员。类继承通过ES6的class和extends实现,支持私有成员但占用更多内存。两者各有优势,适用于不同场景。
18 0
|
1月前
|
Java
Java isBlank和isEmpty的区别
JavaisBlank和isEmpty的区别
17 0
|
1月前
|
JavaScript 前端开发 网络架构
JavaScript 谈谈对箭头函数的理解及其与普通函数的区别。
JavaScript 谈谈对箭头函数的理解及其与普通函数的区别。
17 1
|
1月前
|
Java Spring 容器
[JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别
[JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别
|
3天前
|
存储 JavaScript 前端开发
JavaScript DOM 操作:解释一下 cookie、sessionStorage 和 localStorage 的区别。
Cookie是服务器发送至客户端的文本信息,会随每个请求发送回服务器,适合控制会话状态但可能暴露隐私。SessionStorage仅在当前会话中存储数据,关闭浏览器后清除,适合临时存储如登录状态。LocalStorage则持久保存数据,即使关闭浏览器也不会清除,适用于存储长期设置。三种方式各有侧重,应按需求选择。
9 0
|
10天前
|
Java 关系型数据库 MySQL
大厂面试题详解:Java抽象类与接口的概念及区别
字节跳动大厂面试题详解:Java抽象类与接口的概念及区别
33 0