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 中的location.pathname
1 location.pathname; 这在之前我没怎么注意过,所以研究研究.location.pathname:返回URL的域名(域名IP)后的部分.例如 http://www.joymood.c ...
- 求解决!!!SystemVerilog于ModelSim在编译和执行
我们正在学习SV流程,样品执行书.. 功能:函数返回数组. Code1: /*书上提供的样例.存在错误,不可执行 function void init(ref int f[5], int start) ...
- 一款非常棒的纯CSS3 3D菜单演示及制作教程
原文:一款非常棒的纯CSS3 3D菜单演示及制作教程 这段时间比较忙,很久没在这里分享一些漂亮的HTML5和CSS3资源了,今天起的早,看到一款很不错的CSS3 3D菜单,觉得非常上眼,就将它分享给大 ...
- ArcGIS网络分析之Silverlight客户端路径分析(三)
原文:ArcGIS网络分析之Silverlight客户端路径分析(三) 首先贴上最终的效果图: a.路径查询 2.最近设施点查询 3.服务区分析 说明: 1.以上的示例使用的数据是随意在ArcMap中 ...
- javascript权威指南(2)
JavaScript预定义了一系列全局变量和函数,在自定义变量和函数式要避免使用这些预定义的名称: arguments encodeURI Infinity Number RegExp Arra ...
- Ajax得知(两)—— 一个简单的Ajax示例
通过部分博客认识Ajax之后,我们通过一个简单的实例来消化消化理论知识,一睹Ajax的庐山真面目. 1.实例功能: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZ ...
- Quartz.NET 的任务调度管理工具
[更新] 基于Quartz.NET 的任务调度管理工具 更新列表: 任务参数可视化. 立即中断正在执行的任务. 每个任务独立的应用程序域 上一版参见: 基于Quqrtz.NET 做的任务调度管理工 ...
- Delta3D 2.8版本号 预习
http://blog.csdn.net/zhuyingqingfen/article/details/38581453 看到官网今天的更新.发现即将公布的delta3d 2.8 版本号 做了非常大的 ...
- 3D人脸识别预处理,3D face recognition preprocess
本文由兔崩溃公布http://blog.csdn.net/smartempire/article/details/31373817. 转载请注明出处.howdeshui#163.com 近期在做三维人 ...
- 一步一步写算法(之挑选最大的n个数)
原文:一步一步写算法(之挑选最大的n个数) [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 从一堆数据中挑选n个最大的数,这个问题是网上流传的 ...