热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JavaScript简介及语言特点

本文介绍了JavaScript的起源和发展历程,以及其在前端验证和服务器端开发中的应用。同时,还介绍了ECMAScript标准、DOM对象和BOM对象的作用及特点。最后,对JavaScript作为解释型语言和编译型语言的区别进行了说明。

一,JS起源

语言的发展:纸带机:机器语言  ;汇编语言:符号语言;现代语言:高级语言

JS起源于1995年,它的出现主要是用于处理网页中的前端验证(检查用户输入的内容是否符合一定的规则,比如用户名长度,密码长度,邮箱的格式等)。当时网速较慢,将验证信息放在服务器端验证用户体验不佳,Netscape网景公司就根据这个需求开发了liveScript语言,后来SUN公司(开发java)介入改名为Javascript。如今JS可用在前端,也可写服务器node.js。ECMAScript标准简称ES,不同的浏览器厂商对该标准会有不同的实现。(不同浏览器用的JS引擎是不同的)

firefox是网景公司倒闭之前捐献的

Chrome浏览器的引擎V8是整个JS里面执行起来最快的引擎

一个完整的Javascript实现由三部分组成:

ECMAScript标准

DOM对象(文档对象模型):操作网页

BOM对象(浏览器对象):操作浏览器

二,JS语言的特点

1,JS是解释型语言

JS不用预先翻译,直接运行(运行期间才翻译成机器语言,运行速度相对较慢)。计算技是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,任何使用高级语言编写的程序都必须将其转换成机器语言(机器码),转换方式有两种:编译,解释

1)编译型语言:使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行程序的格式。(C,C++)

2)解释型语言:使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行,在代码执行时才被解释器一行行动态翻译和执行,而不是在执行前就完成翻译。(Javascript,Python)

3)关于java,java和其他语言不太一样,它针对不同的平台有不同的JVM,实现了跨平台,java语言是一次编译到处行;Java代码编译。class文件后不能直接运行,它是解释运行在JVM上的,

  2,JS是动态语言

1)静态语言:在编译时变量的数据类型就可以确定的语言,在使用变量前必须声明数据类型.(C,C++,C#,Java)

2)动态语言:在运行时确定数据类型,变量使用前不需要声明类型,变量的类型是被赋值的那个值的类型(Python,JS,)

3)基于原型的面向对象:

传统的语言有类的概念,但是JS (ES5)是基于原型实现的面向对象。JS只有对象,原型对象prototype作为一个模板,新对象可以从中获得原始的属性,对象可以在创建或运行时创建自身的属性。

基于类的面向对象语言:Java构建在两个不同的实体概念:类,对象

 


推荐阅读
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • MQTT技术周报:硬件连接与协议解析
    本周开发笔记重点介绍了在新项目中使用MQTT协议进行硬件连接的技术细节,涵盖其特性、原理及实现步骤。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 邮件(带附件,模拟文件上传,跨服务器)发送核心代码1.测试邮件发送附件接口***测试邮件发送附件*@parammultipartFile*@return*@RequestMappi ... [详细]
author-avatar
gauss
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有