81、JS特点、优缺点,以及与其他语言的区别

1、什么是JavaScript

  1. js是一种脚本语言,是不需要进行编译的,也是浏览器中的一部分,经常用在web客户端脚本语言,主要是用来给html增加动态功能,让网页更加美观。
  2. 是一种动态、弱类型、基于原型的语言动态:运行的时候才知道每个变量的类型,编程的时候无需显示指定类型。数组长度可以改变,并且可以添加不同的数据类型;弱类型:js在变量声明时不严格区分数据类型(var 变量名),不像java那样严格(类型 变量名)。
  3. 是一种基于对象(Object)和事件驱动(Event Driven)并具有相对安全性的客户端脚本语言。

2、JavaScript的特点

  1. 一种基于对象的脚本语言。js是面对对象的,我们可以创建对象和使用现有的对象。
  2. 一种事件驱动脚本语言。JavaScript对用户的响应,是以事件驱动的方式进行的。在网页中执行了某种操作所产生的动作,被称为“事件”(Event)。例如按下鼠标、移动窗口、选择菜单等都可以被视为事件。当事件发生后,可能会引起相应的事件响应,执行某些对应的脚本,这种机制被称为“事件驱动”。
  3. 一种解释性执行的脚本语言。js是不需要编译就能执行的脚本语言。JavaScript的语法基本结构形式与C、C++、Java十分类似。但在使用前,不像这些语言需要先编译,而是在程序运行过程中被逐行地解释
  4. 一种简单弱类型脚本语言。js在变量声明时不严格区分数据类型(var 变量名);不像java那样严格(类型 变量名)。
  5. 一种跨平台性脚本语言。JavaScript依赖于浏览器本身,与操作环境无关,只要计算机能运行支持js的浏览器,就可正确执行,从而实现了“编写一次,走遍天下”的梦想。
  6. 一种相对安全脚本语言。JavaScript作为一种安全性语言,不被允许访问本地的硬盘,且不能将数据存入服务器,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失或对系统的非法访问。
  7. 方便操纵HTML对象。用户可以使用JavaScript来控制页面中各个元素的外观、状态甚至运行方式。
  8. 减少网络传输。在JavaScript这样的用户端脚本语言出现之前,传统的数据提交和验证工作均由用户端浏览器通过网络传输到服务器上进行。而使用JavaScript就可以在客户端校验任何客户的输入内容。

3、JavaScript的缺点

  1. 各浏览器厂商对JavaScript支持程度不同。不同的浏览器在浏览一个带有JavaScript脚本的主页时,由于对JavaScript的支持稍有不同,其效果会有一定的差距,有时甚至会显示不出来。
  2. 如果关闭浏览器的JavaScript支持,整个JavaScript代码就不会运行了。
  3. 当把JavaScript的一个设计目标设定为“Web安全性”时,就需要牺牲JavaScript的一些功能。因此,纯粹的JavaScript将不能打开、读写和保存用户计算机上的文件。其有权访问的唯一信息就是该JavaScript所嵌入的那个Web主页中的信息

4、为什么 JavaScript是一种弱类型语言

弱类型使用简单,更灵活多变。

5、JavaScript与其它语言的区别

1)从静态类型还是动态类型来看。

  • 静态类型,编译的时候就能够知道每个变量的类型,编程的时候也需要给定类型,如Java中的整型int,浮点型float等。CC++Java都属于静态类型语言。
  • 动态类型,运行的时候才知道每个变量的类型,编程的时候无需显示指定类型,JavaScriptPython属于动态类型语言。

比较:静态语言运行时因为只需运行目标程序,所以运行速度快,但是因为要注意变量的类型,需要多注意一些东西,而动态语言比较自由,可以将思想更多的集中在我们所开发的东西上。同时也因为动态语言的灵活性太高,当代码数量太大时,很多东西将变得不可控,不如静态语言稳定,所以当开发大型项目时,要优先选用静态语言。

2)从编译型还是解释型来看。

  • 编译型语言:像C、C++,需要编译器编译成本地可执行程序后才能运行,由开发人员在编写完成后手动实施。程序执行效率比较高,但比较依赖编译器,因此跨平台性差一些;
  • 解释性语言:像JavaScript、Python,程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次运行效率一般相对比较低,依赖解释器,跨平台性好
  • Java语言:是编译性-解释性语言分为两个阶段。第一阶段,像C++语言一样,java文件先编译成与平台无关的.class的字节码文件。第二阶段,由Java虚拟机(JVM)运行字节码,使用解释器执行这些代码;JVM从.class的字节码文件中读出一条指令,翻译一条指令,然后执行一条指令,这个过程就称为java的解释执行

比较: 

  1. 编译型语言只须编译一次就可以把源代码编译成机器语言,后面的执行无须重新编译,直接使用之前的编译结果就可以;因此其执行的效率比较高
  2. 解释型语言:源代码不能直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行;
  3. 解释型语言:程序不需要编译,程序在运行时才翻译成机器语言每执行一次都要翻译一次;
  4. 编译型语言:程序执行效率比较高,但比较依赖编译器,因此跨平台性差一些
  5. 解释型语言运行效率一般相对比较低,依赖解释器,跨平台性好

3)其它方面的比较。

  • 所采取的变量不同:JavaScript 中的变量声明采用弱类型,即变量在使用前不需作声明,而是解释器在运行时检查其数据类型。Java 采用强类型变量检查,即所有变量在编译之前必须作声明;
  • js是单线程,java是多线程;
  • js可以直接在任何浏览器上运行,java需要借助虚拟机实现跨平台;

参考:编译性语言和解释性语言的区别_你的代码有灵魂吗?-CSDN博客_解释性语言和编译性语言

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值