-
array.join 数组转换成字符串查看全部
-
属性查看全部
-
严格模式下的注意事项
查看全部 -
repeat
查看全部 -
循环A数组 item typeof item ===Object 通过object.proptype.toString 判断类型 ===null 获取A数组类型组成的数组typeArray 遍历B数组 item2 获取类型 到typeArray 中查找是否有此类型
function arraysSimilar(arr1, arr2) {let typeArr = [],type,result = true,typeArr2 = [];if (getType(arr1) != getType(arr2) || (getType(arr1) != 'array' && getType(arr2) != 'array') || arr1.length != arr2.length) {return false;}if (getType(arr1) != "array") {typeArr.push(getType(arr1))} else {arr1.map(function(item) {type = getType(item);if (!typeArr.includes(type)) {typeArr.push(type)}})}if (getType(arr2) != "array") {if (!typeArr.includes(getType(arr2))) {return false;}typeArr2.push(getType(arr2))} else {arr2.map(function(item) {type = getType(item);if (!typeArr.includes(type)) {result = false;return false;}typeArr2.push(getType(arr2))})}if (result && typeArr.length != typeArr2.length) {result = false;}return result}function getType(v) {let type = typeof v;if (v === null) {type = null;} else if (type == 'object') {type = Object.prototype.toString.apply(v).split(" ")[1].split("]")[0].toLowerCase();}return type;}
查看全部 -
对象中包含一系列属性,这些属性是无序的。每个属性都有一个字符串key和对应的value。
var obj = {};obj[1] = 1; obj['1'] =2; obj;//Object{1:2}
obj[{}] = true; obj[{x:1}] = true; obj// Object{1:2,[object Object] : true};查看全部 -
运算符
1) 逗号运算符 : var val = (1,2,3) ; // val = 3;
2) delete运算符 : var obj = {x : 1}; obj.x; // 1 delete obj.x; obj.x // undefined
var obj = {} ; Object.defineProperty(obj,'x',{ configurable : false, vale : 1 } ) ; delete obj.x ;// false obj.x //1
3) new 运算符 : function Foo(){} var obj = new Foo(); obj.x = 1
4) this运算符 : var obj = { func : function(){return this;} }; obj.func();//obj
查看全部 -
Object.create()es5之后才有,
es5之前可用if(!Object.create){Object.create=function(proto){
function F(){};F.prototype=proto;return new F;};
}
查看全部 -
类型检测:
typeof
最常见,返回一个字符串,非常适用于函数对象和基本类型的判断。
typeof null = 'object'
instanceof :
对象 instanceof 函数对象/函数构造器
两边参数不符合,将返回false / typeError异常
不同window或iframe间的对象类型检测不能使用
object.prototype
construct
duck type
查看全部 -
NaN ≠ NaN Object ≠ Object
查看全部 -
很秀的题, 对基础不扎实的我做起来还是有点困难. 不过也是完成了
查看全部 -
var sourceArr = [1, 'sdsd', 'rerds', true, {
"keys": "value"
}, null, function() {}, new Date(), window]
var checkArr = ['wook', '62', 25, false, {
"key": "122"
}, null, function() {}, new Date(), window]
function isSlimilarArray(arr1, arr2) {
// 1. 判断参数是不是数组
if (!isArray(arr1) || !isArray(arr2)) return false
// 2.判断对比数组长度是否相同
if (arr1.length !== arr2.length) return false
// 3.生成数组数据结构
var
map1 = setDataMap(arr1),
map2 = setDataMap(arr2)
// 4.对比两组结构是否一致
for (var key in map1) {
if (map1[key] !== map2[key]) return false
}
return true
}
// 数据类型检查
function isArray(arr) {
return Object.prototype.toString.call(arr) === '[object Array]'
}
function setDataMap(arr) {
var map = {}
for (var item of arr) {
if (typeof(item) !== 'object') {
map[typeof(item)] = map[typeof(item)] ? ++map[typeof(item)] : 1} else {
var types = Object.prototype.toString.call(item)
map[types] = map[types] ? ++map[types] : 1}
}
console.log(map)
return map
}
var ret = isSlimilarArray(sourceArr, checkArr)
console.log(ret)查看全部 -
数组头部添加元素
arr.unshift(obj);
数组尾部移除元素
arr.pop();
数组头部移除元素
arr.shift();
查看全部 -
class标签查看对象类型
function getType(o){
return toString.call(o).slice(8,-1);
}查看全部 -
111111
查看全部
举报