JavaScript知识系列(6)每天10个小知识点

目录

  • 系列文章目录
    • JavaScript知识系列(1)每天10个小知识点
    • JavaScript知识系列(2)每天10个小知识点
    • JavaScript知识系列(3)每天10个小知识点
    • JavaScript知识系列(4)每天10个小知识点
    • JavaScript知识系列(5)每天10个小知识点
  • 知识点
    • 50**.defineProperty 和 proxy**的概念、作用、原理、特性、优点、缺点、区别、使用场景
    • 51.跨域不同解决方式的概念、作用、原理、特性、优点、缺点、区别、使用场景
    • 52.****JS判断变量是不是数组,请列出多种方法****
    • 53.****JS数组去重的方法,请列出多种方法****
    • 54.****JS找出多维数组最大值,请列出多种方法****
    • 55.****JS找出字符串出现最多次数的字符以及次数,请列出多种方法****
    • 56.****JS实现字符串的增、删、查、改、过滤的功能,请列出多种方法****
    • 57.****JS中new操作符具体做了什么****
    • 58.****var、let、const****的概念、作用、原理、特性、优点、缺点、区别、使用场景
    • 59.****localStorage、sessionStorage、cookie****的概念、作用、原理、特性、优点、缺点、区别、使用场景
    • 60.JS原生常用dom操作方法


点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!


系列文章目录

JavaScript知识系列(1)每天10个小知识点

JavaScript知识系列(2)每天10个小知识点

JavaScript知识系列(3)每天10个小知识点

JavaScript知识系列(4)每天10个小知识点

JavaScript知识系列(5)每天10个小知识点

知识点

50**.defineProperty 和 proxy**的概念、作用、原理、特性、优点、缺点、区别、使用场景

Object.definePropertyProxy 是 JavaScript 中用于对象属性访问和修改的两种重要机制,它们有不同的概念、作用、原理、特性、优点、缺点、区别和使用场景。

Object.defineProperty

概念

  • Object.defineProperty 是一个用于在对象上定义属性的方法,可以用于添加新属性或修改现有属性的特性。

作用

  • 用于对对象属性进行精细的控制,包括设置属性的值、获取属性的值、设置属性的可枚举性、可配置性和可写性等特性。

原理

  • Object.defineProperty 使用一个属性描述符对象来定义属性,该对象包括valuewritableenumerableconfigurable等属性,用于控制属性的行为。

特性

  • 支持老版本的 JavaScript。
  • 主要用于对象属性的数据访问控制。

优点

  • 精细控制属性行为。
  • 兼容性好。

缺点

  • 需要逐个属性进行设置,不够灵活。
  • 不适用于代理对象。

区别

  • Object.defineProperty 主要用于修改或定义对象属性的特性,但不适用于代理对象。
  • 不支持监听整个对象的变化。

使用场景

  • 对象属性的精细控制,如定义计算属性、隐藏属性等。

Proxy

概念

  • Proxy 是 ECMAScript 6 引入的对象代理机制,允许你创建一个代理对象,用于控制对目标对象的访问。

作用

  • 用于创建代理对象,允许拦截对目标对象的操作,包括读取、写入、删除、遍历等。

原理

  • Proxy 创建一个代理对象,该代理对象通过拦截器函数(handler)来捕获对目标对象的操作,可以在拦截器函数中自定义行为。

特性

  • 支持最新版本的 ECMAScript,更强大且灵活。
  • 可以监听整个对象的变化。
  • 可以拦截多种操作。

优点

  • 灵活且强大的拦截能力,适用于代理对象。
  • 可以监听整个对象的变化。

缺点

  • 兼容性较差,需要新版本的 JavaScript。
  • 学习成本相对较高。

区别

  • Proxy 更加强大和灵活,支持代理对象和监听整个对象。
  • Object.defineProperty 主要用于对象属性的精细控制。

使用场景

  • 代理对象,如拦截对象属性的访问和修改。
  • 数据劫持,用于实现响应式框架(如Vue)。
  • 监听对象变化,如实现数据变化的通知机制。

总结来说,Object.defineProperty 主要用于对象属性的特性控制,而 Proxy 更加灵活,适用于代理对象、监听对象变化、自定义拦截等场景。在新项目中,推荐使用 Proxy,但在需要兼容老版本 JavaScript 的项目中,可能需要使用 Object.defineProperty

51.跨域不同解决方式的概念、作用、原理、特性、优点、缺点、区别、使用场景

跨域(Cross-Origin)是指在浏览器中,一个网页的脚本试图访问另一个源(域名、协议、端口组合)的资源时发生的安全限制。跨域问题通常涉及到同源策略(Same-Origin Policy),它是浏览器的一种安全机制,阻止网页从一个源加载的文档或脚本获取来自另一个源的数据。以下是不同的跨域解决方式的详细解释:

1. JSONP(JSON with Padding)

  • 概念:JSONP是一种跨域通信的技术,通过动态创建

你可能感兴趣的:(JavaScript面试题系列,javascript,java,网络,前端)