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一些方法的使用的更多相关文章

  1. ECMAScript toString() 方法

    ECMAScript 定义所有对象都有 toString() 方法,无论它是伪对象,还是真对象. ECMAScript 的 Boolean 值.数字和字符串的原始值的有趣之处在于它们是伪对象,这意味着 ...

  2. js常用的数组方法

    1.创建数组的基本方法:  1.1 空数组  var obj=new Array();                 1.2 指定长度数组  var obj=new Array(size);     ...

  3. 第十七章:jQuery类库

    javascript的核心API设计的很简单,但由于浏览器之间的不兼容性,导致客户端的API过于复杂.IE9的到来缓解了这种情况.然而使用javascript的框架或者工具类库,能简化通用操作,处理浏 ...

  4. javascript 之 面向对象【创建对象】

    创建对象 (1) 工厂模式 function createPerson(name, age, job){ var o = new Object(); o.name = name; o.age = ag ...

  5. js高级程序设计

    defer 异步脚本,脚本延迟到文档完全被解析和显示之后再执行.只对外部脚本文件有效.按顺序执行脚本.但在实际情况下,并不一定会按照顺序执行最好只有一个延迟脚本.支持H5的浏览器会忽略给脚本设置 de ...

  6. underscore.js源码解析【'_'对象定义及内部函数】

    (function() { // Baseline setup // -------------- // Establish the root object, `window` (`self`) in ...

  7. javascript 高级程序设计 四

    新的一天开始,让我们伴随者轻快的心情,开始今天的笔记 1.操作符: (1): *./.-在ECMAScript中操作的时候,如果遇到有一个操作值不是数值型(Number),那么就会在后台调用numbe ...

  8. underscore.js源码解析(一)

    一直想针对一个框架的源码好好的学习一下编程思想和技巧,提高一下自己的水平,但是看过一些框架的源码,都感觉看的莫名其妙,看不太懂,最后找到这个underscore.js由于这个比较简短,一千多行,而且读 ...

  9. JavaScript学习系列7 -- JavaScript中的运算符

    今天,我们来说一说JavaScript中的运算符,首先我们来讲一讲 一元运算符 JavaScript中的一元运算符有以下几种 1. delete delete 运算符主要用于删除对以前定义的对象属性或 ...

随机推荐

  1. c++ std::find函数

    template <class InputIterator, class T>InputIterator find (InputIterator first,InputIterator l ...

  2. HDU - 4746预处理莫比乌斯反演

    链接 求[1,n] 和 [1,m]中有多少对数的GCD的素因子个数小于等于p 直接暴力做特定超时,所以我们想办法预处理,对于p大于18(1到5e5的最大素数因子个数)的情况,每一对都满足条件,O(1) ...

  3. ORACLE TO_CHAR,TO_DATE函数格式说明

    YEAR,年份的英文全称 YYYY:四位表示的年份 YYY,YY,Y:年份的最后三位.两位或一位,缺省为当前世纪 MM:01~12的月份编号 MONTH:九个字符表示的月份,右边用空格填补 MON:三 ...

  4. 一些开源搜索引擎实现——倒排使用原始文件,列存储Hbase,KV store如levelDB、mongoDB、redis,以及SQL的,如sqlite或者xxSQL

    本文说明:除开ES,Solr,sphinx系列的其他开源搜索引擎汇总于此.   A search engine based on Node.js and LevelDB A persistent, n ...

  5. HSRP/VRRP/GLBP

    当网络足够大的时候,网络规划师要考虑的技光是网络本身的性能问题,冗余技术也是必不可少的. 常见的冗余网关技术有• 热备份路由协议(HSRP).• 虚拟路由器冗余协议(VRRP)• 网关负载均衡协议(G ...

  6. HDU - 6129 :Just do it (杨辉三角)

    There is a nonnegative integer sequence a 1...n  a1...n of length n n . HazelFan wants to do a type ...

  7. RabbitMQ学习系列三-C#代码接收处理消息

    RabbitMQ学习系列三:.net 环境下 C#代码订阅 RabbitMQ 消息并处理 http://www.80iter.com/blog/1438251320680361 http://www. ...

  8. UVA10674 Tangents

    题意 PDF 分析 就是圆的切线的模板. 注意精度问题,排序的时候也不能直接写,被卡了好几次. 时间复杂度\(O(T)\) 代码 #include<iostream> #include&l ...

  9. LA2797 Monster Trap

    题意 PDF 分析 可以考虑建图,跑迷宫. 然后以线段端点,原点,和无穷大点建图,有边的条件是两点连线和墙没有交点. 但是对两个线段的交点处理就会有问题,所以把线段延长.另外还需要判断延长后在墙上,舍 ...

  10. 十七、python沉淀之路--三元表达式、列表解析

    一.三元表达式 a = '骑车' res = '好天气' if a == '骑车' else '睡觉' print(res) 睡觉 解析:res = '好天气'        if a == '骑车' ...