我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学习心得(四) 数据类 ...
随机推荐
- 初探微信小程序
摘要 最近闲下来了,就准备了解下微信小程序的内容.首先从目录结构开始吧. 创建项目 工具下载:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/do ...
- 如何在ASP.NET MVC和EF中使用AngularJS
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) AngularJS作为一个越来越流行的前端框架,在使用ASP.NET MVC和实体框架开发W ...
- 使用JSF框架过程中的若干典型问题及其解决方案
1.commandXxx点击后,不调用action中的方法: 原因1:xhtml后缀名的文件,最终也会转化为普通的html文件(这是熟悉JSF框架的关键.),commandXxx点击后不调用后台act ...
- JavaScript模板引擎原理,几行代码的事儿
一.前言 什么是模板引擎,说的简单点,就是一个字符串中有几个变量待定.比如: var tpl = 'Hei, my name is <%name%>, and I\'m <%age% ...
- Android-修改TabWidget字体大小颜色及对齐
在Android中,我们可以定义TabWidget来分页.在上一篇文章中有说到使用TabWidget定义Tab分页布局,但大部分用户可能会觉得默认的字体有点小,但Tab选项卡默认又不能设定字体大小,如 ...
- 【bzoj4720】[NOIP2016]换教室
题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节课程安排在n个时间段上.在第i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的 ...
- Linux进程间通信(一): 信号 signal()、sigaction()
一.什么是信号 用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中 ...
- mount img
直接挂载img文件有时会有 mount:您必须指定文件系统类型 的错误,但加 -t ext2 等类型还是没用. 这是因为img文件包含了mbr引导导致的问题.解决方法如下: $sudo fdis ...
- 好代码系列(一):LazyObject
site-packages/django/utils/functional.py def new_method_proxy(func): def inner(self, *args): if self ...
- angular-ui-bootstrap-modal必须要说的几个点(转)
angular-ui-bootstrap-modal必须要说的几个点 摘要: 基于angular来实现的一个bootstrap模态框,有些不得不说的地方 项目中以前就经常用到模态框,但是一直没有时间来 ...