日期:2014-05-16 浏览次数:20356 次
?
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的方法和属性直接用,不需要"对象."