• 学习前端第二十五天(构造器和操作符‘new’,可选链‘?.’,symbol类型)


    一、构造器和操作符‘new’

    构造函数:

    1. 命名以大写字母开头。
    2. 只能由 "new" 操作符来执行。

    当一个函数被使用 new 操作符执行时,它按照以下步骤:

    1. 一个新的空对象被创建并分配给 this。
    2. 函数体执行。通常它会修改 this,为其添加新的属性。
    3. 返回 this 的值。

    如果“new”函数有return语句,那么带有对象的 return 返回该对象,在所有其他情况下返回 this。

    主要目的 —— 实现可重用的对象创建代码。

    二、可选链‘?.’

    一种访问嵌套对象属性的安全的方式。即使中间的属性不存在,也不会出现错误。

    如果可选链 ?. 前面的值为 undefined 或者 null,它会停止运算并返回 undefined。

    例如 value?.prop:

    • 如果 value 存在,则结果与 value.prop 相同,
    • 否则(当 value 为 undefined/null 时)则返回 undefined。

    ?. 语法使其前面的值成为可选值,但不会对其后面的起作用。

    变体:?.()   ?.[]

    user.admin?.() ?.() 用于调用一个可能不存在的函数。

    user?.[key] ?.[ ]允许从一个可能不存在的对象上安全地读取属性

    三、symbol类型

    可以使用 Symbol() 来创建这种类型的值

    let id = Symbol("id");

    id 是描述为 "id" 的 symbol(一种数据)

    即使我们创建了许多具有相同描述的 symbol,它们的值也是不同。

    symbol 允许我们创建对象的“隐藏”属性,代码的任何其他部分都不能意外访问或重写这些属性。

    如果我们要在对象 {...} 中使用 symbol,则需要使用方括号把它括起来。

    [id]: 123 // 而不是 "id":123

    symbol 属性不参与 for..in 循环。

    Object.assign() 可以实现复制对象中的Symbol

    全局 symbol 注册表。可以在其中创建 symbol 并在稍后访问它们,它可以确保每次访问相同名字的 symbol 时,返回的都是相同的 symbol。

    要从注册表中读取(不存在则创建)symbol,使用 Symbol.for(key)。

    可以使用 Symbol.keyFor(sym),返回一个symbol名字

    同(sym.description)

  • 相关阅读:
    python常用库之数据库orm框架之SQLAlchemy
    DDoS木马-Tsunami家族样本分析
    【JavaEE初阶】 HTML基础详解
    linux学习(3)—— linux系统的常用命令
    归一化与标准化的区别
    K-Means算法进行分类
    pycharm运行YOLOv5 (一)
    抖音矩阵系统,抖音矩阵系统,抖音矩阵系统,抖音矩阵系统,抖音矩阵系统,抖音矩阵系统,抖音矩阵系统,抖音矩阵系统。
    【DL with Pytorch】第 3 章 :使用 DNN 的分类问题
    使用微信小程序控制蓝牙小车(微信小程序端)
  • 原文地址:https://blog.csdn.net/xggfdf/article/details/137968000