首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

JS 原生方法原理探究(七):如何实现 Object.assign()?

Object.assign() 的基本用法 要实现 Object.assign(),首先了解它的大概用法: 接受的第一个参数表示目标对象(浅拷贝的结果),如果是 null 或者 undefined,直接报错...第一个参数往后的参数,如果是 null 或者 undefined,那么直接跳过;其余的情况则尝试找出它们的可枚举属性,但实际上,只有字符串、数组、对象字面量这些类型是具有可枚举属性的。...undefined){ throw new TypeError("can not convert null or undefined to object") } let...// 报错 Cannot assign to read only property '0' of object '[object String]' 这里尝试把 “cd” 的可枚举属性 0 和 1 添加到目标对象上...但是,在非严格模式下,这种行为只会静默失败,为了让它真的抛出错误,必须声明使用严格模式。 为什么不使用 Reflect.ownKeys(obj)?

3.5K20

JavaScript简单隐式转换

我毫不犹豫的用了Boolean,结果就是发现页面都显示的是true的效果。随后查了一下有没有方法转换,查到的居然都是去判断。...convert object to primitive value 千万不能想着obj最后返回的是[],Number([])为0,一定要记住,进行转行成原始数据类型如果返回的不是原始数据类型,会报错。...数组的nullundefined会被当作空字符串处理,[null, undefined, 5]变成’,,5’。 普通对象会变成[object Object],这个应该很多人知道。...({}) // '[object Objecr]' 其他类型转换成布尔类型: 这个估计很多人都知道,js中的假值只有false、nullundefined、空字符、0和NaN,其它值转为布尔型都为true...Object]' == {} // true '1,2,3' == [1, 2, 3] // true nullundefined宽松相等的结果为true,与其自身相等,但和其他所有的值都不相等

56230
领券