前端面试-难点问题2-java和javascript的区别
经过多方面的参考,结合自己掌握的知识,总结了一下java和javascript的区别。欢迎大家评论!
一、关系
虽然java和javascript在名字和语法上有一点相似,并且有一些联系,javascript语法源自java。但其实他们是两个公司开发的不同的产品,两种完全不同的编程语言。Java是SUN公司推出的新一代面向对象的程序设计语言,特别适合于Internet应用程序开发,前身是Oak语言;而JavaScript是Netscape公司的产品,其目的是为了扩展Netscape Navigator功能,而开发的一种可以嵌入Web页面中的基于对象和事件驱动的解释性语言, 前身是Live Script。
二、程序运行过程
java是编译执行,源文件必须经过编译生成中间文件,最终执行的是中间文件,因而需要安装jre或jdk(包括jre),并进行环境配置。而javascript是解释执行,无需生成中间文件,“读一句,执行一句”,执行一般可以通过三种方式:
1.一般浏览器都自带js解释器,可以通过浏览器直接使用;
2.可以安装专门的解释器软件node.js,执行.js文件;
3.随网页一起执行,使用<script>标签,可以将javascript语句放入标签中,也可以通过标签引入外部.js文件。
三、数据类型
java是一种强类型语言,当涉及到数据时,声明必须指定数据类型,比如:int a = 10;
而javascript是一种弱类型语言,对数据声明时,只需用关键字 var 即可,如:var a = 10; 具体的数据类型根据变量存储的内容进行识别。
四、数组
java中数组表示一组存储相同数据类型值的变量的集合,数组由相同类型的元素组成,长度固定。
而javascript数组是无类型的,数组元素可以是任意类型,并且同一个数组中的不同元素也可以有不同的类型,数组的元素甚至也可能是对象或其他数组,这允许创建复杂的数据结构,如对象的数组和数组的数组。javascript数组是动态的,根据需要它们会增长或缩减,并且在创建数组时无需声明一个固定的大小或者在数组大小变化时无须重新分配空间。
五、继承的实现
java是一种真正面向对象的语言,继承是通过类的方式实现的;而javascript是基于对象的语言,继承是通过原型对象的方式实现的。
六、重载的实现
重载:方法,根据传入的参数列表的不同,执行不同的任务。
java在语法上能够实现重载;而javascript在语法上是不支持重载功能的,但可以通过arguments对象模拟实现。
前端面试-难点问题2-java和javascript的区别的更多相关文章
- 【干货分享】前端面试知识点锦集03(JavaScript篇)——附答案
三.JavaScript部分 1.谈谈你对Ajax的理解?(概念.特点.作用) AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是 ...
- Java与JavaScript的区别
(1)执行方式不同 java:是编译语言,需要先编译再执行 JavaScript:无需编译,直接执行 (2)数据类型不同 java:强数据类型语言 JavaScript:弱数据类型语言 (3)运行位置 ...
- java和Javascript的区别
1 首先,这两个家伙没有任何的血缘关系,java是是由Sun 公司于1995年5月推出的,而javascript是于1995年由Netscape公司设计实现而成的,由于Netscape公司与Sun公司 ...
- 前端面试 vue 部分 (3)——v-show和v-if的区别
v-if 适用于在运行时很少改变条件,不需要频繁切换条件的场景: v-show 则适用于需要非常频繁切换条件的场景. v-if 是条件渲染,如果在初始渲染时条件为假,则什么也不做--直到条件第一次变为 ...
- 问得最多的十个JavaScript前端面试问题
我知道有很多人不同意这种类型的面试.其实不管你喜不喜欢,你都得接受.尤其当你是自学的,而且要申请第一份工作时. 我估计很多有人其它方法来证明他自己,像Github/ 项目地址可能是非常理想的证明方 ...
- web前端面试试题总结---javascript篇
JavaScript 介绍js的基本数据类型. Undefined.Null.Boolean.Number.String. ECMAScript 2015 新增:Symbol(创建后独一无二且不可变的 ...
- 前端面试之JavaScript的基本数据类型!
前端面试之JavaScript的基本数据类型! JS的基本数据类型 数字 字符串 布尔值 JavaScript中有两个特殊的原始值: null (空) 和undefined (未定义), , 它们不是 ...
- 前端面试之JavaScript中数组的方法!【残缺版!!】
前端面试之JavaScript中数组常用的方法 7 join Array.join()方法将数组中所有元素都转化为字符串并连接在-起,返回最后生成的字 符串.可以指定一个可选的字符串在生成的字符串中来 ...
- 前端面试之JavaScript中的闭包!
前端面试之JavaScript中的闭包! 闭包 闭包( closure )指有权访问另一个函数作用域中变量的函数. ----- JavaScript 高级程序设计 闭包其实可以理解为是一个函数 简单理 ...
随机推荐
- 关于redis的keys命令的性能问题
KEYS pattern 查找所有符合给定模式 pattern 的 key . KEYS * 匹配数据库中所有 key . KEYS h?llo 匹配 hello , hallo 和 hxllo 等. ...
- SpringBoot源码分析:spring的基本架构
在深入了解springboot之前,我们需要了解spring,springboot本身就是基于spring而构建:是微服务架构中一个比较流行的框架:类似spring提供了一套完整的微服务方案如spri ...
- 如何将EXCEL表导入ORACLE数据库中?【转】
来源:https://zhidao.baidu.com/question/383828330.html?qbl=relate_question_2&word=excel%20%B1%ED%CA ...
- linux系统下修改文件夹目录权限
linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...
- 快排 快速排序 qsort quicksort C语言
现在网上搜到的快排和我以前打的不太一样,感觉有点复杂,我用的快排是FreePascal里/demo/text/qsort.pp的风格,感觉特别简洁. #include<stdio.h> # ...
- [Python & Machine Learning] 学习笔记之scikit-learn机器学习库
1. scikit-learn介绍 scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib模块之上.值得一提的是,scikit-learn最 ...
- CentOS 6.3 中安装VirtualBOX增强工具失败:Building the main Guest Additions module[FAILED]
在VirtualBox里安装CentOS系统,会遇到“增强工具”无法正常安装,主要的原因是出在Kernel 库找不到. 错误提示如下: 通过查看日志文件: cat /var/log/vboxadd- ...
- error 502 in ngin php5-fpm
unix:/var/run/php5-fpm.sock failed (11: Resource temporarily unavailable) http://stackoverflow.com/q ...
- serialize存入数组
原代码 def get_type type_list = "" if categories.include?"movie" type_list += " ...
- Linux下对比两个文件夹的方法
最近拿到一份源代码,要命的是这份源代码是浅克隆模式的git包,所以无法完整显示里面的修改的内容. 今天花了一点点时间,找了一个在Linux对比两个文件夹的方法. 其实方法很简单,用meld 去对比两个 ...