Javascript学习总结

上传人:wdg****h8 文档编号:179768006 上传时间:2021-04-12 格式:DOC 页数:26 大小:116KB
返回 下载 相关 举报
Javascript学习总结_第1页
第1页 / 共26页
Javascript学习总结_第2页
第2页 / 共26页
Javascript学习总结_第3页
第3页 / 共26页
Javascript学习总结_第4页
第4页 / 共26页
Javascript学习总结_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《Javascript学习总结》由会员分享,可在线阅读,更多相关《Javascript学习总结(26页珍藏版)》请在金锄头文库上搜索。

1、- -Javascript学习总结经过一个月的Javascript学习,现总结如下:1 Javascript简介:首先简单说一下Javascript这门语言。JavaScript是一种属于网络的解释型的脚本语言,已经被广泛用于Web应用开发。最早是在HTML网页上使用,用来给HTML网页增加各式各样的动态功能。在过去,JavaScript只是被用来做一些简单的网页效果,比如表单验证、浮动广告等,所以那时候JavaScript并没有受到重视。自从AJAX开始流行后,人们发现利用JavaScript可以给用户带来更好的体验,甚至利用这一优点开发了大型网页游戏,于是这门语言被重视了起来。 2. Ja

2、vascript代码存放的位置1.JavaScript代码可以直接嵌在网页的任何地方,不过通常我们把Javascript代码放在中。2.可以将JavaScript代码放到一个单独.js文件中,如将文件命名为:script.js那么引用方式为: 3 Javascript中的数据类型Javascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了五种基本的数据类型(Number,String,Boolean,Null,Undefined)和两种特殊数据类型(数组,对象)用来处理数据和文字。1. NumberJavaScript不

3、区分整数和浮点数,统一用Number表示。Number可以直接做四则运算,规则和数学一致:2. String字符串是以单引号或双引号括起来的任意文本,比如abc,xyz等等。请注意,或本身只是一种表示方式,不是字符串的一部分,因此,字符串abc只有a,b,c这3个字符。3. Boolean布尔值和布尔代数的表示完全一致,一个布尔值只有true、false两种值,要么是true,要么是false。4. Nullnull表示一个“空”的值,它和0以及空字符串不同,0是一个数值,表示长度为0的字符串,而null表示“空”。5. Undefined在JavaScript中,还有一个和null类似的un

4、defined,它表示“未定义”。6. 数组数组是一组按顺序排列的集合,集合的每个值称为元素。JavaScript的数组可以包括任意数据类型。例如:1, 2, 3.14, Hello, null, true;7. 对像JavaScript的对象是一组由键-值组成的无序集合。JavaScript对象的键都是字符串类型,值可以是任意数据类型。例如:var person = name: Bob, age: 20, tags: js, web, mobile, city: Beijing, hasCar: true,;Javascript 标识符可以使用数字、大小写字母,下划线,美元符号构成,标识符不

5、能以数字开头。JavaScipt严格区分大小写,代码必须以分号结束。4 Javascript中的函数1. 方法在一个对象中绑定函数,称为这个对象的方法。在JavaScript中,对象的定义是这样的:var xiaoming = name: 小明, birth: 1990;但是,如果我们给xiaoming绑定一个函数,就可以做更多的事情。比如,写个age()方法,返回xiaoming的年龄:var xiaoming = name: 小明, birth: 1990, age: function () var y = new Date().getFullYear(); return y - this

6、.birth; ;xiaoming.age; / function xiaoming.age()xiaoming.age(); / 今年调用是25,明年调用就变成26了2.高阶函数JavaScript的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。(1). map()举例说明,比如我们有一个函数f(x)=x*x,要把这个函数作用在一个数组1, 2, 3, 4, 5, 6, 7, 8, 9上,就可以用map实现如下:function pow(x) return x * x;var arr = 1, 2, 3

7、, 4, 5, 6, 7, 8, 9;arr.map(pow); / 1, 4, 9, 16, 25, 36, 49, 64, 81由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果:(2) . reduce()Array的reduce()把一个函数作用在这个Array的x1, x2, x3.上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算,比方说对一个Array求和,就可以用reduce实现:var arr = 1, 3, 5, 7, 9;arr.reduc

8、e(function (x, y) return x + y;); / 25(3) . filter()filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。例如,在一个Array中,删掉偶数,只保留奇数,可以这么写:var arr = 1, 2, 4, 5, 6, 9, 10, 15;var r = arr.filter(function (x) return x %

9、 2 != 0;);r; / 1, 5, 9, 15(4) . sort()JavaScript的Array的sort()方法就是用于排序的,但是排序结果可能让你大吃一惊:/ 看上去正常的结果:Google, Apple, Microsoft.sort(); / Apple, Google, Microsoft;/ apple排在了最后:Google, apple, Microsoft.sort(); / Google, Microsoft, apple/ 无法理解的结果:10, 20, 1, 2.sort(); / 1, 10, 2, 20这是因为Array的sort()方法默认把所有元素先

10、转换为String再排序。sort()方法也是一个高阶函数,它还可以接收一个比较函数来实现自定义的排序。例如:要按数字大小排序,我们可以这么写:var arr = 10, 20, 1, 2;arr.sort(function (x, y) if (x y) return 1; return 0;); / 1, 2, 10, 203. 闭包闭包(closure)定义非常抽象,很难看懂。我的理解是,闭包就是能够读取其他函数部变量的函数。由于在Javascript语言中,只有函数部的子函数才能读取局部变量,因此可以把闭包简单理解成定义在一个函数部的函数。所以,在本质上,闭包就是将函数部和函数外部连接

11、起来的一座桥梁。闭包的用处,一个是可以读取函数部的变量,另一个就是让这些变量的值始终保持在存中。(1) . 读取函数部的变量例如:function f1()var n=999;function f2()alert(n); return f2;var result=f1();result(); / 999把f2作为返回值,我们就可以在f1外部读取它的部变量(2) . 将变量的值始终保持在存中例如: function f1()var n=999;nAdd=function()n+=1function f2()alert(n);return f2;var result=f1();result();

12、/ 999nAdd();result(); / 1000在这段代码中,result实际上就是闭包f2函数。它一共运行了两次,第一次的值是999,第二次的值是1000。这证明了,函数f1中的局部变量n一直保存在存中,并没有在f1调用后被自动清除。原因就在于f1是f2的父函数,而f2被赋给了一个全局变量,这导致f2始终在存中,而f2的存在依赖于f1,因此f1也始终在存中,不会在调用结束后,被垃圾回收机制回收。4. 箭头函数ES6标准新增了一种新的函数:Arrow Function(箭头函数)。为什么叫Arrow Function?因为它的定义用的就是一个箭头:x = x * x上面的箭头函数相当于

13、:function (x) return x * x;箭头函数相当于匿名函数,并且简化了函数定义。箭头函数有两种格式,一种像上面的,只包含一个表达式,连 . 和return都省略掉了。还有一种可以包含多条语句,这时候就不能省略 . 和return:x = if (x 0) return x * x; else return - x * x; 如果参数不是一个,就需要用括号()括起来:(x, y) = x * x + y * y5. generatorgenerator(生成器)是ES6标准引入的新的数据类型。一个generator看上去像一个函数,但可以返回多次。generator跟函数很像,定义如下:function* foo(x) yield x + 1; yield x + 2; return x + 3;generator和函数不同的是,generator由function*定义(注意多出的*号),并且,除了return语句,还可以用yield返回多次。5 标准对象1. Date在JavaScript中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号