HTML代码所表示的文档是一种静态文档,几乎没有交互功能,很难使页面成为动态页面。增加脚本语言,可使数据发送到服务器之前先进行处理和校验,动态地创建新的Web内容,更重要的是,引入脚本语言使我们有了事件驱动的软件开发环境。
)JavaScript简介
JavaScript的原名叫LiveScript,是NetScape公司在引入Sun公司有关Java的程序设计概念后,重新设计而更名的。JavaScript是一种可以嵌入HTML文档的,基于对象并具有某些面向对象特征的脚本语言。
说明:浏览器端脚本语言除了JavaScript,还有VBScript和Jscript,后两个是Microsoft公司设计的,欲了解相关内容,可到Microsoft公司网站查询。本课程仅介绍JavaScript。
)JavaScript的特点
JavaScript是一种基于对象(Object-Based)和事件驱动(Event Driven),由浏览器解释执行的,具有安全性能的客户端脚本语言。使用它的目的是与HTML、Java Applet(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用,从而可以开发客户端的应用程序等。它是通过嵌入在HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择,具有以下几个基本特点:
是一种脚本语言
采用小程序段的方式实现编程,以嵌入的方式,与HTML标识结合在一起,方便用户的使用操作。
基于对象的语言。
这里的对象,是指客户机、浏览器、网页文档。也就是说,JavaScript以类似C、Java的语法,以客户机、浏览器、网页文档、文档内部各种以标记表示的HTML元素为对象,以控制这些对象为目标,进而控制整个客户端的一种客户端脚本编程语言。
简单
首先它是一种基于Java基本语句和控制流之上的简单而紧凑的设计, 从而对于学习Java是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数据类型。
安全
它不允许访问服务器本地的硬盘,因此不能将数据存入到服务器上;不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。
动态
它可以直接对用户的输入做出响应,无须经过Web服务程序。它对用户的响应,是采用以事件驱动的方式进行的。事件(Event)可分为两类,一是用户对浏览器进行的某种操作,比如按下鼠标、移动窗口、选择菜单等,可以视为用户事件;二是系统事件,如时间的时刻变化等。当事件发生后,会向浏览器发送相应的消息(用户消息或系统消息),根据消息,浏览器可能会做出相应的响应,这种响应称为事件驱动,也叫消息驱动。
跨平台
JavaScript代码由浏览器解释执行,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确执行,从而实现了“编写一次,走遍天下”的梦想。
实际上JavaScript最杰出之处在于可以用很小的程序做大量的事。无须有高性能的电脑,软件仅需一个字处理软件及一浏览器,无须WEB服务器通道,通过自己的电脑即可完成所有的事情。
JavaScript 和 Java 很类似,但并不一样。Java 是一种比JavaScript 更复杂许多的程序语言,而 JavaScript 则是相当容易了解的语言。许多 Java 的特性在 Java Script 中并不支持。
)JavaScript的工作原理
1)JavaScript的工作原理
JavaScript编程可以完成诸如构造动画,动态菜单等使页面更加生动、活泼的任务(实例见洪恩在线:http://www.hongen.com/pc/homepage/javascript/index1.htm),还可以对客户机文件系统、注册表等进行操作,如对文件夹、文件的建立,复制,删除,修改注册表,锁定注册表,锁定浏览器等等,有许多随着网页打开而运行的病毒就是含在网页中的JavaScript程序在作怪。由此可见,JavaScript是控制客户机的精灵。
在B/S程序中,为了均衡负载,减轻服务器的计算负担,凡是不需要服务器程序做的工作,可尽量交给客户端程序(如JavaScript程序)去做。我们用HTML标记构造出用户界面,用户通过界面输入数据,向浏览器请求数据等操作。在用户输入数据,或者是输入完毕,将数据向服务器提交的时候,对数据的检验等任务完全可交给JavaScript程序来完成。本课程主要介绍此类任务的JavaScript编程技术。 通过JavaScript脚本检验FORM数据
JavaScript的工作原理,就是以基于对象和一些面向对象的特征
 JavaScript通过控制客户机上各种对象的方式,控制客户机,对客户机进行操作。
 根据用户或系统事件,做出相应的响应。

JavaScript工作原理的更多相关文章

  1. How Javascript works (Javascript工作原理) (三) 内存管理及如何处理 4 类常见的内存泄漏问题

    个人总结: 1.两种垃圾回收机制: 1)引用标记算法:如果检测到一个对象没有被引用了,就清除它. ***这种算法不能处理循环引用的情况*** 2)标记—清除算法:从根(全局变量)开始向后代变量检测,任 ...

  2. How Javascript works (Javascript工作原理) (二) 引擎,运行时,如何在 V8 引擎中书写最优代码的 5 条小技巧

    个人总结: 一个Javascript引擎由一个标准解释程序,或者即时编译器来实现. 解释器(Interpreter): 解释一行,执行一行. 编译器(Compiler): 全部编译成机器码,统一执行. ...

  3. How Javascript works (Javascript工作原理) (一) 引擎,运行时,函数调用栈

    个人总结:该系列文章对JS底层的工作原理进行了介绍. 这篇文章讲了 运行时:js其实是和AJAX.DOM.Settimeout等WebAPI独立分离开的 调用栈:JavaScript的堆内存管理 和 ...

  4. How Javascript works (Javascript工作原理) (九) 网页消息推送通知机制

    个人总结: 1.介绍了网页消息推送通知机制 全文地址:https://github.com/Troland/how-javascript-works 这是 JavaScript 工作原理的第九章. 现 ...

  5. How Javascript works (Javascript工作原理) (八) WebAssembly 对比 JavaScript 及其使用场景

    个人总结: webworker有以下三种: Dedicated Workers 由主进程实例化并且只能与之进行通信 Shared Workers 可以被运行在同源的所有进程访问(不同的浏览的选项卡,内 ...

  6. How Javascript works (Javascript工作原理) (七) WebAssembly 对比 JavaScript 及其使用场景

    个人总结: 1.webworkers实现了用多线程浏览器来进行多线程操作js的能力. 2.web workers不能操作dom,window,document等对象,一般用于cpu计算型的任务.   ...

  7. How Javascript works (Javascript工作原理) (六) WebAssembly 对比 JavaScript 及其使用场景

    个人总结: 1.webassembly简介:WebAssembly是一种用于开发网络应用的高效,底层的字节码.允许在网络应用中使用除JavaScript的语言以外的语言(比如C,C++,Rust及其他 ...

  8. How Javascript works (Javascript工作原理) (五) 深入理解 WebSockets 和带有 SSE 机制的HTTP/2 以及正确的使用姿势

    个人总结: 1.长连接机制——分清Websocket,http2,SSE: 1)HTTP/2 引进了 Server Push 技术用来让服务器主动向客户端缓存发送数据.然而,它并不允许直接向客户端程序 ...

  9. How Javascript works (Javascript工作原理) (四) 事件循环及异步编程的出现和 5 种更好的 async/await 编程方式

    个人总结: 1.讲解了JS引擎,webAPI与event loop合作的机制. 2.setTimeout是把事件推送给Web API去处理,当时间到了之后才把setTimeout中的事件推入调用栈. ...

  10. How Javascript works (Javascript工作原理) (十四) 解析,语法抽象树及最小化解析时间的 5 条小技巧

    个人总结:读完这篇文章需要15分钟,文章介绍了抽象语法树与js引擎解析这些语法树的过程,提到了懒解析——即转换为AST的过程中不直接进入函数体解析,当这个函数体需要执行的时候才进行相应转换.(因为有的 ...

随机推荐

  1. ES7/ES8 语法学习

    作为一个前端开发者,感觉需要学习的东西贼多,ES6刚学会用没多久,又得学习了解ES7/ES8新增的东西,这里是看了大佬们文章的一点点总结以及摘抄的内容,给自己当笔记使用 内容转载自:https://w ...

  2. 22-5-join

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. JS获取CkEditor在线编辑的内容

    参考博文:[实践]获取CKEditor的html文本.纯文本.被选中的内容及赋值 1.获取CKEditor被选中的内容 var mySelection = CKEDITOR.instances.WOR ...

  4. CentOS7.6编译安装openssl-1.1.1c

    卸载旧版本OpenSSL # which openssl/usr/bin/openssl# mv openssl openssl.oldrm -rf /etc/ssl #删除配置文件 CentOS7. ...

  5. robotframework+python3+selenium之常用情景---第四集

    1.切换浏览器 2.切换frame/iframe 3.截图保存 3.1导入Screenshot包 3.2 编写自动化测试之截图 4.后续再补充

  6. webpack初始化

    1. 安装node js 2. 安装npm 3. 在桌面新建一个文件夹 4.利用cmd 进入文件夹 5.在cmd中创建一个新文件夹并且进入 6.npm init -y  生成page.json 7. ...

  7. Centos 安装php Imagick 扩展

    从 centos 仓库安装 首先安装 php-pear php-devel,gcc三个软件包 yum install php-pear php-devel gcc 通过 yum 安装Centos 官方 ...

  8. Servlet中的Filter怎么使用?

    一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态 ...

  9. Mysql 编译报错 g++: internal compiler error: Killed (program cc1plus) 解决办法

    g++: internal compiler error: Killed (program cc1plus) 解决办法 g++: internal compiler error: Killed (pr ...

  10. mui框架开发aop的跨页面传值

    mui开发跨平台app,其实不乏会涉及到跨页面传值,今天给大家简单介绍一种常用也是简单的传值方法 咱在这里设置一个场景,就是两个页面进入到同一页面展示不同的元素,此时需要在这两个页面各自设置一个区别的 ...