0428 手打基础丸

手打基础丸 🧆 => 精选基础知识,经过多道工序精心制作而成,口感鲜嫩多汁。一口咬下,香气四溢,加上传统前端风味,令人回味无穷...... 助力食用者厚积薄发,夯实根基进阶上层。

JS如何获取对象非原型链上的属性?

Object方法

css 复制代码
const obj1={
  attr: 'myName',
  [Symbol('symattr')]: 22
}
//获取所有自身属性(不包括symbol):Object.getOwnPropertyNames
console.log(Object.getOwnPropertyNames(obj1)) // ['attr']
//获取所有可枚举自身属性:Object.keys
console.log(Object.keys(obj1)) // ['attr']
//获取所有Symbol类型自身属性:Object.getOwnPropertySymbols
console.log(Object.getOwnPropertyNames(obj1)) // [Symbol(symattr)]
//获取属性完整信息:Object.getOwnPropertyDescriptor
console.log(Object.getOwnPropertyDescriptor(obj1))
// {name:{configurable:true, enumerable:true, value:"myname", writable: true}, Symbol('symattr'):{configurable:true, enumerable: true, value: 22, writable: true}}

查看对象是否具有指定属性:hasOwnProperty

arduino 复制代码
const  obj2={ name: 'myName' }
console.log(obj2.hasOwnProperty('name')) // true
console.log(obj2.hasOwnProperty('toString')) // true

还可以用for..in循环或者Object.entries(obj).forEach遍历自身属性

JS执行上下文?

摘自(segmentfault.com/a/119000004...

执行上下文简单来讲就是一段代码执行时所带的所有信息,每个任务压入执行栈中的一块所包含的所有内容。

全局执行上下文:任何不在函数内部的代码都在全局的上下文中

函数执行上下文:每次调用函数都会创建一个新的执行上下文

eval执行上下文:eval函数执行时创建的上下文

执行上下文生命周期:创建阶段--执行阶段--回收阶段

关于JS中的this指向问题?

全局上下文this指向全局对象,浏览器中指向window对象

函数调用中this指向全局对象或undefined(严格模式)

方法调用this指向调用该方法的对象

构造函数this指向新创建的实例对象

箭头函数没有自己的他this,继承他上层的this

相关推荐
张拭心3 分钟前
春节后,有些公司明确要求 AI 经验了
android·前端·人工智能
时光不负努力3 分钟前
typescript常用的dom 元素类型
前端·typescript
小怪点点9 分钟前
大文件切片上传
前端
时光不负努力9 分钟前
TS 常用工具类型
前端·javascript·typescript
SuperEugene11 分钟前
Vue状态管理扫盲篇:Vuex 到 Pinia | 为什么大家都在迁移?核心用法对比
前端·vue.js·面试
张拭心13 分钟前
Android 17 来了!新特性介绍与适配建议
android·前端
徐小夕18 分钟前
pxcharts-vue:一款专为 Vue3 打造的开源多维表格解决方案
前端·vue.js·github
Hilaku18 分钟前
我会如何考核一个在简历里大谈 AI 提效的高级前端?
前端·javascript·面试
青青家的小灰灰40 分钟前
React 反模式(Anti-Patterns)排查手册:从性能杀手到逻辑陷阱
前端·javascript·react.js
青青家的小灰灰40 分钟前
告别 Prop Drilling:Context API 的陷阱、Reducer 模式与原子化状态库原理
前端·javascript·react.js