ECMAscript一些方法的使用
typeof 操作符 来检测 属性是否 都存在
例如:typeof ages.name == "string" ===>如果是 true 就存在 , 若是 false 就不存在
instanceof操作符 ECMAscript3 就出来 检测 只有一个全局环境下的数组检测,
如果有多个全局环境,就出错,所以ECMAscript5就新增一个,Array.isArray(需要检测的变量),检测是不是数组
转换方法
toLocalString()、toString()返回由数组中的每个值的字符串拼接而成的一个以逗号分隔的字符串,而调用valueOf()返回的还是数组
var arr = ["1","2","3"];
console.log(arr.toString());// 1,2,3
console.log(arr.valueOF());//["1","2",'3"]
console.log(arr);//["1","2","3"]
toLocalString()与toString()一样的效果,只不过,两者不是不同的
join("分隔符") ====>join()方法重现了toString()方法的输出,返回值都为字符串, 以 分隔符 为 分隔,返回值为字符串,分隔符 可以随便取
栈 ===》 后进先出
push()从最后推入
pop()从最后移除
队 ===》 先进先出
unshift()从第一项推入
shift()从第一项取出
重排序方法
revere(); 降序 但是不够灵活
sort(); >0 升序 <0 降序 返回值为字符串
操作方法
concat()方法 可以基于当前的数组中的所有项创建一个新的数组,先创建一个副本,再将接收到的参数添加到这个副本的末尾,最后返回新构建的数组
var arr1 = ["1","2"];
var arr2 = arr1.concat("3",["4","5"]);
console.log(arr1);//["1","2"]
console.log(arr2);//["1","2","3","4","5"]
slice()方法 (切片) 数组和字符串都行,返回的是原来的数据的类型,数组的返回的是数组,字符串的返回的是字符串,
var arr1 = ["1","2","3","4"];
arr1 = arr1.slice(1,3);
console.log(arr1);//["2","3"]
注意:slice(); 一般有两个参数,第一个参数是起始位置,第二个参数是结束位置,而且起始位置的参数必须 小于 结束位置的参数,如果是负数,就用数组或是字符串的长度加上负数,再来看看是不是,起始位置参数小于结束位置的参数。
splice()方法
删除 splice() 只需要2个指定参数,第一个参数是删除的第一项参数,第二个参数是要删除的项数,例如splice(0,2) 要删除前两项,注意:第一个参数必须大于第二个参数
插入 splice() 任意多个项,第一个参数是 起始位置,第二个参数是 0(要删除的项数),后面的就是插入的项数
替换 splice() 任意多个项,第一个参数是 起始位置,第二个参数是 1(要替换的项数),后面的就是被替换的项数
subStr()方法 2个参数,第一个参数是 起始位置的(可以是负数==》字符串长度加上负数就是起始位置) 第二个参数是要切割的长度
substring()方法 2个参数, 只要2个参数不要相等或是都是负数就行,只要有一个是负数,那他就是0,一个参数是起始位置,另一个参数是接受位置
位置方法
indexOf(); 一般有两个参数,第一个参数是要查询的项,第二个参数是查找起点的位置;如果只有一个参数,就是要查询的项数
lastIndexOf(); 与上面一样,只不过,是从最后开始查找起
迭代方法
every()方法 对数组中每一项运行的给定函数,如果该函数对每一项都返回true,则返回true
some()方法 对数组中每一项运行的给定函数,如果该函数的任意一项返回true,则返回true
foreach()方法 对数组的每一项运行给定函数,这个方法没有返回值
filter()方法 对数组的每一项运行给定的函数,该函数会返回true的项组成的函数
map()方法 对数组的每一项运行的给定的函数,返回每次函数调用的结果组成的数组
要求:将 str2中的每一项,在str1中凡是有与str2相同的项数,去掉
var str1 = "dabbcdrtuu";
var str2 = "bcdt";
var arr1 = [];
var arr2 = [];
arr1 = str1.split("");
arr2 = str2.split("");
//迭代
arr2.forEach(function(item1,index,array){
arr1 = arr1.filter(function(item2,index,array){
return item1 != item2 ;
});
});
要求:用一个简单的办法创建一个为100的数组;我觉得用map就很好,注意:map前面的数组,就算是空的,必须是有100位的数组
var arr = new Array(100);
var mapArr = arr.join(",").split(",").map(function(item,index,array){
return index+1;
});
console.log(mapArr);
//归并方法
reduce()和reduceRight() 都有四个参数:前一个值,当前值,项的索引和数组对象,第一个参数是数组的第一项,第二个参数是数组的第二项,个人感觉有点像递归
var arr = [1,2,3];
var sum = arr.reduce(function(prev,cur,index,array){
return prev+cur;
});
reduce() 返回的值是prev
reduceRight()方法 相反 返回的是cur
ECMAscript一些方法的使用的更多相关文章
- ECMAScript toString() 方法
ECMAScript 定义所有对象都有 toString() 方法,无论它是伪对象,还是真对象. ECMAScript 的 Boolean 值.数字和字符串的原始值的有趣之处在于它们是伪对象,这意味着 ...
- js常用的数组方法
1.创建数组的基本方法: 1.1 空数组 var obj=new Array(); 1.2 指定长度数组 var obj=new Array(size); ...
- 第十七章:jQuery类库
javascript的核心API设计的很简单,但由于浏览器之间的不兼容性,导致客户端的API过于复杂.IE9的到来缓解了这种情况.然而使用javascript的框架或者工具类库,能简化通用操作,处理浏 ...
- javascript 之 面向对象【创建对象】
创建对象 (1) 工厂模式 function createPerson(name, age, job){ var o = new Object(); o.name = name; o.age = ag ...
- js高级程序设计
defer 异步脚本,脚本延迟到文档完全被解析和显示之后再执行.只对外部脚本文件有效.按顺序执行脚本.但在实际情况下,并不一定会按照顺序执行最好只有一个延迟脚本.支持H5的浏览器会忽略给脚本设置 de ...
- underscore.js源码解析【'_'对象定义及内部函数】
(function() { // Baseline setup // -------------- // Establish the root object, `window` (`self`) in ...
- javascript 高级程序设计 四
新的一天开始,让我们伴随者轻快的心情,开始今天的笔记 1.操作符: (1): *./.-在ECMAScript中操作的时候,如果遇到有一个操作值不是数值型(Number),那么就会在后台调用numbe ...
- underscore.js源码解析(一)
一直想针对一个框架的源码好好的学习一下编程思想和技巧,提高一下自己的水平,但是看过一些框架的源码,都感觉看的莫名其妙,看不太懂,最后找到这个underscore.js由于这个比较简短,一千多行,而且读 ...
- JavaScript学习系列7 -- JavaScript中的运算符
今天,我们来说一说JavaScript中的运算符,首先我们来讲一讲 一元运算符 JavaScript中的一元运算符有以下几种 1. delete delete 运算符主要用于删除对以前定义的对象属性或 ...
随机推荐
- 使用maven时报错An error occurred while filtering resources
解决办法:右键项目-->maven-->update project .
- powmock
Verify 方法是否调用 Ve ri fy 核实 万花筒 瑞雪 发大财 Local Variable 局部变量@RunWith 运行器@PrepareForTest 提前准备 有返回值测试 void ...
- Java中异常的捕获顺序(多个catch)
import java.io.IOException; public class ExceptionTryCatchTest { public void doSomething() throws IO ...
- Ceph Monitor的数据管理
转自:https://www.ustack.com/blog/ceph-monitor-2/ Monitor管理了Ceph的状态信息,维护着Ceph中各个成员的关系,这些信息都是存放在leveldb中 ...
- HDU 1410 PK武林盟主
Problem Description 枫之羽认为自己很强,想当武林盟主,于是找现任武林盟主氢氧化铜挑战.氢氧化铜欣然接受了挑战,两人约好于下个月的月圆之夜在HDU校园内的三根柱子上进行决战.这场PK ...
- java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/xiaozao_web]]
二月 20, 2017 11:30:28 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin警告: [SetPropertiesRul ...
- java中Arrays和Collections等工具类
java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的.具有以下功能: ² 给数组赋值:通过fill方法. ² 对数组排序:通过sort方法,按升序. ² 比较数组:通过equ ...
- php压缩文件帮助类
<?php /* File name: /include/zip.php Author: Horace 2009/04/15 */ class PHPZip{ var $dirInfo = ar ...
- Zookeeper集群是如何升级到新版本的
方案1:复用老数据方案 这是经过实践的升级方案,该方案是复用旧版本的数据,zk集群拓扑,配置文件都不变,只是启动的程序为最新的版本. 参考文章: Zookeeper集群是如何升级到新版本的 方案2:重 ...
- HAWQ取代传统数仓实践(十五)——事实表技术之无事实的事实表
一.无事实事实表简介 在多维数据仓库建模中,有一种事实表叫做"无事实的事实表".普通事实表中,通常会保存若干维度外键和多个数字型度量,度量是事实表的关键所在.然而在无事实的事实表中 ...