我JSP学习心得1
老师布置了一项作业,说是要按着老师的要求写,但我觉得只要是技术分享的心得就是好的,不论是不是所要求的内容。
由于和几个人在外面给别人搭建网站,项目需要学习了jsp有用到了javascript,这里有一些学习心得。
给大家共享一下。
在JS中一个对象的数据属性一般有4个特性,分别为
- 值(value)
- 可写性(writable)
- 可枚举性(enumerable)
- 可配置性(configurable)
后三者的值都是布尔型
Object.getOwnPropertyDescriptor() 可以获得某个对象特定属性的属性描述符
想要批量修改或者创建这四个特性需调用
Object.defineProperties()第一个参数是要修改的对象,第二个参数是一个映射表,它包含需要新建或者修改的属性的名称,以及他们的属性符描述
单个调用Object。defineProperty()
(只能修改自身的不能修改继承的)
数组
- 数组中的索引可以是不连续的(对于不连续的数组,其length属性大于元素个数)
- 数组有两种创建方式(直接量,跟构造函数)
//直接量
var ary = [1,3,2];
//构造函数
var ary = new Array();
/*
如果实例化一个数组对象时传递了一个参数
ary = new Array(10);
表示的是 ary这个数组的长度是10;
如果传递了两个或者以上则跟直接量创建的‘一样’
*/var ary = [1,3,2]; //构造函数 var ary = new Array(); /* 如果实例化一个数组对象时传递了一个参数 ary = new Array(10); 表示的是 ary这个数组的长度是10; 如果传递了两个或者以上则跟直接量创建的‘一样’ */
- 所有的数组都是对象,可以为其创建任意名字的属性。
- ECMAScript 5 中新增的数组方法,基本都是遍历数组,原数组本身不变。
这些方法接受两个参数,一个function,一个context
第一个参数function中一般传递三个参数,分别为:当前遍历到的数组元素,当前遍历到的数组元素的索引,数组本身。
第二个参数 context 是可选参数,传递了,那么第一个参数function中的this,即为context。默认为window
1.forEach,从头自尾的遍历数组的每一项
举个栗子
var ary =[1,2,3,4];
ary.forEach(function(){
console.log(arguments);
})
/*运行结果
VM146:3 [1, 0, Array[4]]
VM146:3 [2, 1, Array[4]]
VM146:3 [3, 2, Array[4]]
VM146:3 [4, 3, Array[4]]
*/
2.map:将数组的每一项传给指定的函数,并返回一个数组
举个栗子
var b = ary.map(function(item){
item *= item;
})
/*
运行结果
b
[undefined, undefined, undefined, undefined]
*/
var b = ary.map(function(item){
return item *= item;
})
/*
运行结果
b
[1, 4, 9, 16]
*/
3.filter()返回的数组元素是调用的数组的一个子集,通过传递的逻辑来判断。
举个例子
var b = ary.filter(function(item){
return item >2;
})
/*
b[3, 4]
*/
4.every()和some()
它们对数组元素应用指定函数进行判断,返回true跟false
every是针对所有的,只有当遍历完所有且均满足条件时才会返回true,在遍历的过程中,一旦有不符合条件的,则返回false,并停止遍历。
举个例子
var num = 0;
ary.every(function(item){
num++;
return item<2;
})
/*false
num
2*/
some是针对,数组其中某个元素,一旦有一个元素满足条件,则返回true,且终止遍历,否则,直到遍历玩所有的,均不符合条件,则返回false。
5.reduce 跟 reduceRight
reduce()和reduceRight是使用指定的函数将数组元素进行组合,生成单个值。
举个例子
ary.reduce(function(x,y){
return x+y;
})
//10
reduce 需要两个参数。第一个是执行简单会操作的函数。第二个参数是给函数传递一个初始值。
举个例子
ary.reduce(function(x,y){
return x+y;
},10)
//20
第一个参数function的参数
第一个为,当前计算的累积值(默认为0,如果reduce传递了第二个参数,则为第二个参数的值)
第2-4个参数,数组元素,数组元素索引,数组本身
注意在空数组上,不带第二个参数(初始值)会报类型错误
reduceRight的工作原理与reduce的原理类似,不同的是,reduce是从索引低到高处理数组,reduceRight刚好相反,从高到低处理。
6.indexOf()跟lastIndexOf()
搜索整个数组中具有给定值的元素。
indexof 其第一次出现的索引值
lastIndexOf 最后一次出现的索引值
找不到则返回-1
举个栗子
var ary = [1,3,1,3,1];
var b = ary.indexOf(1);//0
var b = ary.lastIndexOf(3);//3
var b = ary.indexOf(10);//-1
值得注意的是,这个方法不接受 函数作为参数,第二个参数也是可选的:它指定数组中的一个索引,即从哪里开始搜索。如果省略,则从头开始搜索。它也可以为负数,它代表对数组末尾的偏移量。
我JSP学习心得1的更多相关文章
- Java学习心得之 HttpClient的GET和POST请求
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 HttpClient的GET和POST请求 1. 前言2. GET请求3 ...
- windows类书的学习心得(转载)
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...
- windows类书的学习心得
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(二) 数据类型宽度
我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(三) 查看字段长度
我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(四) 数据类型
我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(五) 运算符
我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- 我的MYSQL学习心得(六) 函数
我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
随机推荐
- SQL Server 2012复制教程以及复制的几种模式
简介 SQL Server中的复制(Replication)是SQL Server高可用性的核心功能之一,在我看来,复制指的并不仅仅是一项技术,而是一些列技术的集合,包括从存储转发数据到同步数据到维护 ...
- EF 增删改
一.新增 UserInfo user = new UserInfo() { UserName = "jamsebing", UserPass = " }; db.User ...
- 关于Visual Studio 2015中没有报表项(ReportViewer)的解决方案。
没有报表,一般默认安装之后会出现这种情况,在安装的时候选择自定义安装,把Microsoft Office 开发人员工具.Microsoft SQL Server Data Tools勾选上,安装之后就 ...
- JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...
- 妈妈再也不用担心别人问我是否真正用过redis了
1. Memcache与Redis的区别 1.1. 存储方式不同 1.2. 数据支持类型 1.3. 使用底层模型不同 2. Redis支持的数据类型 3. Redis的回收策略 4. Redis小命令 ...
- CSS修改input[type=range]滑块样式
input[type="range"]是html5中的input标签新属性,样子如下: <input type="range" value="4 ...
- input(file)样式修改及上传文件名显示
实现思路: a标签包裹input元素 设置a标签为上传按钮的样式,相对定位 设置input为透明,绝对定位,覆盖到a上面 效果:看到的按钮是a的样式,点击时实际是点击input元素.样式和功能都具备 ...
- ubuntu16.04下安装cuda8.0
一.首先安装NVIDIA显卡驱动 通过NVIDIA-Linux-x86_64-367.44.run文件安装. 1. 添加 PPA. sudo add-apt-repository ppa:graphi ...
- .NET LINQ 筛选数据
筛选数据 筛选指将结果集限制为只包含那些满足指定条件的元素的操作. 它又称为选择. 方法 方法名 说明 C# 查询表达式语法 Visual Basic 查询表达式语法 更多信息 OfType ...
- (转: daifubing的博客 )Delphi二维码中文支持、分组、批量打印经验小结
一直也没接触到什么复杂的报表,都是一些简单的报表,在DelphI下使用QuickReport一般也就能满足需要了,由于公司现在需求的变化,对条码扫描提出了新的要求,主要是扫码要包含更多地内容,以前的一 ...