[从jQuery看JavaScript]-JavaScript
什么是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脚本语言之旅吧!
[从jQuery看JavaScript]-JavaScript的更多相关文章
- 最新的jQuery插件和JavaScript库
每一个前端开发人员很清楚的重要性和功能的JavaScript库提供.它提供了一个简单的接口,用于构建快速动态的接口,而无需大量的代码. 谢谢你的超级从事jQuery开发者社区,人始终是创造新的和令人惊 ...
- Jquery第一篇【介绍Jquery、回顾JavaScript代码、JS对象与JQ对象的区别】
什么是Jquery? Jquey就是一款跨主流浏览器的JavaScript库,简化JavaScript对HTML操作 就是封装了JavaScript,能够简化我们写代码的一个JavaScript库 为 ...
- 【JQuery】jquery对象和javascript对象即DOM对象相互转换
jQuery 对象是通过 jQuery 包装DOM 对象后产生的对象.jQuery 对象是 jQuery 独有的,其可以使用 jQuery 里的方法,但是不能使用 DOM 的方法:例如: $(&quo ...
- jquery对象和javascript对象即DOM对象相互转换
jquery对象和javascript对象即DOM对象相互转换 1. DOM 对象转成 jQuery 对象对于已经是一个 DOM 对象,只需要用 $() 把DOM对象包装起来,就可以获得一个 jQue ...
- 想要学好JQuery看这里
一.简介 jQuery 库可以通过一行简单的标记被添加到网页中 jQuery 是一个 JavaScript 函数库. jQuery 库包含以下特性: HTML 元素选取 HTML 元素操作 CSS 操 ...
- [从jQuery看JavaScript]-匿名函数与闭包(Anonymous Function and Closure)【转】
(function(){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我也像其他人一样很兴奋地想看看源码是什么样的.然而,在看到源码的第一眼,我就迷糊了.为什么只有 ...
- [从jQuery看JavaScript]-变量与作用域链
jQuery片段: var // Will speed up references to window, and allows munging its name. window = this, // ...
- [从jQuery看JavaScript]-匿名函数与闭包
jQuery片段: (function(){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我也像其他人一样很兴奋地想看看源码是什么样的.然而,在看到源码的第一眼,我 ...
- [从jQuery看JavaScript]-注释(comments)
jQuery片段: /*! * jQuery JavaScript Library v1.3.2 * http://jquery.com/ * * Copyright (c) 2009 John Re ...
- [从jQuery看JavaScript]-匿名函数与闭包(Anonymous Function and Closure)
http://blog.csdn.net/natineprince/article/details/4759533 jQuery片段: (function(){ //这里忽略jQuery所有实现 ...
随机推荐
- Python练习笔记——计算个人体重指数
输入您的身高 体重 性别 计算出你的体重是否标准 gender = input('请输入您的性别(boy or girl):') height = input('请输入您的身高(单位cm):') he ...
- C语言宏高级用法
1.前言 今天看代码时候,遇到一些宏,之前没有见过,感觉挺新鲜.如是上网google一下,顺便总结一下,方便以后学习和运用.C语言程序中广泛的使用宏定义,采用关键字define进行定义,宏只是一种简 ...
- Linux内核jiffies简介
在LINUX的时钟中断中涉及至二个全局变量一个是xtime,它是timeval数据结构变量,另一个则是jiffies,首先看timeval结构struct timeval{time_t tv_sec; ...
- LeetCode94 Binary Tree Inorder Traversal(迭代实现) Java
题目: Given a binary tree, return the inorder traversal of its nodes' values. For example: Given binar ...
- Python tuple 函数
描述 Python 元组 tuple() 函数将列表转换为元组. 语法 以下是 tuple 的语法: tuple( seq ) 参数 seq -- 要转换为元组的序列. 返回值 返回元组. 实例 以下 ...
- Python rjust() 方法
描述 rjust() 返回一个原字符串右对齐,并使用指定字符填充至指定长度的新字符串,默认的填充字符为空格.如果指定的长度小于原字符串的长度则返回原字符串. 语法 rjust() 方法语法: S.rj ...
- Spring boot处理OPTIONS请求
一.现象从fetch说起,用fetch构造一个POST请求. fetch('http://127.0.0.1:8000/api/login', { method: "POST", ...
- Linux前台、后台、挂起、退出、查看命令汇总
command & 直接在后台执行程序 ctrl+c 退出前台的命令,不再运行 ctrl+z挂起前台命令暂停运行,回到shell命令行环境中 bg 将刚挂起的命令放到后台执行 bg % ...
- @RequestBody 处理类型 和 对象 和 json 相互转换
1 @RequestBody 处理类型 在项目中经常看到controller 中有 @RequestBody 字样,他到底有什么作用? 一般使用表单提交数据时不需要使用@RequestBody 即可自 ...
- BestCoder Round #4 Miaomiao's Geometry (暴力)
Problem Description There are N point on X-axis . Miaomiao would like to cover them ALL by using seg ...