[从jQuery看JavaScript]-JavaScript

news/2024/7/3 10:03:31
http://blog.csdn.net/natineprince/archive/2009/10/31/4751609.aspx
什么是JavaScript?相信随便百度Google一下都能找到一大堆的定义解释。而在我的理解中,JavaScript就是一种客户端的脚本 语言,用于处理页面数据逻辑和用户体验(网页特效)。实际上,JavaScript并不仅仅只能用于客户端,它还能用于服务器端编程,典型的例子就是 Mozilla Rhino。Mozilla Rhino是一个纯Java的开源的JavaScript实现,它只是对JavaScript核心语法的编译实现,并没有对HTML对象的处理等功能(这 不是当然的嘛……)。而我学习整理的范围只是浏览器端中的JavaScript,所以这里就表过不提了。对Mozilla Rhino有兴趣的同学可以点击 这里。类似的JavaScript引擎还有Mozilla SpiderMonkey(C语言实现)和DMDScript(D语言实现)等。

  就浏览器端的JavaScript引擎来说,也是分了好几类的,例如Microsoft的叫JScript,Netscape的叫 JavaScript(换句话说,Netscape才是JS的鼻祖——作者乃是Netscape的Brendan Eich),Google的叫V8(也就是Chrome的JS引擎),还有苹果的WebKit。这么多的引擎,就会带来许多不同的标准,这就导致我们现在 的Web前端开发时所遇到的窘境——JS不是对每一个浏览器都适用。为此,早在JavaScript诞生初期,Netscape就将其提交给ECMA(欧 洲计算机制造商协会)进行标准化工作,所以现今的JavaScript引擎基本都遵从ECMA-262规范。尽管他们都遵从ECMA-262规范,但各个 厂商还是对自己的JavaScript引擎作了自己的扩展和修改。这些不规范的扩展和修改最终引发了强烈的整合需求,于是一个又一个JS函数库就出现 了,jQuery也是其中之一。

  如前所述,JavaScript是一种脚本语言,它不需要在服务器端编译,而是在发送到客户端后,由浏览器解释执行。因此,它是一种解释语言。 对于解释语言来说,源代码是一边读取一边执行的,而当执行遇到错误的时候,错误语句之后的脚本都将会被停止执行。而且,浏览器并不会保留运行结果,所以每 次打开同一页面,其页面上的JS都将重新运行一遍(虽然源文件可以通过设置头信息缓存),这是JS一个先天的性能问题。还需要注意的是,浏览器解释 HTML文档时,JS的引入也是按顺序解释执行的。所以,若是引入的JS脚本之间如果有依赖的话,执行依赖方法的语句必须要在实现方法语句之后。另外,各 浏览器的DOM生成顺序也是不同的,所以如果有需要执行的JS脚本需要调用DOM对象的话,最好是放到onload之类的函数中。而对于直接写在页面上的 函数,也可以在引入标签上加上defer属性(IE5或FF3.5或以上版本才能支持),暂缓其执行。还有就是,直接写在页面上的JS脚本,最好在都括 在<!—和//—>中。这是为了防止低版本浏览器错误解释代码用的。

  前面提到过JS函数库诞生的历史背景,那么这些函数库到底做的是什么呢?顾名思义,它们就是整合了各种常用功能的实现函数,并处理了各浏览器上的差异性,经过精炼的智慧结晶。下面,就让我们开始从jQuery这个函数库源码中体验JavaScript脚本语言之旅吧!


http://www.niftyadmin.cn/n/1733095.html

相关文章

海康威视客户端iVMS-4200连接NVR

海康威视客户端iVMS-4200连接NVR 陈拓 2021/07/30-2021/08/01 1. 概述 iVMS-4200客户端是一款与网络监控设备配套使用的综合应用软件&#xff0c;可满足用户多方面需求&#xff0c;如设备管理、人员管理、考勤、可视对讲、数据分析、远程设备配置等。客户端可与DVR、NVR、IPC…

海康威视SDK实例QtDemo显示NVR视频窗口(Linux+Qt)

海康威视SDK实例QtDemo显示NVR视频窗口(LinuxQt) 陈拓 2021/07/312021/08/01 1. 概述 在《海康威视客户端iVMS-4200连接NVR》 https://zhuanlan.zhihu.com/p/395137370 https://blog.csdn.net/chentuo2000/article/details/119298486 一文中我们通过海康威视客户端iVMS-42…

Ubuntu 18.04安装远程桌面

Ubuntu 18.04安装远程桌面 陈拓 2021/08/05-2020/08/08 1. Putty登录 IP地址 192.168.0.103 登录账户 ccdc xxxxxxxx 2. Ubuntu 18.04安装桌面 如果安装的系统已经带桌面跳过这一步。 2.1 查看linux系统版本 lsb_release -a 2.2 安装桌面 sudo apt-get install ubuntu…

CSS浮动属性,知道原理就很简单,灵活控制块级元素在一行内显示

在页面布局中&#xff0c;有两个非常常用的CSS属性。它们巧妙的控制着块级元素们之间的位置&#xff0c;灵活的让块级元素在一行内显示或者另起一行。说到这里&#xff0c;相信大家已经猜出来了&#xff0c;这两个属性就是控制块级元素浮动的属性。整个页面布局过程中&#xff…

HTML Dom Table对象

http://www.w3school.com.cn/htmldom/dom_obj_table.asp Table 对象 Table 对象代表一个 HTML 表格。 在 HTML 文档中 <table> 标签每出现一次&#xff0c;一个 Table 对象就会被创建。 IE: Internet Explorer, F: Firefox, O: Opera, W3C: W3C 标准. Table 对象集合 集合…

HTML DOM deleteRow() 方法

http://www.w3school.com.cn/htmldom/met_table_deleterow.asp 定义和用法 deleteRow() 方法用于从表格删除指定位置的行。 语法 tableObject.deleteRow(index) 说明 参数 index 指定了要删除的行在表中的位置。行的编码顺序就是他们在文档源代码中出现的顺序。<thead> 和…

JavaScprit30-6 学习笔记

今天学习的是 仿即时搜索诗句效果 第一个问题&#xff1a; fetch() Fetch API 提供了一个 JavaScript接口&#xff0c;用于访问和操纵HTTP管道的部分&#xff0c;例如请求和响应。它还提供了一个全局 fetch()方法&#xff0c;该方法提供了一种简单&#xff0c;合乎逻辑的方式…

java删除目录下所有文件以及目录

import java.io.File;public class Test12121 {/*** param args*//*** 删除目录下一级的所有文件与目录* param file*/private void delTempFiles(File file,Test12121 biz) throws Exception{//if(file.isFile()) {//if(!file.delete()) {if(file.isFile()) {file.delete();} …