javascript封装判断全数据类型方法, toString方法, 对象的枚举(in, instanceof, hasOwnProperty的用法), arguments类数组属性
2016-10-27 23:01
1246 查看
知识点
toString方法打印出来的是”成哥很帅”, 证明出来数组打印时调用出来的是toString方法
判断数组和对象
function isArrayOrObject(target) { var toStr = Object.prototype.toString, arrStr = '[object Array]'; if(toStr.call(target) == arrStr) { return 'this is Array'; }else{ return 'this is Object'; } }
这样可以略过数组和对象本身的toString进而执行Object的toString方法
判断全数据类型函数
function type(target) { var typeStr = typeof(target), toStr = Object.prototype.toString, objStr = { "[object Object]" : "_objectObject_", "[object Array]" : "_arrayObject_", "[object Number]" : "_numberObject_", "[object Boolean]" : "_booleanObject_", "[object String]" : "_stringObject_" } if(target === null){ return null; }else if(typeStr === "function"){ return "function"; } if(typeStr !== "object"){ return typeStr; }else{ return objStr[toStr.call(target)]; } }
注意判断对象类型时, 有一个简单的方法为 object.prototype.toString.call(对象名)
正常计算数字大概小数点后15位
对象的枚举
for in例: 遍历对象里面的属性
var obj = { name : 'acx', age : 12, sex : 'female' } for(var prop in obj){ console.log(obj[prop]); }
也可以把var prop写在外面, var prop; for(prop in obj){ }
但要注意: 最后一句为 obj[prop]
1 . hasOwnProperty
遍历自身属性, 继承的不显示
Person.prototype.name = 'acx'; function Person() { this.age = 132; this.sex = "female"; } var person = new person(); for(var prop in person) { if(person.hasOwnProperty(prop)) { console.log(person[prop]); } }
2 . in
看看一个属性是不是这个对象的属性, 是的话返回true
var obj = { name : 'acx', age : 12, sex : 'female' } console.log('name' in obj);
注意: 属性名称为字符串
3. instanceof
看看前面的对象是不是后面构造出来的, 是的话返回true
function Person() { } var person = new Person; person instanceof Person;
a instanceof b
判断a的原型链上, 有没有b的原型
arguments//类数组
arguments.callee指向函数的本身
用处:
var num = (function (n){ if(n == 1) { return 1; } return n * arguments.callee(n - 1); }(100))
立即执行函数时返回函数名
func.caller
打印出执行caller的那个函数
function demo() { test(); } function test() { console.log(test.caller) } demo();
相关文章推荐
- JavaScript中判断变量是数组、函数或是对象类型的方法
- javascript中判断对象数据类型的方法
- javascript 判断是否为数组或对象或各种其它数据类型
- JavaScript中判断变量是数组、函数或是对象类型的方法
- javascript 判断是否为数组或对象或各种其它数据类型
- javascript基础(对象,对象属性,属性基本和引用数据类型,字面量创建对象,垃圾回收,属性的枚举)(十三)
- javascript两个数组合并及判断数据类型的方法
- 使用Object对象的toString()方法自定义判断数据类型方法
- JavaScript数据类型判断--使用toString方法
- JavaScript中判断对象类型的种种方法
- javascript 对象及原型继承有关的属性:constructor、prototype、isPrototypeOf、instanceof、in 、hasOwnProperty 等等
- isArray()函数(JavaScript中对象类型判断的几种方法)
- Javascript数组对象的方法和属性
- isArray()函数(JavaScript中判断对象类型的种种方法)
- JavaScript学习点滴—js对象的四种类型的属性、方法的访问
- javascript的函数、创建对象、封装、属性和方法、继承
- JavaScript中判断对象类型的种种方法
- JavaScript isArray()函数判断对象类型的种种方法
- javascript 判断 一个对象是不是 数组的方法
- isArray()函数(JavaScript中对象类型判断的几种方法)