JavaScript高级编程.pdf阅读笔记==============================去IE警告条:---------------JS基础:===========JS如何实现继承:a、call方式b、apply方式c、prototype方式===========---------------1、注意:.js为JavaScript 纯脚本代码文件的保存格式,该格式在通过标记对,然后嵌入到 HTML 文档中; language属性:指定封装代码的脚本语言及版本type属性:指定标记对之间插入的脚本代码类型src:用于将外部脚本文件内容潜入到当前文档中,一般在较新版本的浏览器中使用,使用JS脚本编写的外部文件以.js为扩展名,同时在标记对中不包含任何内容。b、通过......5、脚本代码的嵌入的位置
进制(0开头),十六进制(C开头)浮点型:包含小数点的实数,可以是科学计数法13、JS中可以不声明就使用变量,在赋值的时候自动声明该变量,建议先声明再使用,变量标识符 var ,变量名允许包含:字符,下划线,美元符号。eg:var age=10, name="tom"; 声明了两个变量age,值为10,name值为"tom"14、全局变量:可以在脚本的任何位置调用,作用域为当前文档中整个脚本区域,局部变量:只能在此变量声明语句所属的函数内部使用,作用域仅为该函数体15、
:将字符串转换为浮点数escape()将一些特殊字符转换成ASCII码,unescape()将ASCII码转换为字符局部函数:定义在函数内部的函数,仅能在所定义的函数内部使用26、作为对象的函数:使用new操作符和Function对象的构造函数Function()来生成指定规则的函数,基本语法:var funcName = new Function ("arg",statements); arg为参数名,可以为空,statements为函数体执行的语句块;调用:funcName("sdf");arg的值就为字符串'sdf'了。27、作为对象的函数最重要的性质即为它可以创建静态变量,给函数增加实例属性,使得函数在被调用之间也能发挥作用。28、注释:// /*...*/
文本的对象,在每个单独保存的HTML文档中都直接包含一个document对象。35、JS中的核心对象:(下面六中详讲)String、Boolean、Date、Function、Math、Number、Array、Object、 RegExp、36、文档对象的引用:通过对象位置访问:document.forms[0].elements[0].values;通过name属性访问:支持name属性的对象有
Welcome toDOMWorld
--------2、DOM文档对象的属性:nodeName:返回当前节点名字nodeValue:返回当前节点的值,仅文本节点nodeType:返回与节点类型相对应的值parentNode:引用当前节点的父节点,如果存在的话childNodes:访问当前节点的子节点集合,如果存在的话firstChild:对标记的子节点集合中第一个节点的引用,如果存在的话lastChild:对标记的子节点集合中最后一个节点的引用,如果存在的话previousSibling:对同属一个父节点的前一个兄弟节点的引用nextSibling:对同属一个父节点的下一个兄弟节点的引用attributes:返回当前节点(标记)属性的列表ownerDocument:指向包含节点(标记)的HTM document对象注:遍历浏览器载入HTML文档形成的节点树时,可通过document.documentElement属性来定位根节点--------3、DOM文档对象的方法:getElementById(id)方法:返回指定id的元素节点对应的对象getElementByTagName(tag)方法:返回指定标签名的对象数组getElementByName()方法:getAttribute(attribute)方法:返回目标对象指定属性名称的某个属性setAttribute(attribute, value)方法:修改任意元素节点指定属性名称的某个属性值removeAttribute(name)方法:删除任意元素节点指定的属性更多方法参考文档../help/DHTML_网页制作完全手册.chm中DHTML参考->DHTML方法或者文档HTML_DOM_API.CHM->方法--------4、DOM中附加节点处理方法:document.createElement(tagName):创建由tagName指定类型的标记createTextNode(string):创建包含字符串string的文本节点createAttribute(name):针对节点创建由name指定的属性,不常用createComment(string):创建由字符串string指定的文本注释appendChild(newChild):添加子节点newChild到目标节点上insertBefore(newChild,targetChild):将新节点newChild插入到目标节点targetChild之前cloneNode(bool):复制节点自身,由逻辑量bool确定是否复制子节点removeChild(childName):删除由childName指定的节点,并返回该节点replaceChild(newChild,oldChild):用新节点替换旧节点oldChildinsertData(offset,string):从由offset指定的位置插入string值appendData(string):将string值插入到文本节点的末尾处--------文本节点操作:使用节点的data属性直接修改其内容e.data="v";使用节点的appendData("to NUDT");方法在内容后面添加字符串使用insertData(x,"yiu");方法在指定位置x处插入字符串使用deleteData(m,n);方法在指定位置m处开始删除n个字符使用replaceData(x,y,"ti");用字符串替换x处开始的y个字符splitText(n);将文本节点内容从n处分为两部分,右边的赋予新节点substringData(m,n);返回文本节点内容指定位置m处长度n的字符串--------
============================================-------六、String、Math、Array、Date、Number、Boolean、Function、Object等数据对象(及其方法)---使用prototype属性添加新的属性或者新方法:(适用于其他内置核心对象(Math对象除外))Number.prototype.新属性名/新方法名 = 具体的属性值/具体实现的方法(自定义方法);通过指向自定义方法实现新添加的方法的功能。新属性和方法的作用范围仅限于当前代码范围。-------1、String对象 //使用String对象的方法操作目标对象而不是操作对象本身。prototype //允许在String对象中增加新的属性和方法 length //唯一属性,只读的,返回目标字符串所包含的字符数(包含空格)toLowerCase() //转换为小写toUpperCase() //转换为大写concat(stringname) //字符串连接(将stringname连接到后面),返回一个新串indexOf(sn) //返回sn在字符串中首次出现的位置indexOf(sn,indexstart) //返回sn在字符串中首次出现的位置,从指定indexstart处开始搜lastIndexOf() //与indexOf()方法的不同点在于,搜索由右向左索slice(start,[end]) //返回start到end之间的子串,可选参数end若为负,则从末尾倒数end个为结束位置substr(start,[num]) //返回子串,start开始长度num,start为负数时当0处理(从起始位置)substring(start,[end]) //返回子串,start开始end结束,end为负则从起始位开始的start个字符charAt(index) //返回index出的字符,没有返回-1charCodeAt(index) //返回指定位置index处的字符的ISO_Latin_1值(我猜应该是ASCII值)split(separator,[num]) //使用分隔符分隔字符串,返回num个子串的数组,若没num,则全返回split(regexpression,[num]) //使用正则表达式分隔字符串,返回值为子串数组---将字符串标记为HTML语句(了解 pdf6.1.8)var Mystring = "welcome!".big();document.write(MyString); //这两句相当于welcome! 更多方法参见(JavaScript高级编程.pdf之6.1.9)-------2、Math对象 //属性和方法均为静态的,可直接访问,不生成对象的实例。//具有丰富的数学运算。但注意考虑程序的精度要求PI SQRT2 log10E //常用的基本属性random() //产生0-1之间的随机数,通过Math.random()*(n-m)+m;得到m-n之间的随机数(m!=n)round(n) //四舍五入,返回最进阶n的整数ceil(n) //返回大于等于一个数的最小整数floor() //返回小于等于一个数的最大整数max(m,n) //返回较大的一个数min(m,n) //返回较小的一个数pow(m,n) //返回m的n次方sqrt(m) //返回m的平方根toSource(object)//返回Math对象object的拷贝(在JS4.0版本中支持)toString() //返回表示Math对象的字符串使用with声明来简化对象的属性方法调用:with(obj){};在{}中可直接调用obj
的属性方法-------3、Array对象 (操作属性和方法都用Array.属性/方法 来调用)//使用构造方法Array() 产生Array对象,支持的最大长度为4294967295//new Array();空数组 new Array(4);长度为4的空数组 new Array(arg1,arg2..argn)直接初始化//a. var MyArray=[]; b. var MyArray=[,,,]; c. var MyArray=[23,,4,,234,,,2,64];//b看作具有4个未指定初始值的元素的数组 c构造一个稀疏数组,长度为9prototype //允许在Array对象中增加新的属性和方法排序操作:reverse() //按数组的索引号顺序将数组中的元素完全颠倒sort() //按字符顺序排序sort(function) //按指定排序算法function进行排序//算法function需遵循以下规则(使用函数表示算法)://两个可以比较的参数a,b;a在b之前返回负数,a==b返回0,a在b之后返回正数。模拟堆栈操作:pop(elem) //删除元素,将操作的元素作为返回值(尾部进行)push(elem1,[elem2,...]) //将参数作为元素依次添加进数组,将操作的元素作为返回值(数组尾部操作)shift(e),unshift(e) //删除,添加元素,将操作的元素作为返回值(数组头部操作),操作后,其他元素依次移动位置,(数组头部操作)任意位置添加,删除元素的操作(可进行数组中插入元素):splice(start,delete,[arg1,arg2...]) //从start开始删除delete个元素,再在删除后的start处插入arg1,...(使用arg1...替换start处开始的delete个元素)length属性:可通过更改length属性来改变数组,//减小数组后尾部的元素将被舍去,//增大后尾部增加的地方为undefined(未定义)类型join() //将数组转换为字符串,以","号连接各元素,并返回串join(str) //转换为字符串,以str连接各元素toString() //返回一个包含所有元素且以逗号隔开的字符串,在将数组作为字符串使用是强制使用(在Navigator 3+中还支持toSource()方法,返回字符串,用逗号隔开,整个字符串用"[]"括起来表示它是一个数组)concat(mar1,[mar2,...]) //将mar1,mar2,...数组连接到目标数组后面,返回结果是一个新数组-------4、Date对象:GMT格林威治时间,UTC世界协调时间标准,(欧美日期星期和月份以0开始)构造方法:new Date() //构造一个空Date对象实例,表示客服端当前日期new Date(milliseconds) //构造一个与GMT标准时间相距milliseconds毫秒的Date对象实例new Date(string) //构造一个以string(符合特定格式)表示的时间的Date对象实例new Date(year,month,day,hours,minutes,seconds,milliseconds);//通过具体的日期属性构造一个Date对象实例prototype //允许在Date对象中增加新的属性和方法getTime() //返回毫秒数toString() //返回本地时间字符串 Fri Aug 3 22:49:00 UTC+0800 20
07toLocaleString() //返回本地时间字符串 2007年8月3日 22:49:00toGMTString() //返回格林威治时间(GMT)时间字符串 Fri, 3 Aug 2007 14:49:00 UTCtoUTCString() //返回国际标准时间(UTC)字符串 Fri, 3 Aug 2007 14:49:00 UTCgetTimezoneOffset() //返回本地时间与GMT的时间差,单位分钟Date.parse(x) //返回本地时间累积毫秒数 //将特定格式的字符串转化为毫秒数Date.UTC(x) //返回UTC时间累积毫秒数getFullYear(),getYear(),getMonth(),getDay(),getDate(),getHours(),getMinutes(),getSeconds(),getMilliseconds(),getTime()setFullYear(), setMonth(), setDate(),setHours(),setMinutes(),setSeconds(),setMilliseconds(),setTime(allms)(月份0-11 || 星期0-6)January February March April May June | July August September October November DecemberSunday Monday Tuesday Wednesday Thursday Friday Saturday-------5、Number对象:new Number(); new Number(value); //前者默认值为0prototype //允许在Number对象中增加新的属性和方法toString() //转换为String类型(新对象)并返回,原Number类型数据不变valueOf() //得到一个Number对象实例的原始Number值6、Boolean对象:(null NaN 0 三种代表false,其余代表true)new Boolean(); //三种创建对象实例的方法new Boolean(value); //若value为String类型,则布尔值为trueBoolean(value); //生成的是boolean变量型,而不是对象型prototype //允许在Boolean对象中增加新的属性和方法 toString() //将对象的值作为String型返回,valueOf() //得到一个Boolean对象实例的原始Boolean值-------7、Function对象: Function是对象,function数函数。arguments //半酣传给函数的参数,智能在函数内部使用prototype //允许在Function对象中增加新的属性和方法apply() //将一个Function对象的方法使用在其他Function对象上call() //该方法允许当前对象调用另外一个Function对象的方法toSource() //允许创建一个Function对象的拷贝toString() //将定义函数的JS源代码转换为字符串并将其作为调用此方法的结果返回-------8、Object对象: 所有JS对象的超类,提供了基本属性和方法,如prototype,toString()方法new Object([string]) //以传入的可选参数string初始化对象实例,如没参数则为未定义属性的对象new Object(n1:value1,n2:value2,...) //n1...为属性,n2...为属性值//参见pdf6.8.1constructor //指定对象的构造函数prototype //允许在Object对象中增加新的属性和方法eval() //通过当前对象执行一个表示JS脚本代码的字符串toString() //返回表示对象的字符串valueOf() //返回目标对象的值程序要可以自定义由Object对象派生的对象,并为其添加特定的属性和方法的方式来实现特定的功能===
===========================七、Window对象及相关顶级对象-------注意:模式对话框:关闭之前使父窗口无效,其内部拥有消息循环;非模式对话框:关闭之前父窗口有效并能操作。与父窗口共用一个消息循环。-------1、Window对象:为浏览器窗口对象,为文档提供一个显示的容器,打开浏览器窗口的时候创建该对象实例在有框架集或者父子窗口的时候,不能省略引用Window对象的代码status //窗口底部浏览器状态栏的显示I、交互式对话框:a、警告框:alert(str)产生,带有一个不返还任何结果的"确认"按钮b、确认框:conform(str)产生,带有"确认""取消"按钮,让用户表示同意与否,返回true或falsec、提示框:prompt(targeQ,defaultS)产生,参数1代表需要客户回答的问题,参数2代表默认答案//有两按钮"确认""取消",点击确认后返回提示框中输入的值,点取消或者关闭返回nullII、设定时间间隔:按某个指定的时间间隔去周期性触发某个事件(循环执行)a、TimerID=setInterval(targetProcess,itime) //启动定时器,返回定时器引用,参数1指目标事件,参数itime指间隔的时间b、clearInterval(TimerID) //停止指定引用表示的定时器III、事件超时控制:用于设置某事件的超时,即在设定时到来时触发某指定的事件(执行一次)a、TimerID=setTimeout(targetProcess,itime) //事件超时后执行b、clearTimeout(TimerID) //使事件超时执行失效IV、创建管理窗口window.open(targetURL, pageName, options, replace); //targetURL指定要打开的目标文档地址,pageName指定该页面的引用名称, //options是一组包含用逗号隔开的可选属性对指明新窗口的各种属性,directories: yes/no 是否具有目录按钮width: integer 宽度height: integer 高度left: integer 左边距top: integer 上边距location: yes/no 是否具有地址栏menubar: yes/no 是否具有菜单栏resizable: yes/no 是否允许改变大小scrollbars: yes/no 是否具有滚动条status: yes/no 是否具有状态栏toolbar: yes/no 是否具有工具栏location=yes,menubar=yes,resizable=yes,scrollbars=yes,status=yes,toolbar=yeswindow.close();V、常见属性和方法:(详见pdf7.2.5)属性:closed,defaultStatus,document,frames,history,name,opener,parent,self,status,top方法:alert(),blur(),clearInterval(TimerID),clearTimeout(TimeID),close(),conform(text),focus(),moveBy(deltaX,deltaY),moveTo(x,y),open(URL,Name,options),prompt(text[,str]),resizeBy(deltaX,deltaY),resizeTo(x,y),scroll(hori,Verti),scrollBy(deltaX,deltaY),scrollTo(x,y),setInterval(expression,milliseconds,[arguments]),setTimeout(expression,milliseconds,[arguments]),-------2、Navigator对象:浏览器对象常用属
性和方法:appCodeName appName appVersion cookieEnabled MimeTypes Plugins platform userAgent appMinorVersion cpuClass browserLanguage userLanguage systemLanguage online userProfile language javaEnabled() taintEnabled()preference()-------3、Screen对象:常见属性: availHeight:可用区域高度availWidth:可用区域宽度height:高度width:宽度colorDepth:返回"显示"控制面板中设置的颜色位数availLeft:可用区域最左边起始像素位置availTop:可用区域最顶端起始像素位置pixelDepth:返回"显示"控制面板中设置的颜色位数bufferDepth:返回标记offscreen缓冲是否打开和缓冲的颜色深度,默认值0-------4、History对象:属性和方法:length:保存历史URL地址列表的长度信息current:在具有签名脚本的网页中指向历史URL列表的当前项next:在具有签名脚本的网页中指向历史URL列表的当前项的前一项previous:在具有签名脚本的网页中指向历史URL列表的当前项的下一项back():页面后退forward():页面前进go(index | URLString):页面定向。参数index可以是0,并设置合适的间隔时间计时器来实现文档页面重载;1等同于forward(),-1等同于back()。参数URLString时,URL必须存在于历史URL列表中-------5、Location对象URL常规格式:protocol://hostname[:port]/[path][?search][#hash]protocol:网络协议,有Http,Ftp,File,Telnet,Gopher等hostname:服务所在主机对应域名由DNS解析port:端口path:资源相对于主机的路径search:指URL中传递的查询字符串hash:文件偏移量属性和方法:hash host hostname href:完整的URLpathname:URL完整的路径部分portprotocol:协议部分包括冒号searchassign(URL):将参传入的URL赋予location对象或其href属性reload(Boolean):重载(刷新)当前页面replace(URL):载入URL指定的文档---history.go(0)实现重载,在缓冲区取得文档,并保持页面中许多对象的状态,与浏览器工具栏的Reload/Refresh(重载/刷新)按钮功能相同location.reload(boolean)实现重载,目标页面内的所有对象都自动更新。参数为true时,强制从服务器重载页面(每次都默认请求web服务器返回当前URL对应的页面);参数为false时,强制从缓冲区重载页面(每次都默认请求浏览器从缓冲区载入当前URL对应的页面,如果缓冲区没有则从服务器重载)。----------6、Frame对象:-------7、Document对象:在 八 中祥讲-------==============================-------八、Document对象详细讲解-------可以通过document.all判断浏览器是否是IE,eg: if(document.all){alert('是IE');}1、属性:bgColor:表示
文档背景色fgColor:表示文档文本颜色linkColor:未访问链接颜色alinkColor:链接被单击的颜色vlinkColor:已访问链接颜色2、方法:open([mimeType][,replace]); //打开文档,参数一通知浏览器接收类型(text/html等等),参数二表示待写入的目标文档是否替换浏览器历史列表中当前文档。write();writeIn(); //在不重载/重写整个页面的情况下改变文本节点和文本域对象的内容。写入的字符串参数可以是多个string的组合,使用'+'或者','连接起来。后者会写入换行符在写HTML标记的时候:document.write("
andStr标识的命令 getElementById(idStr) 根据元素的id 属性引用文档中任意元素 getElementByName(nameStr) 根据元素的name属性引用文档中任意元素 open([mimeType][,replace]) 参一表文档类型,二表示是否取代历史列表中当前文档queryCommandEnabled(str) 显示适合调用的对象是Document还是TextRangequeryCommandIndtem(str) 显示命令是否处于不确定状态 queryCommandCommandState(str) 显示命令是处于完成状态(true)、正在执行状态(false)、还是不确定状态(null)queryCommandSupported(str) 显示当前浏览器是否支持指定的命令 queryCommandText(str) 返回命令执行完毕以结果返回的任何文本 queryCommandValue(str) 返回命令执行完毕返回的结果(如果存在) write(expr1[,expr2,…,exprn]) 将表达式expr1,expr2,…,exprn 写入当前文档 writeIn(expr1[,expr2,…exprn]) 作用同上,结尾加上换行符,类似标记-------body元素对象常见属性和方法:aLink 表示文档中文本链接被单击后的颜色 background 表示文档的背景图片 bgColor 表示文档的背景色 bgProperties 标识文档滚动时页面背景图片是固定还是随文档移动,可选值scroll(表示滚动)和fixed(表示固定)bottomMargin 保存文档内容与浏览器窗口或框架底部的距离 leftMargin 保存文档内容与浏览器窗口或框架左边的距离 link 表示文档中未访问文本链接的颜色 rightMargin 保存文档内容与浏览器窗口或框架右边的距离 text 表示文档中文本的颜色 topMargin 保存文档内容与浏览器窗口或框架顶部的距离 vLink 表示文档中已访问文本链接的颜色 noWrap 标识是否将文档中文本限制在窗口或框架的宽度内,参数为布尔值“true ”或“false ” scroll 标识是否隐藏文档的滚动条,参数为布尔型字符串“yes”或“no” scrollLeft 返回页面左边与水平滚动条左端之间的距离 scrollTop 返回页面顶部与垂直滚动条顶部之间的距离 createControlRange() 返回处于编辑模式下当前文档选定范围内所有控件形成的数组,常规视图下返回空数组 createTextRange() 返回包含body 元素的HTML 文本和body 文本对应的初始TextRange对象 doScroll(ScrollAction) 模拟滚动条上的用户动作,以ScrollAction标识用户的动作,如PageDown、Left 、PageUp等 ------------------------------------------------==========================================================================================