JavaScript学习笔记(一)——JS基础知识介绍
术语解释
Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。
JavaScript 被用来改进设计、验证表单、检测浏览器、创建cookies,等等。JavaScript 是因特网上最流行的脚本语言,并且可在所有主要的浏览器中运行,比方说 Internet Explorer、 Maxthon、Mozilla、Firefox、Netscape、Chrome和 Opera等。
- JavaScript 被设计用来向 HTML 页面添加交互行为。
- JavaScript 是一种脚本语言(脚本语言是一种轻量级的编程语言)。
- JavaScript 由数行可执行计算机代码组成。
- JavaScript 通常被直接嵌入 HTML 页面。
- JavaScript 是一种解释性语言(就是说,代码执行不进行预编译)。
- 所有的人无需购买许可证均可使用 JavaScript。
概念辨析
JavaScript与Java
JavaScript最初的确是受Java启发而开始设计的,而且设计的目的之一就是“看上去像Java”,因此语法上有很多类似之处,许多名称和命名规范也借自Java。但是实际上,JavaScript的主要设计原则源自Self和Scheme,它与Java本质上是不同的。它与Java名称上的近似,是当时网景为了营销考虑与Sun公司达成协议的结果。其实从本质上讲javascript更像是一门函数式编程语言.而非面向对象的语言,它使用一些智能的语法和语义来仿真高度复杂的行为。其对象模型极为灵活、开放和强大,具有全部的反射性。
JavaScript与JScript
JScript是Microsoft公司开发的,Javascript是Netscape公司开发的.虽然他们是死对头,但是在现在的浏览器中,无论你把语言指定为Javascript 还是 Jscript, 浏览器都会综合他们两个语言的特性.所以,即使把语言指定为Javascript, 用几句JScript也是没问题的.
JavaScript与VBScript
Javascript 和 VBscript 的互通性很好,而且在 VBArray(Javascript不支持多维数组)和ASCII(Javascript不能吧字符转成ASCII)都得到了应用,这方面基础 VBScript 做得很好。所以我看了看它的代码,大致意思就是 Javascript 可以用 VBScript 的自定义函数和变量(当然不能用内置变量和函数),通过转换调用内置函数。
JavaScript与AJAX
AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML),它也是一种JavaScript编程语言。JavaScript是一种粘合剂使AJAX应用的各部分集成在一起。AJAX是基于web标准XHTML+CSS的表示;使用 DOM进行动态显示及交互;使用XML 和XSLT 进行数据交换及相关操作;使用XMLHttpRequest 进行异步数据查询、检索;使用 JavaScript 将所有的东西绑定在一起。
JavaScript与DOM
DOM是Document Object Model(文档对象模型)的简称,它是让javascript与页面交互的一种方式,能够动态修改文档中的节点,元素,属性等。DOM不仅适用于xhtml文档,对于所有的xml文档dom都是可以使用的。
DOM的级别:
1级:基本的节点操作一级里都包括了
2级:增加了对样式表,文档显示,事件处理,等的支持
3级:可以用javascript加载和保存文档,检查文档错误
JavaScript与HTML
HTML 创作者往往都不是程序员,但是 JavaScript 却是一种只拥有极其简单的语法的脚本语言。每人都可将短小的代码片断放入HTML 页面中。
类似于这样的一段 JavaScript 声明可以将一段可变的文本放入 HTML 页面:document.write("<h1>" + name + "</h1>")
可以将 JavaScript 设置为当某事件发生时才会被执行,例如页面载入完成或者当用户点击某个 HTML 元素时。
JavaScript 可以读取及改变 HTML 元素的内容。
在数据被提交到服务器之前,JavaScript 可被用来验证这些数据。
JavaScript 可被用来检测访问者的浏览器,并根据所检测到的浏览器,为这个浏览器载入相应的页面。
JavaScript 可被用来存储和取回位于访问者的计算机中的信息。
JavaScript与CSS+DIV
CSS(Cascading Style Sheet)层叠样式表,是一组格式设置规则,用于控制Web页面的外观。通过使用CSS样式设置页面的格式,可将页面的内容与表现形式分离。
DIV主要用来布局,与table布局相似,用来为HTML文档内大块(block-level)的内容提供结构和背景的元素。DIV的起始标签和结束标签之间的所有内容都是用来构成这个块的,其中所包含元素的特性由DIV标签的属性来控制,或者是通过使用样式表格式化这个块来进行控制。
JavaScript可以通过getElementById(id)或getElementsByTabName(TabName)等来设置或修改CSS和DIV的属性值
JavaScript与编程语言
Javascript 不是一个预编译语言,所以虽然 Javascript 的作者尽量把它写得强大。尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的编程语言来推广和宣传,但是JavaScript是一门具有非常丰富特性的语言,它有着和其他编程语言一样的复杂性,或更甚复杂。实际上,你必需对JavaScript有扎实的理解才能用它来撰写比较复杂的程序。
基本语法
1、运算符
运算符就是完成操作的一系列符号:
赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=)
算术运算符(+,-,*,/,++,--,%)
比较运算符(>,<,<=,>=,==,===,!=,!==)
逻辑运算符(||,&&,!)、条件运算(?:)、位移运算符(|,&,<<,>>,~,^)、字符串运算符(+)
2、 表达式
运算符和操作数的组合称为表达式,通常分为四类:赋值表达式、算术表达式、布尔表达式和字符串表达式
3、语句
赋值语句、switch、for、foreach、while、do while、break、continue、try...catch、if语句、with语句、let语句
4、函数
函数是命名的语句段,这个语句段可以被当作一个整体来引用和执行:
1)函数由关键字function定义(也可由Function构造函数构造);
2)使用function关键字定义的函数在一个作用域内是可以在任意处调用的(包括定义函数的语句前);而用var关键字定义的必须定义后才能被调用;
3)函数名是调用函数时引用的名称,它对大小写是敏感的,调用函数时不可写错函数名;
4)参数表示传递给函数使用或操作的值,它可以是常量,也可以是变量,也可以是函数,在函数内部可以通arguments对象(arguments对象是一个伪数组,属性callee引用被调用的函数)访问所有参数;
5)return语句用于返回表达式的值。
6)yield语句扔出一个表达式,并且中断函数执行直到下一次调用next。
一般的函数都是以下格式:
function myFunction(params){
//执行的语句
}
函数表达式:
var myFunction=function(params){
//执行的语句
}
myFunction();//调用函数
5、对象
Javascript是面向对象的,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。
一组包含数据的属性和对属性中包含数据进行操作的方法,称为对象。比如要设定网页的背景颜色,所针对的对象就是document,所用的属性名是bgcolor,如document.bgcolor="blue",就是表示使背景的颜色为蓝色。
6、事件
事件,用户与网页交互时产生的操作。
事件可以由用户引发、也可能是页面发生改变、甚至还有你看不见的事件(如Ajax的交互进度改变)。绝大部分事都由用户的动作所引发,如:用户按鼠标的按钮,就产生click事件,若鼠标的指针的链接上移动,就产生mouseover事件等等。在Javascript中,事件往往与事件处理程序配套使用。
而对事件的处理,W3C的方法是用addEventListener()函数,它有三个参数:事件、引发的函数、是否使用事件捕捉。为了安全性,建议将第三个参数始终设置为false;
传统的方法就是定义元素的on...事件,它就是W3C的方法中的事件参数前加一个“on”。而IE的事件模型使用attachEvent和dettachEvent对事件进行绑定和删除。javascript中事件还分捕获和冒泡两个阶段,但是传统绑定只支持冒泡事件。
7、变量
如 var myVariable = "some value";
变量有它的类型,上例中myVariable的类型为string(字符串)
javascript支持的常用类型还有:
object:对象
array:数组
number:数;
boolean:布尔值,只有true和false两个值,是所有类型中占用内存最少的;
null:一个空值,唯一的值是null;
undefined:没有定义和赋值的变量
实际上javascript的变量是弱变量类型,你赋值给他的是字符串,他就是String .
是数字他就是整形。是true和false他就是boolean型(注意,不能加引号,不然会被当成字符串处理)。
开发与调试
javascript程序是纯文本的,且不需要编译,所以任何纯文本的编辑器都可以编辑javascript文件
开发工具
JavaScript Editor (推荐)
Dreamweaver CS4
Visual Studio 2008
调试工具
Firefox FireBug (推荐)
JavaScript Editor
Visual Studio 2008
根据我自己的学习、开发和调试JavaScript的经验和体会,推荐开发使用JavaScript Editor和调试使用Firefox FireBug
当然啦,牛人直接用NotePad或VIM等文本工具直接编写,也可以的,不过我目前还远远没达到这种水平(努力的目标)
学习推荐
W3schools.com(JavaScript 英文)
http://www.w3schools.com/js/
W3schools.com(JavaScript 中文)
http://www.w3school.com.cn/js/
详情请见我先前发表的博客:学习编程技术的成长之路 (JavaScript 学习 和 网页制作学习)