数组 / 伪数组 判断及方法调用 (权威指南笔记)

数组判断方法

function isArrayLike(o){
    if(o &&                                       //o非null.undefined
        typeof o === "object" &&                  //o是对象
        isFinite(o.length) &&                     //o.length是有限数值
        o.length > 0 &&                           //o.length为非负数
        o.length === Math.floor(o.length) &&      //o.length是整数
        o.length < 4294967296 ){                  //o.length<2^32
        return true;
    }else{
        return false;
    }
}

伪数组   数组方法兼容性写法

Array.join = Array.join || function(a,sep){
    return Array.prototype.join.call(a,sep);
}
Array.slice = Array.slice || function(a,from,to){
    return Array.prototype.slice.call(a,from,to);
}
Array.map = Array.map || function(a,f,thisArg){
    return Array.prototype.map.call(a,f,thisArg);
}

用数组的方法操作字符串

var s = javascript;
s.charAt(0);                          //原生的方法  >=‘j‘
s[0]                                  //>=‘j‘

Array.prototype.join.call(s," ")      //=> "j a v a s c r i p t"
Array.prototype.filter.call(s,function(x){
    return x.match(/[^aeiou]/);
}).join("");                          //=> "jvscrpt"  

需注意,字符串是不变值,故当把它们作为数组看待时,它们是只读的,
数组的,push、sort、reverse、splice 等方法对它无效,而且使用这些
方法出现错误时,也不会有错误提示!!!

时间: 2024-11-18 13:55:41

数组 / 伪数组 判断及方法调用 (权威指南笔记)的相关文章

Struts2权威指南笔记

1.mvc特点包括: ① 多个视图可以对应一个模型 ② 模型返回的数据与显示逻辑分离 ③ 应用层被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性 ④ 控制层的概念也很有效,由于它把不通的模型和不同的视图组合在一起,完成不同的请求 ⑤ Mvc更符合软件工程化管理的精神 2.Struts2框架的大致处理流程: ① 浏览器发送请求,如请求/mypage.action ② 核心控制器FilterDispatcher根据请求决定调用合适的Action ③ Webwork的拦截器链自动对请求应用通用

css 权威指南笔记

部分属性选择: 选择class 属性中包含warning的元素 [class~="warning"]{font-weight:bold} 子串匹配属性选择器: 在现代浏览器中得到支持 包括ie7 特定属性选择器: css 权威指南笔记

javascript权威指南笔记(第7章 数组)

1.注意: a[-1.23] = true; // This creates a property named "-1.23" a["1000"] = 0; // This the 1001st element of the array a[1.000] // Array index 1. Same as a[1] 2.delete操作符产生稀疏数组 3.设置数组的长度会自动切断或添加undefined 4.javascript不支持真正的多维数组但是可以用数组的数

JavaScript权威指南笔记——第1部分

# <JavaScript权威指南>笔记--第1部分 说明: 印刷版:2012年4月第1版 2016年9月第17次印刷. 本书的风格和<Effective Java>很类似,推荐一下. 该笔记逆序记录的. ----------------------- ------<end>------ | node的helloworld程序: ```js //! program.js // 通过在命令行输入`node program.js`来运行,然后在浏览器中打开网址`127.0.

javascript权威指南笔记(第8章 函数)

8.1 函数定义: 变量声明提前,但是变量赋值并不会提前 函数声明语句不能出现在循环,条件判断或者try/catch/finally以及with语句中: 8.2 函数调用(函数调用,方法调用,构造函数调用,间接调用(call,apply)) 1.var isStrict = (function() { return !this; }()); 2.this的指向问题(嵌套函数this的指向问题) 可以解决的方法有:var self = this 或者使用 apply //嵌套函数 var o =

JS权威指南笔记(171页)-this关键字的作用域

和变量不同,关键字this没有作用域的限制,嵌套函数不会从调用它的函数中继承this.如果嵌套函数作为方法调用,其this值不是全局对象(非严格模式下),就是undefined(严格模式下).很多人误以为调用嵌套函数时this会指向调用外层函数的上下文.如果你想访问这个外部函数的this值,需要将this的值保持在一个变量里,这个变量和内部函数都同在一个作用域内.通常使用变量self来保存this,比如: var o={ m:function(){ var self=this; console.

javascript权威指南笔记

最近每天工作之余看下js的细节部分,时间不是很多,所以看的进度也不会太快,写个博客监督自己每天都看下. 以前不知道的细节或者以前知道但是没注意过的地方都会记录下来,所以适合有一定基础的,不适合零基础新手. ---------------------------------------------------------国庆期间--------------------------------------------------------- js中所有数字都是浮点数,比如5/2不是2,是2.5,0

MongoDB权威指南--笔记

mongodb并不具备一些在关系型数据库中很普遍的功能,如连接和复杂的多行事务. 集合-->文档-->id id在文档所属的集合中是唯一的. db.help()查看数据库级别的帮助,db.foo.help()查看集合级别的帮助. db.foo.update --不加(),查看函数具体功能,使用参数. 运行脚本:mongo --quite host:port/foo scripts.js 连接到指定服务器的foo数据库执行脚本scripts.js文件. load()函数从交互模式运行脚本:loa

1.语言概述-JavaScript权威指南笔记

上周三的时候交给老板目前的项目第一个迭代回顾会的总结.原本是以综述性的表述方式写的,交给他之后表示程序员不要长篇大论.总结要分为优点缺点期望等等块,每块列出条目,简明扼要的表达出来.这里也用这种风格.另外要说的是,可能很多地方是摘抄转述和不精确的个人阶段,开始阶段先这样好了,希望看到自己成长. 1.前端开发工程师必备三种技能:描述网页内容之HTML,描述网页样式之CSS,描述网页行为之JavaScript. HTML:Hyper Text Markup Language.超文本标记语言,据说并不