南师大教育技术学考研笔记_JavaScript入门经典
- 格式:docx
- 大小:1008.78 KB
- 文档页数:10
高性能javascript学习笔记一、加载和执行<script>标签每次出现都让页面等待脚本的解析和执行,无论当前javascript代码是内嵌的还是包含在外链文件中的,都必须停下来等待脚本执行完成之后才继续页面的下载和渲染,用户的交互。
因为当遇到<script>标签时,HTML页面无法获知javascript代码会不会该改变页面的内容,因此页面会停止下载和渲染,等待执行完javascript代码之后才继续。
1、脚本位置浏览器在解析到<body>之前不会渲染页面的任何部分,js文件下载之后还有一段延时用于执行,在不能并行下载的浏览器中很耗时,IE8,Firefox3.5,Safari4和Chrome2允许并行下载javascript文件,但是仍然会阻塞其他资源下载和页面渲染。
因此尽可能的将的<script>标签放到<body>标签的底部,减少对整个页面下载的影响。
2、组织脚本每个<script>标签初始下载时都会阻塞页面渲染,应该减少页面包含的<script>标签数,包括内嵌脚本和外链脚本。
内嵌脚本放在外链样式<link>标签之后,内嵌脚本为了在执行时获得最精确的样式信息,会阻塞页面渲染而去等待样式表的下载,因此不要把内嵌脚本紧跟在<link>标签之后。
外链脚本:HTTP请求会带来额外的性能开销,因此下载单个100KB的文件比下载4个25KB的文件快,减少页面中外链脚本文件的数量有助于改善性能。
大型网站依赖多个javascript脚本文件,我们可以将多个javascript文件合并为一个文件,只引用一个<script>标签,减少性能消耗。
文件合并工作可以通过离线打包工具或者类似Yahoo!combo handler的实时在线服务实现。
雅虎提供了合并处理器。
通过使用指定文件(一个或多个)合并处理后的URL来获取任意数量的YUI文件。
1.疑问从未停止1.XMLDOM的load方法和loadXML方法有什么不同?答案:两种方法都是载入符合XML格式的文档,不同的是load载入的是一个完整的有路径的XML文档,而loadXML是用来载入符合XML格式的字符串或完整文档,简单的说就是他们一个是用来载入XML文件,一个是载入XML格式字符串2.为什么正则表达式偏向用字面量语法而少用new生成RegExp对象?答案:最主要的原因应该是对于new出的RegExp中对于某些元字符需要进行转义,但由于javascript解释器会用翻译”\n”的方法来翻译转义,所以往往这里需要进行双重转义才能达到想要的效果,但显然这并不好理解,二字面量只需要一次转义即可,所以多数人偏向于使用字面量的方式表示正则表达式2.第1章JavaScript是什么1.1历史简述97年,JavaScript1.1作为一个草案提交给欧洲计算机制造商协会(ECMA),第39技术委员会被委派来“标准化一个通用、跨平台、中立于厂商的脚本语言的语法和定义”,该标准定义了叫做ECMAScript的全新脚本语言1.2JavaScript实现一个完成的JavaScript由三部分组成2.核心(ECMAScript)3.文档对象模型(DOM)4.浏览器对象模型(BOM)1.2.1ECMAScriptECMAScript可以为不同种类的宿主环境提供核心的脚本编写能力,因此核心的脚本语言是与任何特定的宿主环境分开进行规定的ECMAScript还规定了以下内容:1.语法2.类型3.语句4.关键字5.保留字6.运算符7.对象ECMAScript仅仅是一个描述,定义了脚本语言的所有属性、方法和对象,其他语言可以实现ECMAScript来作为功能的基准1.2.2DOMDOM是HTML和XML的应用程序接口1.2.3BOM浏览器对象模型,可以对浏览器进行访问和操作1.2.4总结JavaScript的提交促使了ECMAScript脚本语言标准的形成,其他脚本语言要在ECMAScript的脚本语言标准下进行扩展,JavaScript就是这样一种语言,它扩展了ECMAScript成为脚本语言中的一种3.第2章ECMAScript基础2.1语法1.区分大小写2.变量时弱类型3.每行结尾分号可有可无4.注释与Java一样单行注释(//),多行注释(/**/)5.({})表名代码块2.2变量1.第一个字符必须是字母、下划线或美元符号2.余下字符何以是字母、数字、下划线或美元符号变量用var声明,变量可以不声明,解释程序遇到未声明变量,用该变量名创建一个全局变量2.3关键字2.4保留字2.5原始值和引用值1.原始值是存储在栈中的简单数据段,也就是说他们的值直接存储在变量访问的位置2.引用值是存储在堆中的对象,也就是说存储在变量处的值是一个指针,指向存储对象的内存处2.6原始类型五种原始类型Undefined/Null/Boolean/Number/String2.6.1typeof运算符返回值对应的变量类型:1.undefined Undefined类型2.boolean Boolean类型3.number Number类型4.string String类型5.object一种引用类型或null类型为什么typeof对null类型变量会返回object,这实际是JavaScript最初实现时的一个错误,然后被ECMAScript沿用了,现在null被认为是对象的占位符,但从技术角度来说,它仍然是原始值2.6.2Undefined类型该类型只有一个值,即undefined,当变量未初始化时,该变量默认值是undefined当函数没有返回值的时候,返回值也是undefined2.6.3Null类型该类型也只有一个值,即null,表示未存在的对象,因为undefined类型从null派生而来所以在值上null==undefined2.6.4Number类型1.既可以表示32位整数又可以表示64位浮点数2.8进制第一位必须是0,16进制必须为0x,虽然可以这样表示,但所有计算结果都是10进制3.Number.POSITIVE_INFINITY值为正无穷大,Number.NEGATIVE_INFINITY值为负无穷大4.isFinit()判断一个数是不是无穷大5.NaN表示非数(not a number),NaN!=NaN2.6.5String类型字符串每个字符都有特定位置,从0开始,字符串由双引号或单引号声明2.7转换2.7.1转换成字符串1.原始值Boolean值、数字和字符串都有toString()方法,可以把他们的值转换成字符串2.Boolean值转换true或false3.数字分两种,默认模式直接转换为10进制,可以通过toString(2),toString(8)等转换为对应的进制输出2.7.2转换成字符串1.parseInt(String)处理方法:从字符串第0个位置检测,如果第一个不是数字,返回NaN,否则继续检测,直到遇到非数字,返回检测完的数字部分2.parseInt还支持基模式parseInt(字符串,进制),将字符串转换为指定的进制数3.parseFloat方法类似,它会把小数点之前的数看成整数,后面的看成小数,多余小数点的连同其后一并舍弃2.7.3强制类型转换1.Boolean(value),当value是一个至少有一个字符的字符串,非0数字,或对象,结果返回true,当value是空字符串,数字0,undefined或null,结果返回false 2.Number(value),因为进行的是整体转换,所以含非数字或不符合小数的数字将不能被正确转换,当字符串不能转换时返回NaN,可以转换的,Number会根据需要调用parseInt()或parseFloat()3.String(value)和toString都可以进行字符转换,不同的是String(value)可以转换null,undefined值为对应的字符串,而toString显然不可以2.8引用类型引用类型通常叫做类,也就是说,遇到引用值时,所处理的就是对象2.8.1Object类ECMAScript中的所有类都由这个类继承而来,而Object类与java中的ng.object非常相似Object类具有下列属性和方法1.Constructor对创建对象的函数的引用,对于Object类,该指针指向原始的Object()函数2.Prototype对该对象的对象原型的引用,对于所有的类,它默认返回Object对象的一个实例3.HasOwnProperty(property)判断对象是否有某个特定属性,必须用字符串指定该属性,例如,ob.HasOwnProperty(“name”)4.IsPrototypeOf(object)判断该对象是否为另一个对象的原型5.PropertyIsEnumerable(property)判断某一属性是否可以用for…in语句进行枚举6.ToString()返回对象的原始字符串表示7.Valueof()返回最适合对象的原始值上述所有属性方法都会被其他类覆盖2.8.2Bealean类2.8.3Number类2.8.4String类1.length属性,返回字符串中字符个数2.charAt(Number)和charCodeAt(Number)方法,返回字符串中Number位置的字符和字符代码3.indexOf(子字符串)方法,返回某个字符子串在字符串中的位置,没有返回-1,从头开始检索4.lastIndexOf(子字符串)方法,同上,从末尾开始检索5.localCompare(字符串),对字符串进行比较,相等返回0,按对象中字符在字母表中排序,对象更靠后返回1,否则返回-16.slice(起始位置,终止位置)与subString(起始位置,终止位置),不同之处在于对负数位置的处理,slice看成字符串长度+负数,subString将负数看做0处理7.toLowerCase(),toUpperCase()方法,大小写转换2.8.5instanceof运算符使用typeof检测引用类型时有一个问题,无论引用的是什么类型的对象,返回值都是“object”instanceof运算符可以检测对象是否为某一指定类型,例如,String s;var bl=s instanceof String;bl将返回true2.9运算符2.9.1一元运算符1.Delete删除对以前定义的对象属性或方法的引用,只能删除开发者自己定义的属性或方法,及将对它的引用设置为undefined值2.V oid对任何值都返回undefined3.++,--,=+,=-2.9.2位运算符1.~位运算NOT,按位取反2.&位运算AND3.|位运算或OR4.^位运算异或XOR5.<<左移运算6.>>有符号右移运算7.>>>无符号右移运算2.9.3Boolean运算1.&&与运算2.||或运算3.!非运算2.9.4乘性运算*乘法/除法%取余2.9.5加性运算+加,-减2.9.6关系运算符>大于,<小于,>=大于等于,<=小于等于等性运算符==等号!=非等号===全等号!==非全等号2.9.7条件运算符boolean_expression?true_value:false_value2.9.8赋值运算符2.10语句2.10.1If语句2.10.2迭代语句do…while/while/for/for…in/2.10.3标签语句lable:statement2.10.4break语句和continue语句2.10.5with语句with语句用于设置代码在特定对象中的作用域,2.10.6switch语句2.11函数2.11.1无重载函数无重载,判断arguments对象的个数可以实现和函数重载一样的功能2.11.2arguments对象arguments从0下标开始取值,表示函数的参数2.11.3Function类所有函数都应该看成是Function类,函数名只是对函数的引用,所以函数可以作为参数来传递,length方法指定了函数期待的参数个数,valueOf和toString显示函数的源代码2.11.4闭包闭包指该词法表示包含不必计算的变量的函数,也就是说,该函数能使用函数外定义的变量4.第3章对象基础3.1面向对象术语对象定义存放在一个函数中----构造函数3.1.1面向对象语言的要求1.封装-把相关信息,无论数据或方法存储在对象中的能力2.聚集-把一个对象存储在另一个对象内的能力3.继承-由另一个类或多个类得来类的属性和方法的能力4.多台-编写能以多种方法运行方法或函数的能力3.1.2对象的构成在ECMAScript中,对象由特性(attribute)构成,特性可以使原始值,也可以是引用值,如果特性存放的是函数,它将被看做对象的方法(method),否则被看成对象的属性(property) 3.2对象的应用3.2.1声明和实例化使用new关键字创建新对象3.2.2对象的引用在ECMAScript中,不能访问对象的物理表示,只能访问对象的引用,每次创建对象,存储在变量中的是该对象的引用,而不是对象本身3.2.3对象废除将对象引用设置为null3.2.4早绑定和晚绑定早绑定是指实例化对象前定义它的属性和方法,例如vb,java可以提供给开发人员某一对象的方法和属性列表晚绑定是指编译器或解释器在程序运行前,不知道对象的类型,使用晚绑定不需检查对象类型只要检查对象是否支持特性和方法即可3.3对象的类型3.3.1本地对象本地对象就是ECMAScript定义的类,由ECMAScript实现并提供是用的类Array类1.Length返回数据的长度2.toString和valueOf返回一个用,号分隔数组各项调用toString或valusof之后的值的串3.split(分隔符)可以将字符串按分隔符转化成数组4.join(分隔符)可以将数组按分隔符组成字符串5.支持栈模式,即后进先出(LIFO),push,pop分别为压入栈和弹出栈的函数6.shift()删除数组中的第一项7.unshift(数组项)将某一项放在数组的第一个位置,其他项依次后移8.通过push和shift可以实现队模式,及后进后出(LILO),9.reverse()点到数组元素顺序10.sort()可以对数组元素进行排序Date类3.3.2内置对象由ECMAScript实现提供的、独立于宿主环境的所有对象,在ECMAScript程序开始执行时出现,开发者不必明确实例化内置对象,他们已被实例化了Global对象实际上这个对象不存在,只是一些内置函数依附于它1.isNaN()判断是否是数字2.isFinite()判断是否无穷大3.parseInt()解析成整型4.parseFloat()解析成浮点型5.encodeURI()不对特殊字符进行编码,如冒号,问号,前斜杠等6.encodeURIComponent()对发现的所有非标准字符进行编码,这使得encodeURI可以处理完整的URI,而它只能处理URI后的字符串部分7.decodeURI()对应的解码8.decodeURIComponent()对应的解码Math对象1.min(num1,num2,num3…)返回一组数的最小值2.max(num1,num2,num3…)返回一组数的最大值3.abs(num)求一个数的绝对值4.ceil(num.num)25.5向上舍入265.floor(num.num)向下舍入25.5舍入256.round(num.num)四舍五入7.pow(num1,num2)num1的num2次幂8.sqrt(num)开num次方9.random()返回0-1之间的随机数3.3.3宿主对象所有非本地对象,都是宿主对象,即由ECMAScript实现的宿主环境提供的对象,所有的BOM和DOM都是宿主对象3.4作用域3.4.1公用、受保护和私有作用域ECMAScript中只有一种作用域,即公用作用域3.4.2静态作用域并非静态的类可具有静态的属性和方法,无需实例化该类的对象,即可访问该类的属性和方法,意思是类中的某些函数可以单独执行,不需要实例化对象3.4.3关键字this在实例化对象时,不知道开发者会使用什么样的变量名,使用this即可在多个地方重用同一个函数3.5定义类或对象3.5.1工厂方式因为JavaScript允许先创建对象,然后再定义对象的属性和方法,但是如果要创建多个对象就要建立多个重复的类,如果把上述创建对象的过程写到一个函数中,则就创建了工厂方式,可以用函数一个个的产生对象。
《精通Javascript》个人笔记DOM常用属性小结(一)1.getElementById()返回一个对象2.getElementsByTagName()返回一个有特定标签名称(tagname)的子元素列表,是数组对象。
例如:document.getElementsByTagName(”body”);3.getAttribute()返回指定属性的值。
如果被指名的属性不存在,则返回空字符串。
例如:object.getAttribute(attribute)4.setAttribute()(此处的例子来源于方继祥的博客)1、样式问题setAttribute(”class”, value)中class是指改变”class”这个属性,所以要带引号。
vName代表对样式赋值。
例如:var input = document.createElement(”input”);input.setAttribute(”type”, “text”);input.se tAttribute(”name”, “q”);input.setAttribute(”class”,bordercss);输出时:,即,input 控件具有bordercss样式属性注意:class属性在W3C DOM中扮演着很重要的角色,但由于浏览器差异性仍然存在。
使用setAttribute(”class”, vName)语句动态设置Element的class属性在firefox中是行的通的,但在IE中却不行。
因为使用IE内核的浏览器不认识”class”,要改用”className”;同样,firefox 也不认识”className”。
所以常用的方法是二者兼备:element.setAttribute(”class”, value); //for firefoxelement.setAttribute(”className”, value); //for IE2、方法属性等问题例如:var bar = document.getElementById(”testbt”);bar.setAttribute(”onclick”, “javascript:alert(’This is atest!’);”);这里利用setAttribute指定e的onclick属性,简单,很好理解。
js红宝书学习笔记(⼀)第⼀章什么是JS⼀、js是渗透到浏览器窗⼝及其内容的⽅⽅⾯⾯⼆、完整的JS包含以下⼏个部分1、核⼼:ECMAScript:是对实现规范描述的所有⽅⾯的⼀门语⾔的称呼,或⼀种标准ES6包含最重要的⼀批增强特性2、⽂档对象模型:DOM(document object model):API,将页⾯抽象成⼀组分层节点,进⾏增删改3、浏览器对象模型:BOM:API,⽤于访问和操作浏览器的窗⼝和⼦窗⼝,如弹出新窗⼝、alert、confirm等⽅法、navigator、location等窗⼝对象第⼆章 html中的js1、可选属性:src:外部⽂件,包含要执⾏的代码。
type:值始终是'text/javascript'2、代码中不能出现字符串'',若出现只需转义字符:'</script>'3、script标签常放在页⾯内容后⾯,使页⾯先完成渲染4、通常建议将javaScript代码放在外部⽂件,便于维护第三章语⾔基础⼀、语⾔特性:1、语法:类似Java、perl2、区分⼤⼩写3、严格模式:⼀种不同的JS解析和执⾏模型,ES3不规范的写法会被处理,⼜不会破坏ES3语法。
使⽤⽅法是在脚本开头加上'use strict'。
也可以指定⼀个函数在严格模式下执⾏,需在函数体闭包内第⼀⾏加上'use strict'4、语句以分号结尾5、变量声明:var可以在ES任何版本中使⽤,let、const只能在ES6以上版本使⽤(1)var:声明但不初始化变量时,默认值为undefined。
①作⽤域:函数作⽤域。
声明的变量会成为包含它的函数的局部变量。
⽽在函数内省略var,该变量就变成全局变量(不建议)②声明提升:声明的变量会⾃动提升到函数作⽤域顶部。
相当于在顶部添加'var xxx',默认值为undefined③全局声明:var在全局作⽤域中声明的变量会成为window对象的变量④for循环:定义的迭代变量会渗透到循环体外部,先迭代完才执⾏循环体内部代码(2)let:声明但不初始化变量时,默认值为undefined。
详解javascriptvoid(0)void关键字介绍 ⾸先,void关键字是javascript当中⾮常重要的关键字,该操作符指定要计算或运⾏⼀个表达式,但是不返回值。
语法格式:1. void func()2. void(func())实例1 当点击超级链接时,什么都不发⽣<!-- 1.当⽤户链接时,void(0)计算为0,⽤户点击不会发⽣任何效果 --><a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" >单击此处什么都不会发⽣</a><br>实例2 执⾏void操作符当中的代码<!-- 2.执⾏ void() 操作符中的代码 --><a href="javascript:void(alert('还真点啊你,真听话哈哈哈'))" rel="external nofollow" >点我弹出警告框</a><br><a href="javascript:void(console.log('还真点啊你,真听话哈哈哈'))" rel="external nofollow" >点我输出到控制台</a><br>实例3 计算void操作符当中的算术html:<button type="button">点我</button>js:<script type="text/javascript">document.querySelector('button').addEventListener('click', function () {var a, b, c, d;a = void(b = 2,c = 3);console.log('a => ' + a);console.log('b => ' + b);console.log('c => ' + c);console.log('d => ' + d);});</script>控制台输出:很显然,2赋值给了a, 3赋值给了b, a 和 d⼀样只是定义了没有赋值,所以为 undefined#与 javascript:void(0)的区别:#可以跳转到设置了id的⽬的地javascript:void(0)则停留在原地,⼀动不动,我们称之为“死链接”如下⾯这个例⼦:<a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" >你点吧,反正我就是不动,嘿嘿嘿</a><br><a href="#destination" rel="external nofollow" >点我跳转</a><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><h2 id="destination">⽬的地</h2>当点击第⼀个链接时,⼀动不动当点击第⼆个连接时,会跳转到指定id得位置(页⾯最底部)以上就是详解javascript void(0)的详细内容,更多关于javascript void(0)的资料请关注其它相关⽂章!。
附录:国内外心理学经典教材简评国内外心理学的经典教材可以分为普通心理学、发展心理学、教育心理学、实验心理学、心理测量、心理统计学等几大类。
普通心理学教材一般是学习心理学的入门教材,它描述心理现象发生和发展的最一般的规律。
发展心理学教材注重人类心理系统和个体心理发生发展的过程及其规律。
教育心理学教材重视教育过程中所包含的各种心理现象,以揭示教育同心理发展的相互关系。
实验心理学教材涉及心理学实验研究的原理、设计、方法、仪器、技术和资料处理等问题,使学习者能够以科学的实验方法研究人的心理现象和行为规律。
心理测量学教材可以使学习者了解人的心理差异测量和掌握编制心理测验方法。
心理统计学教材主要是以统计学的原理处理心理学的数据,从而更好地解决心理学的问题。
此外,一些工具书和丛书也会对学习者有很大帮助。
下面主要对在心理学学习中常用的国内外经典教材进行简要评析。
一、普通心理学心理学发展至今,内容已经极为丰富。
为了对心理学有全面的了解,最好从一本心理学导论或普通心理学入手。
(一)国内经典教材1.《普通心理学(修订版)》(彭聃龄主编,北京师范大学出版社)该教材自1988年第一版出版以来,已经再版三次,总印量达20万册,可见其受欢迎的程度。
同时经过多次修订,书中的内容详实,并且反映当代学科的新发展和变化,因此是很多学校本科生所使用的教材,同时也被很多高校作为考研指定参考书。
2.《普通心理学》(孟昭兰主编,北京大学出版社)该教材由孟昭兰主编,自1994年第一版问世后,迄今已多次印刷,是深受欢迎的国内普通心理学教材之一。
3.《心理学导论》(第二版)(黄希庭著,人民教育出版社)该著作是我国普通高等教育“十一五”规划教材,是1991年5月出版《心理学导论》的修订版,该书的第一版获国家教委第三届普通高等学校优秀教材二等奖,累计印刷达21次,除了保留了第一版的经典内容外,修订版加强了从当代心理学多种研究取向整合的角度加以阐述,并且新增加了近二十多年来心理学研究的新动向、新成果,同时以本著作为基础的普通心理学课程被评为国家级精品课程,本著作是国内最值得推荐的心理学导论类图书之一。
第1篇一、引言行为心理学是一门研究人类行为和动物行为的科学,它主要关注行为的发生、发展和变化,以及影响行为的因素。
行为心理学起源于20世纪初,其创始人之一是美国心理学家约翰·B·沃森。
随着研究的深入,行为心理学逐渐成为心理学领域的重要分支。
以下是对行为心理学入门的一些摘抄笔记。
二、行为心理学的基本概念1. 行为:行为心理学中的“行为”是指个体在特定环境下表现出的任何可观察到的活动。
它包括言语、动作、表情等。
2. 行为主义:行为主义是行为心理学的一种基本理论,认为所有行为都是通过条件反射和强化作用习得的。
3. 条件反射:条件反射是指个体在特定刺激下自动产生反应的现象。
经典条件反射和非条件反射是条件反射的两种形式。
4. 强化:强化是指通过奖励或惩罚来增强或减弱某种行为的过程。
5. 惩罚:惩罚是指通过给予不愉快的后果来减弱或消除某种行为的过程。
6. 逃避条件反射:逃避条件反射是指个体为了避免不愉快的刺激而采取的行为。
7. 回避条件反射:回避条件反射是指个体为了避免不愉快的刺激而采取的行为。
三、行为心理学的经典实验1. 桑代克的猫实验:桑代克通过实验发现,猫在多次尝试后,能够学会打开笼子并获取食物。
这个实验揭示了学习的过程和条件反射的原理。
2. 巴甫洛夫的狗实验:巴甫洛夫通过实验发现,狗在听到铃声时会分泌唾液,这是因为铃声与食物产生了条件联系。
这个实验验证了经典条件反射的存在。
3. 斯金纳的鸽子实验:斯金纳通过实验发现,鸽子可以通过观察和模仿其他鸽子的行为来学习新的行为。
这个实验揭示了观察学习和模仿学习的重要性。
四、行为心理学的应用领域1. 教育心理学:行为心理学在教育心理学中的应用主要关注如何通过强化和惩罚来改善学生的学习行为。
2. 临床心理学:行为心理学在临床心理学中的应用主要关注如何通过行为疗法来治疗各种心理障碍,如焦虑症、抑郁症等。
3. 工业心理学:行为心理学在工业心理学中的应用主要关注如何通过行为分析来提高工作效率和员工满意度。
iNote_JavaScript入门经典Paul Wilton & Jeremy McPeak第1章Web与JavaScript概述第2章JavaScript的数据类型第3章JavaScript的3类语句第4章JavaScript的对象第5章浏览器程序设计第6章HTML表单第7章窗体和框架第8章字符串操作第9章日期、时间和计时器第10章常见错误调试及处理第11章Cookie的使用第12章DHTML概述第13章现代浏览器中的DHTML第14章JavaScript与XML第15章ActiveX和Plug-ln的使用方法第16章Ajax和远程脚本第1章 Web与JavaScript概述1. JavaScript是一种解释型语言,而非编译型语言,且JavaScript和java除了名字相似外,没有任何共同点。
2. 学习JavaScript过程中,手工编写代码往往比依赖于开发工具效果好得多。
3. Firefox中上好的调试工具Firebug,顶好。
4. Javascript使用分号结束一个语句,当新起一行时,默认为语句结束。
只用//注释。
第2章 JavaScript的数据类型1. 概述1)JavaScript是一种弱语言,一般情况下,不需要声明数据的类型,javascript会自动计算它们的类型。
2)数值数据:整数和浮点数。
尽管整数和分数被看做不同的类型,其实,javascript统视为浮点型。
3)文本数据:用双引号或单引号括起来的字串或字符。
4)转义字符:@@@5)布尔数据:只有2个值,true|false。
2. 变量1)JavaScript对大小写敏感,变量名不能是关键字和特殊字符,不能以数字开头;2)声明的方法:var variable_name;变量声明而不赋值的默认为undefined类型;3)JavaScript中同一个变量名在不同时期可以指向不同数据类型的数据;3. 数值计算及字符串的基本操作1)+-*/%运算:javascript按照浮点数处理,e.g.5/4=1.25,即得到1.25而不是1;2)字符串的基本操作:连接字符串(直接“+”连接)|当字符串与数字相加时,数字转化为字符串,然后连接;4. 数据类型的转换:parseInt(parameter) & parseFloat(parameter) & converToInt(parameter),其中前两者的参数可以是数字,也可以是含有数字的字符串(数字必须在最前,其他字符在数字之后),如果参数有误,无法转换成数字,返回”NaN”,可使用isNaN函数判断真假;5. 数组1)定义的形式:var aryName = new Array();括号中可以加入1个整数,表示数组的长度,也可以直接写入元素,e.g. var aryName = new Array(“Paul”,45,”Sen”,34”);2)var aryName = new Array(3);var aryName = new Array(5);视为拓展了数组的长度;3)如果访问一个未定义的数组元素,值为undefined;4)多维数组:var aryName = new Array(3); var aryName[0] = new Array();^第3章 JavaScript的3类语句1. 选择语句(if & switch)1)对于&&运算,如果左操作数为false,无论有操作数是什么,都会直接返回false,对于||运算,如果左操作数为true,无论有操作数是什么,都会直接返回true;2)如果有N(N>10)条分支,应对这些分支进行分层,以减少判断的时间;3)布尔运算对于字符串同样可以直接使用;4)switch结构,break和default的用法与C语言中的一样。
2. 循环语句(for & while)1)for …in循环语句:应用于数组类型和对象类型的数据,遍历数组中的每一个元素,e.g.for(index in aryName);2)while,do…while,break,continue,用法与C语言中的一样。
3.函数1)参数不全或类型不对会导致错误;2)return语句可有可无,但为了保证程序的严谨性,即使不需要返回值,也写上return;3)函数的定义必须在调用之前,所以一般情况下把函数定义在<head>部位;4)变量的作用域:任何定义在函数之外的变量,在本页有效,即全局变量,而定义在函数内部的称之为局部变量(局部变量和全局变量最好不要重名)。
第4章 JavaScript的对象1. 基于对象的程序设计1)Javascript是基于对象的语言,本身包含的对象称之为“内建对象(native object)”;2)基于对象的程序设计,通过定义对象的属性和方法,实现对现实世界的建模;3)对象的创建与使用:var objectName = new Object(parameters);把某对象赋值给一个变量时,变量并不保存对象实际的数据,仅保存一个指向对象的引用,即该对象的地址,所以var object1 = new Object(p1,p2,p^); var object2 = object1;此时object指向object1,与var object1 = new Object();object2 = object1不同;4)基本数据类型与对象类型:如果声明一个基本类型的字符串,并把它视为一个字符串对象来使用,则javascript将知道该操作适用于String对象类型而不是基本数据类型(可视为智能化处理)。
2. JavaScript的内建对象(String,Math,Array,Date)1)String对象:var str = new String();括号内可以是字符串也可是是其他类型的常量。
也可以通过var str =”string^”的方式定义,javascript智能化处理;2)String对象的属性和方法:length,charAt(intN),charCodeAt(intN)(从字符串内取1个字符),fromCharCode(intN)(将字符编码转换成字符串),indexOf(str,intN) & lastIndexOf(str,intN)(查找字符串中是否含有某个子字符串,返回位置,查不到返回0);substr(intStart,intLength) & substring(intStart,intEnd)(复制字符串的子串,intLength 或intEnd省略时默认为到结束);toLowCase() & toUpperCase()大小写字符转换。
3)Math对象的方法:Math.abs(number) & Math.ceil(number)(大于或等于number的最大整数)& Math.floor(number)(小于或等于number的最大整数)& Math.round(number)(四舍五入)Math.random()返回0~1之间的随机数,包括0不包括1;Math.pow(m,n)乘方;4)Number对象var num = new Number(‘123’),javascript会自动转换;亦可以通过var num = 123;智能化转换;toFixed(intN)方法,用于截取指定小数点位数的数字,intN取0~20位的整数。
5)Array对象length属性,concat(ary1,ary2),把第2个数组连接到第1个数组后面;slice(intStart,intend),复制数组中的部分元素,返回新数组;join(str),把数组中的元素转换成1个字符串类型,str为分隔符;sort(),2Js_Course iNote_JavaScript入门经典1Js_Course iNote_JavaScript入门经典动态代码改变事件处理器所连接的处理函数时,一般使用第2中方法。
7. 浏览器版本检测1)document.all属性仅被IE4.0以上版本支持,Firefox和Netscape都不支持,如支持就会返回true,否则属性值为undefined,if语句判断为false,进而判断浏览器类别。
此方法亦可以判断浏览器是否支持某方法。
2)若浏览器不支持某段脚本,用<noscript>content</noscript>代码显示此情况下的信息。
3)使用navigator检测浏览器:erAgent(返回浏览器类型,版本号,操作系统等e.g. Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20100101 Firefox/6.0)。
第6章 HTML表单1. HTML表单概述1)访问表单的方法:document.form_name或forms数组(forms[N]或forms[formsName]);2)Form对象的属性和方法:elements[]属性,包含了表单中所有控件对应的元素对象,其length属性与Form对象的length属性等效,submit()方法,提交表单时不触发submit事件,不调用onsubmit事件处理器,reset()方法。
2. 表单元素1)常用属性和方法:name(标识符),value,focus()和blur()方法2)表单元素的引用:window.document.myForm.myButton.value = “All isWell”;第7章窗体和框架1. 框架与window对象1)1个包含框架集的页面中有多个对应的window对象;框架的parent属性表示当前框架的父框架,top属性表示顶层框架,window.self表示自身所在的框架。
2)根据文件路径获取文件名:var loc = window.location.href;var fileNameStart = stIndexOf("/")+1;var fileName = loc.substr(fileNameStart);2. 框架间代码访问:1)框架的访问:frames[]数组的数字索引或字符索引,或者window.parent.frameName;2)框架之间的函数和变量可以直接引用,不需要声明或者前置;3. 打开新的浏览器窗口1)window.open(para1,para2,para3):参数1是HTML文件的URL地址,参数2为新窗口分配的名字,参数3是一个字符串,可规定新窗口的属性(一旦给出第3个参数,除给定属性外,其他的属性默认为no或者0);2)打开新窗口后,焦点并没有转移,可以通过newWindow.focus()获取焦点,亦可以使用newWindow.close()关闭窗口;3)浏览器窗口之间的脚本编程:新窗口的opener属性,返回打开当前窗口的原窗口的window对象;4)检查窗口是否存在或是否已关闭的代码块:if(typeof(windowName) == “undefined” || windowName.closed == true)alert(“No window is open!”);5)移动或改变窗体的大小:myWindow.resizeTo(300,350);myWindow.moveTo(100,50);myWindow.resizeBy(-10,30);myWindow.moveBy(30,50);3. 安全性1)浏览器的设置限制了window.close()方法;2)如果当前页面来自于同一个服务器,当它访问其他服务器时,受到“同源策略”的约束。