JS之For---in 语句
下面说一下for… in语句。可直接把下面的代码复制到浏览器的控制台或Node环境下去执行。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//用来快速迭代对象。
var o ={name:'dylan',age:24,num:110};
for(var test in o){
console.log("o["+test+"]= "+o[test]);
}
console.log("~~~~~~~~~~~")
Object.prototype.getName =function(){return this.name};
o.getAge=function(){returnthis.age};
for(var test in o){
console.log("o["+test+"]= "+o[test]);
}
console.log(o.getName()+o.getAge());
//getName并不是o的方法,它是Object原型方法,而Object原型方法会被
//所有Object类型实例对象所继承的.
//因此可以看出使用for...in语句不仅能迭代出对象的属性,还可迭代出其原型方法。
console.log("~~~~hasOwnPyroperty~~~~~~~");
for(var test in o){
if(o.hasOwnProperty(test)){
console.log("o["+test+"]= "+o[test]);
}
}
//通过调用hasOwnProperty方法过滤原型中的方法。
//如果o有二个undefined和null属性呢?.
o.undefined ='undefined';
o.null = 'null';
console.log(o);
console.log(o.toString());
console.log(o.valueOf());
for(var test in o){
if(o.hasOwnProperty(test)){
console.log("o["+test+"]= "+o[test]);
}
}
//如果 o=null;
o=undefined; //o=null;
for(var test in o){
if(o.hasOwnProperty(test)){
console.log("o["+test+"]= "+o[test]);
}
}
//既不会报错,也不会输出。但如果是在低版本浏览器,很有可能报异常。因此在使用
//for-in之前,可以先过滤一下迭代对象是否为null或undefined.
console.log("~~~~Iteratearray~~~~~~~");
//迭代数组可以吗?
var a = [26,'hellworld',newDate()];
for(var pro in a){
console.log("a["+pro+"]="+a[pro]);
}
//Array也是一种对象,因此原型的getName方法同样被迭代出来。
function keys(obj){
var aRaa = [];
var i=0;
for(aRaa[i++] in obj);
return aRaa;
}
console.log(keys(o));
a.index = a.length;
console.log(a);
console.log(keys(a));
//当你以为是对象数组时,执行下面一条语句,发现又会发错。
//console.log(a[index]); //报错,index未定义
//但是下面这条语句不会报错。
console.log(a.index);
console.log(a[getName]);
//当迭代数组时,尽量少用for....in 语句,这样可以减少不必要的错误。用下面的常用方法,更好!
for(var i=0,lenght =a.length;i<lenght;i++){
console.log(a[i]);
};
【Dylan童鞋】
关注Dylan童鞋,请搜索微信号:DylanTongXue 。
推送时间为:周一,周三,周四,周日晚上9:20分左右。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
查看历史记录请回复1~9之间的数字。比如查看第六篇文章直接回复数字:6 。显示本帮助菜单,回复"H"。
JS之For---in 语句的更多相关文章
- js种的循环语句
//js种的循环语句 //while与do while的区别是while是满足条件后才执行 //do while是不管满不满足条件都会执行一次 //for 循环与while,do while相比循环结 ...
- js中的条件语句
//js中的条件语句 ; //example1 单分支语句 ){ console.log("你已经不年轻了!"); }else{ console.log("你依然很有活力 ...
- js中的循环语句
js中的循环语句可分为三种:1.while:2.do……while:3.for. while的语法为 while (exp) { //statements;} var a=1,b=0; whil ...
- JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构
JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...
- 在js中插入html语句
连上数据库之后,填充数据时往往需要在js中插入html语句 做法是: <body> <div class="modal-body" id="delete ...
- JS中的特有语句-for in
<script> /* *js中特有语句for in *for(变量 in 对象)//对对象进行变量的语句 *{ *} */ var arr = [32,80,65]; for(i in ...
- js中的with语句
javascript中的with语句是什么? with 语句可以方便地用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性.要给对象创建新的属性,必须明确地引用该对象. 看起来 ...
- js多条件if语句简写发生Uncaught SyntaxError: Unexpected token }
改写原生js 多条件if判断语句时,采用三元方法,发生Uncaught SyntaxError: Unexpected token } function compareImgSize() { var ...
- JS总结 运算符 条件语句
算术运算符+-*/ 与数学计算一致,配合()号进行各种计算 另外,+号还可以达到连接的作用.例如: var a = 15; alert("a的值等于"+a); 前后增减量运算符: ...
- [小问题笔记(七)] JS和 jQuery常用语句笔记(隐藏/显示/禁用标签 日期操作 跳转等)
隐藏/显示标签 $("#div1").css("display", "none");$("#div2").css(&qu ...
随机推荐
- JavaScript 数组的indexOf()、remove()、splice() , pop()方法
js中,按照值删除数组中的某个元素 Array.prototype.indexOf = function(val) { for (var i = 0; i < this.l ...
- 启用IIS7报错功能
进入:控制面板 - 卸载程序 - 打开或关闭Windows功能 如果访问任何不存在页面或页面出错时空白: Internet 信息服务 - 万维网服务 - 常见 HTTP 功能 - HTTP 错误 打勾 ...
- vs2012 + web api + OData + EF + MYsql
vs2012 + web api + OData + EF + MYsql 开发及部署 先说下我的情况,b/s开发这块已经很久没有搞了,什么web api .MVC.OData都只是听过,没有实际开发 ...
- 【百度地图API】多家地图API文件大小对比
原文:[百度地图API]多家地图API文件大小对比 于2011.6.9日更新百度地图API文件大小.同时更新图片. 任务描述: 明天就是元宵佳节啦~这是一个团团圆圆的节日,于是,再次想把各家API聚在 ...
- LeetCode——N-Queens II
Follow up for N-Queens problem. Now, instead outputting board configurations, return the total numbe ...
- ASP.NET 依赖注入。
ASP.NET 依赖注入. http://www.it165.net/pro/html/201407/17685.html 我在网上看到了这篇文章,这边文章主要说的方法就是通过读取配置文件来解决依赖注 ...
- 浅谈javascript性能-管理内存
上次说到,javascript脚本到底应该放在哪里?用什么用处? 以下2点: 在Html.Body部分中的JS会在页面加载的时候执行.即-用户触发一个事件的时候执行的脚本.eg:onload事件... ...
- Java导出页面数据或数据库数据至Excel文件并下载,采用JXL技术,小demo(servlet实现)
public class ExportExcelServlet extends HttpServlet { /** * */ private static final long serialVersi ...
- javascript5
调用对象call object: 声明上下文对象declarative environment record; 作用域链scopechain: 变量解析:variable resolution: 引用 ...
- monkey源码分析之事件注入方法变化
在上一篇文章<Monkey源码分析之事件注入>中,我们看到了monkey在注入事件的时候用到了<Monkey源码分析番外篇之Android注入事件的三种方法比较>中的第一种方法 ...