ECMA(European Computer Manufacturers Association)欧洲计算机制造商协会。其制定很多标准:
C#语言规范;C++/CLI语言规范;Eiffel语言;CD-ROM格式;ECMAScript语言规范(JavaScript)等。
JavaScript(NetScape)或JScript(Microsoft),都是ECMAScript(ECMA-262标准)的实现和扩展。
ECMA-262的最新版本(V5),于2009年12月发布。ECMAScript实际上是一种脚本在语法和语义上的标准。
JavaScript实际上是由ECMAScript,DOM和BOM(Browser Object Model,浏览器对象模型)三者组成的。
DOM(Document Object Model)文档对象模型,它是W3C(万维网联盟)组织推荐的标准。
DOM定义了表示和修改文档所需的对象,这些对象的行为和属性,以及这些对象之间的关系。
可以把DOM认为是页面上数据和结构的一个树形表示,但它可能并不是以这种树的方式实现的。
通过JavaScript,可以重构整个HTML文档,可以添加、移除、改变或重排页面上的项目。
JavaScript是解释性语言,基于对象,以函数为单位,弱类型,可嵌入HTML。
两种嵌入方式:javascript:alert("hi");;<script type="text/javascript> alert("hi"); </script>
导入外部文件:<script type="text/javascript src="test.js"> </script>
变量定义:隐式,直接赋值,先搜索上下文,没有才定义;显式,使用var关键字,直接重新定义。
局部变量:函数内,只能在函数内访问;全局变量:函数外,整个页面内都可以访问。
类型转换:数值,字符串,布尔,对象等类型间自动转换;toString(),parseInt(),parseFloat()
基本数据类型:数值(整数或浮点),布尔,字符串,undefined,null。
正则表达式:合法字符(x\0mnn\xhh\uhhhh\t\n\r\f\a\e\cx);通配符(^\d\D\s\S\w\W[]$);频率修饰符(?*+{m,n})。
复合类型:对象Object;数值Array;函数Function。
内置对象:Array,Date,Error,Function,Math,Number,Object,String。
运算符:赋值(=);加强的赋值(+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=,>>>=);算术(+,-,*,/,%,++,--);位(&,!,~,^,<<,>>,>>>);
比较(>,>=,<,<=,!=,==,!==,===);逻辑(&&,||,!);三目(?:);逗号(,);void(),typeof(),instanceof。
语句:所有语句以分号(;)结尾。语句块:用花括号({})括起来的若干条语句。它不是作用域。
异常抛出语句:throw new Error("错误"); 异常捕捉语句:try{} catch(e){} finally{}
with语句:with(object){statements}=object.statements;这是一种更简洁的写法。
流程控制:分支(if-else;switch-case-default);循环(while;do-while;for;for-in;break;continue)。
创建函数的方式:命名(function name),匿名(var vf=function);new Function(name,statements);
调用函数的方式:直接调用;fn.call(调用者,p1,p2,...);fn.apply(调用者,argument参数数组);
函数参数的参数传递同JAVA,若参数是普通类型,传递的值,若参数为对象,传递的引用或指针。
函数不支持重载(Overload),若函数同名,后面覆盖前面的。函数的属性分为实例属性和类属性。
函数本身就是类,定义了函数,就定义了个类。函数又是Object或Function的对象,instanceof。
函数是顶级的,具备独立性。对象的属性,本质上是关联数组。可通过prototype动态扩展一个类。
创建对象的方式:new 构造器(如Person),new Object,JSON(即可创建对象,也可创建数组)。
JavaScript,复习总结,布布扣,bubuko.com
原文地址:http://www.cnblogs.com/gaojs/p/3796103.html