JS之For---in 语句
2013-09-26 20:36
323 查看
下面说一下for… in语句。可直接把下面的代码复制到浏览器的控制台或Node环境下去执行。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//用来快速迭代对象。
//getName并不是o的方法,它是Object原型方法,而Object原型方法会被
//所有Object类型实例对象所继承的.
//因此可以看出使用for...in语句不仅能迭代出对象的属性,还可迭代出其原型方法。
//通过调用hasOwnProperty方法过滤原型中的方法。
//如果o有二个undefined和null属性呢?.
//如果 o=null;
//既不会报错,也不会输出。但如果是在低版本浏览器,很有可能报异常。因此在使用
//for-in之前,可以先过滤一下迭代对象是否为null或undefined.
console.log("~~~~Iteratearray~~~~~~~");
//迭代数组可以吗?
//Array也是一种对象,因此原型的getName方法同样被迭代出来。
//当你以为是对象数组时,执行下面一条语句,发现又会发错。
//console.log(a[index]); //报错,index未定义
//但是下面这条语句不会报错。
//当迭代数组时,尽量少用for....in 语句,这样可以减少不必要的错误。用下面的常用方法,更好!
【Dylan童鞋】
关注Dylan童鞋,请搜索微信号:DylanTongXue 。
推送时间为:周一,周三,周四,周日晚上9:20分左右。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
查看历史记录请回复1~9之间的数字。比如查看第六篇文章直接回复数字:6 。显示本帮助菜单,回复"H"。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//用来快速迭代对象。
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中用于对象的语句——with和for...in语句学习专题
- js循环语句,for-in,with,函数
- js中for...in语句的使用
- js中用于对象的语句——with和for...in语句学习专题
- JavaScript(二)-14-(JS中的特有语句-forin)
- JS中的函数,Array对象,for-in语句,with语句,自定义对象,Prototype
- JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链
- js的for..in语句的用法详解
- js:for in 语句各浏览器有区别
- js中的控制结构for-in语句
- for/in语句(js)
- js:for...in 语句(JavaScript For...In Statement)
- js 中的for ... in 语句的使用
- 在js中循环语句for in和for的用法
- js数组遍历 千万不要使用for...in...
- Swift笔记:For-In、While 循环、if条件语句
- js object.create()、Object.defineproperty()、,Object.keys()...for..in,for..each
- JS:1.2控制语句(if,if else,for,switch,while,do while)
- js for in
- [Javascript] A function works like 'print_r()' in PHP to print out the details of an object for JS debugging