日期:2014-05-16  浏览次数:20356 次

javascript-总结

?

JavaScript

? ? ? ? 是一种脚本语言(脚本语言是一种轻量级的编程语言,是一条条的纯文本命令,用记事本可以看到的)。?

? ? ? ? 是一种解释性语言(就是说,代码执行不进行预编译)。?

? ? ? ? 不需要显式的去调用,有由数行可执行计算机代码组成。如:

? ? ? ? ? ? ? ? <script type="text/javascript">

? ? ? ? ? ? ? ? ? ? ? ? document.write("<h1>This is a header</h1>");//代码

? ? ? ? ? ? ? ? ? ? ? ? {//代码块

? ? ? ? ? ? ? ? ? ? ? ? document.write("<p>This is a paragraph</p>");

? ? ? ? ? ? ? ? ? ? ? ? document.write("<p>This is another paragraph</p>");

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? </script>

?

脚本

  1. [script] 表演戏剧、拍摄电影等所依据的底本电影脚本

  2. [manuscript]∶书稿的底本(蓝本、话本) ? ? ? ? ? ? ? ?

?

概念

? ? ? ? 变量、表达式、运算符、语句、函数 ? ? ?

?

变量

? ? ? ? 本地变量:函数内声明的变量。当退出该函数后,这个变量会被撤销。这种变量称为。

? ? ? ? 全局变量:函数之外声明的变量,则页面上的所有函数都可以访问该变量。在页面关闭时变量会被撤销。

? ? ? ? 以下值,在判断条件时均视为false

? ? ? ? var a1; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//等效于var a4 = undefined;,al的值也是undefined

? ? ? ?var a2 = null;

? ? ? ?var a3 = false;

? ? ? ?var a4 = undefined;

? ? ? ?var a5 = NaN;

? ? ? ? if(!a1){alert("a1 ");}

? ? ? ? if(!a2){alert("a2 null");}

? ? ? ? if(!a3){alert("a3 false");}

? ? ? ? if(!a4){alert("a4 undefined");}

? ? ? ? if(!a5){alert("a5 NaN");}

运算符

? ? ? ? 算术运算符

? ? ? ? 赋值运算符

? ? ? ? 字符串的 + 运算符

? ? ? ? 比较运算符if(age>18)中的age>18

? ? ? ? 逻辑运算符 &&, ? ? ? ?||, ? ? ? ?!

? ? ? ? 条件运算符variablename=(condition)?value1:value2 //三目运算符

?

方法自定义的3种方式

? ? ? ? 直接声明:

? ? ? ? ? ? ? ? function a(){...}

? ? ? ? 匿名赋值:把方法的引用,赋值给符号引用

? ? ? ? ? ? ? ? var ?f = function (x) {reurn x * x} ; ?

? ? ? ? ? ? ? ? ? ? ? ? //扩展1,起别名

? ? ? ? ? ? ? ? ? ? ? ? var prd = {};

? ? ? ? ? ? ? ? ? ? ? ? prd.f = f;

? ? ? ? ? ? ? ? ? ? ? ? //扩展2,每一个对象都有个prototype类型,给对象动态添加方法

? ? ? ? ? ? ? ? ? ? ? ? String.prototype.toNum = function(){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? var reg= new RegExp(",","g");

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? return this.replace(reg,"");

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? //扩展3,在对象内部定义

? ? ? ? ? ? ? ? ? ? ? ? ?join : function(callback) {... },

? ? ? ? 嵌套在on*事件中的js

? ? ? ? ? ? ? ? onkeyup= "value=value.replace(/[\uFF00-\uFFFF]/g, ' ')

? ? ? ? ? ? ? ? onsubmit="return false;"即取消提交############

? ? ? ? ? ? ? ? <form onsubmit="submitTest();">等效于Form.prototype.onsubmit= function(){submitTest();};

? ? ? ? ? ? ? ? <form onsubmit="return submitTest();">等效于Form.prototype.onsubmit= function(){return submitTest();};

? ? ? ? ? ? ? ? //还可以写2个以上的语句

? ? ? ? ? ? ? ? onmouseover="alert('An onMouseOver event');return false" ? ??

? ? ? ? ? ? ? ? <a href="javascript:setMenuCookie('msg');">

执行顺序

? ? ? ? JS 在函数执行前将整个函数的变量进行声明,无论这个变量的声明语句有没有机会执行

? ? ? ? function () { ?

? ? ? ? ? ? ? ? alert(om); // 显示 undefined ?//但是不报 JS 错误

? ? ? ? ? ? ? ? if ( false ) { var om = 'abc' ;} // 此处声明没有机会执行 ?

? ? ? ? } ??

?

? ? ? ? JS 解析器在执行语句前会将函数声明和变量定义进行"预编译"(按<script>块、段来预编译的)

? ? ? ? ? ? ? ? function addB() {...}是声明,会预编译

? ? ? ? ? ? ? ? var addB = function addB() {...}是声明,会预编译

? ? ? ? ? ? ? ? var addB = function{...}是预声明,只有执行到此代码时才会编译,不会预编译。不能在它之前使用addB方法

?

? ? ? ? js代码只要写在<script>块里面就行,不一定非要是function结构,可以直接写语句。

?

? ? ? ? head中的js--->页面中的js(body标签内或body标签外都一样)-->body标签onload(加载完后的)事件中的js.

?

?

JavaScript 实现是由以下 3 个不同部分组成的:

? ? ? ? 核心(ECMAScript) js语法及js内置对象

? ? ? ? 文档对象模型(DOM)?

? ? ? ? 浏览器对象模型(BOM)?

?

js可以自由使用这3类对象

? ? ? ? 宿主对象:寄宿浏览器提供的对象:DOM,BOM

? ? ? ? 本地对象:17个,其中Math为静态类的,Global的方法和属性直接用,不需要"对象."