Типы данных используемые в js: Типы данных

Основные понятия, связанные с типами данных API JavaScript для Excel — Office Add-ins

  • Статья
  • Чтение занимает 5 мин

В этой статье рассказывается о том, как использовать API JavaScript для Excel для работы с типами данных. Здесь представлены основные понятия, лежащие в основе разработки типов данных.

Свойство

valuesAsJson.

Свойство valuesAsJson (или единственное число valueAsJson для NamedItem) является неотъемлемой частью создания типов данных в Excel. Это свойство является расширением свойств values, таких как Range.values. Оба свойства values и valuesAsJson используются для доступа к значению в ячейке, но свойство

values возвращает только один из четырех основных типов: строка, число, логическое значение или ошибка (в виде строки). Напротив, свойство valuesAsJson возвращает расширенную информацию об этих четырех основных типах, а также такие типы данных, как форматированное число, сущность и веб-изображение.

Следующие объекты предлагают свойство valuesAsJson.

  • NamedItem (как valueAsJson)
  • NamedItemArrayValues
  • Range
  • RangeView
  • TableColumn
  • TableRow

Примечание.

Некоторые значения ячеек изменяются в зависимости от языкового стандарта пользователя. Свойство valuesAsJsonLocal предлагает поддержку локализации и доступно для всех тех же объектов, что и valuesAsJson.

Значения ячеек

Свойство valuesAsJson возвращает псевдоним типа CellValue, который является объединением следующих типов данных.

  • ArrayCellValue
  • BooleanCellValue
  • DoubleCellValue
  • EmptyCellValue
  • EntityCellValue
  • ErrorCellValue
  • FormattedNumberCellValue
  • LinkedEntityCellValue
  • ReferenceCellValue
  • StringCellValue
  • ValueTypeNotAvailableCellValue
  • WebImageCellValue

Псевдоним типа CellValue также возвращает объект CellValueExtraProperties, который является пересечением с остальными *CellValue типами. Это не тип данных. Свойства объекта CellValueExtraProperties используются со всеми типами данных для указания сведений, связанных с перезаписью значений ячеек.

Схема JSON

Каждый тип значения ячейки, возвращаемый valuesAsJson, использует схему метаданных JSON, разработанную для этого типа. Наряду с дополнительными свойствами, уникальными для каждого типа данных, все эти схемы метаданных JSON имеют общие свойства type, basicType, и basicValue

Определяет typecellValueType данных. Объект basicType всегда доступен только для чтения и используется в качестве резервного, если тип данных не поддерживается или неправильно отформатирован. basicValue соответствует значению, которое будет возвращено свойством values. basicValue используется в качестве запасного варианта, когда расчеты сталкиваются с несовместимыми сценариями, такими как более старая версия Excel, не поддерживающая функцию типов данных. Объект basicValue доступен только для чтения для ArrayCellValueтипов данных , EntityCellValue, LinkedEntityCellValueи WebImageCellValue .

В дополнение к трем полям, общим для всех типов данных, схема метаданных JSON для каждого *CellValue имеет свойства, доступные в соответствии с этим типом. Например, тип WebImageCellValue включает свойства altText и attribution, а тип EntityCellValue предлагает поля properties и text.

В следующих разделах приводятся примеры кода JSON для типов форматированного числа, сущности и веб-изображения.

Форматированное число

Объект FormattedNumberCellValue позволяет настройкам Excel определять свойство numberFormat для некоторого значения. После того как свойство форматированного числа присвоено значению, оно сопровождает это значение в расчетах и может возвращаться функциями.

В следующем примере кода JSON показана полная схема значения форматированного числа. Значение форматированного числа myDate в примере кода отображается в пользовательском интерфейсе Excel как 1/16/1990. Если минимальные требования к совместимости для функции типов данных не выполнены, вычисления используют basicValue вместо форматированного числа.

// This is an example of the complete JSON of a formatted number value.
// In this case, the number is formatted as a date.
const myDate: Excel.FormattedNumberCellValue = {
    type: Excel.CellValueType.formattedNumber,
    basicValue: 32889.0,
    basicType: Excel.RangeValueType.double, // A read-only property. Used as a fallback in incompatible scenarios.
    numberFormat: "m/d/yyyy"
};

Начните экспериментировать с отформатированными числовых значениями, открыв Script Lab и проверив фрагмент фрагмента Типы данных: форматированные числа в библиотеке примеров.

Сущность

Значение сущности — это контейнер для типов данных, аналогичный объекту в объектно-ориентированном программировании. Сущности также поддерживают массивы в качестве свойств значения сущности. Объект EntityCellValue позволяет надстройкам определять такие свойства, как type, text и properties. Свойство properties позволяет значению сущности определять и содержать дополнительные типы данных.

Свойства basicType и basicValue определяют, как вычисления читают этот тип данных сущности, если минимальные требования к совместимости для использования типов данных не выполнены. В этом сценарии этот тип данных сущности отображается как ошибка

#VALUE! в пользовательском интерфейсе Excel.

В следующем примере кода JSON показана полная схема значения сущности, которое содержит текст, изображение, дату и дополнительное текстовое значение.

// This is an example of the complete JSON for an entity value.
// The entity contains text and properties which contain an image, a date, and another text value.
const myEntity: Excel. EntityCellValue = {
    type: Excel.CellValueType.entity,
    text: "A llama",
    properties: {
        image: myImage,
        "start date": myDate,
        "quote": {
            type: Excel.CellValueType.string,
            basicValue: "I love llamas."
        }
    }, 
    basicType: Excel.RangeValueType.error, // A read-only property. Used as a fallback in incompatible scenarios.
    basicValue: "#VALUE!" // A read-only property. Used as a fallback in incompatible scenarios.
};

Значения сущностей также предлагают свойство layouts, которое создает карточку для сущности. Карточка отображается в виде модального окна в пользовательском интерфейсе Excel и может демонстрировать дополнительные сведения, содержащиеся в значении сущности, помимо того, что отображается в ячейке. Дополнительные сведения см. в статье Использование карточек с типами данных значений сущностей.

Чтобы изучить типы данных сущностей, начните с Script Lab в Excel и откройте Типы данных: Создание карточек сущностей из данных в фрагменте таблицы в библиотеке примеров. Фрагменты свойств Типы данных: значения сущностей со ссылками и Типы данных: Атрибуты значений сущностей предлагают более подробное описание функций сущностей.

Связанные объекты

Значения связанных сущностей или объекты LinkedEntityCellValue являются типом значения сущности. Эти объекты интегрируют данные, предоставленные внешней службой, и могут отображать эти данные в виде карты сущности, как обычные значения сущности. Типы данных Stocks и Geography, доступные через пользовательский интерфейс Excel, являются значениями связанных сущностей.

Веб-изображение

Объект WebImageCellValue создает возможность хранения изображения как части сущности или как независимого значения в диапазоне. Этот объект позволяет использовать множество свойств, включая

address, altText и relatedImagesAddress.

Свойства basicType и basicValue определяют, как вычисления читают этот тип данных веб-изображения, если минимальные требования к совместимости для использования функции типов данных не выполнены. В этом сценарии этот тип данных веб-изображения отображается как ошибка #VALUE! в пользовательском интерфейсе Excel.

В следующем примере кода JSON показана полная схема веб-изображения.

// This is an example of the complete JSON for a web image.
const myImage: Excel.WebImageCellValue = {
    type: Excel.CellValueType.webImage,
    address: "https://bit.ly/2YGOwtw", 
    basicType: Excel.RangeValueType.error, // A read-only property. Used as a fallback in incompatible scenarios.
    basicValue: "#VALUE!" // A read-only property. Used as a fallback in incompatible scenarios.
};

Опробуйте типы данных веб-изображений, открыв Script Lab и выбрав фрагмент фрагмента Типы данных: веб-изображения в библиотеке Примеры.

Улучшенная поддержка ошибок

API типов данных представляют существующие ошибки пользовательского интерфейса Excel в качестве объектов. Теперь, когда эти ошибки доступны как объекты, надстройки могут определять или извлекать такие свойства, как type, errorType и errorSubType.

Ниже приводится список всех объектов ошибок с поддержкой, расширенной за счет типов данных.

  • BlockedErrorCellValue
  • BusyErrorCellValue
  • CalcErrorCellValue
  • ConnectErrorCellValue
  • Div0ErrorCellValue
  • FieldErrorCellValue
  • GettingDataErrorCellValue
  • NotAvailableErrorCellValue
  • NameErrorCellValue
  • NullErrorCellValue
  • NumErrorCellValue
  • RefErrorCellValue
  • SpillErrorCellValue
  • ValueErrorCellValue

Каждый из объектов ошибок может получить доступ к перечисление через свойство errorSubType, и в этом перечислении содержатся дополнительные данные об ошибке. Например, объект ошибки BlockedErrorCellValue может получить доступ к перечислению BlockedErrorCellValueSubType. В перечислении BlockedErrorCellValueSubType содержатся дополнительные данные о том, что вызвало данную ошибку.

Дополнительные сведения об объектах ошибок типов данных см. в статье Типы данных: задание значений ошибок в библиотеке Script Lab

Samples.

Дальнейшие действия

Узнайте, как типы данных сущностей расширяют возможности надстроек Excel за пределами двухмерной сетки, см. в статье Использование карточек с типами данных значения сущности .

Используйте пример Создание и изучение типов данных в Excel в репозитории OfficeDev/Office-Надстройка в примерах , чтобы более глубоко поэкспериментировать с типами данных, создавая и загружая неопубликованные надстройки, которые создают и редактируют типы данных в книге.

См. также

  • Обзор типов данных в надстройках Excel
  • Использование карточек с типами данных значений сущностей
  • Создание и изучение типов данных в Excel
  • Пользовательские функции и типы данных
  • Справочник по API JavaScript для Excel

JavaScript — Введение, типы данных

Введение

JavaScript — скриптовый язык, используемый в основном для программирования действий страниц HTML. Официальный первый релиз языка вышел в марте 1996 в составе Netscape 2. Затем язык прошел открытую стандартизацию в организации ECMA как ECMAScript или ECMA-262. Кроме веб страниц, этот язык стал использоваться для скриптования приложений как конкурент VBScript/VBA.

JavaScript может похвастаться всеми плюсами и минусами скриптовых языков. Этот язык гораздо проще синтаксически, чем полноценные языки программирования, имеет упрощенную систему типов и автоматическое приведение типов со сборкой мусора. Это дает ложное ощущение простоты использования языка. На самом деле, этот язык становится серьезной помехой даже для не очень сложных проектов. Крупные проекты гарантированно будут иметь очень высокую стоимость разработки и особенно отладки. Особенно усложняет разработку тот факт, что разные браузеры имеют разные объектные модели (хоть и очень схожие). Поэтому программирование вебстраниц усложняется проверками версий браузеров и выполнением одного действия разными способами.

Популярные библиотеки помогают скрыть в себе существенное количество такого кода, но это требует изучения и обновления этих постоянно изменяющихся библиотек, а также немного замедляет и без того не слишком быстрый язык.

На вебстраницах текст скриптов может указываться тремя способами:

  1. Подключением файла тегом script:
    <script src="URL файла"></script>
  2. Включением скрипта в тег script:
    <script>
    Текст скрипта
    </script>
  3. Включением скрипта в атрибут тега (обычно в событие click):
    <a>test</a>

Текст скрипта выполняется как это обычно происходит в скриптовых языках: команды выполняются по порядку, а объявления функций и других объектов просто делают этот объект известным интерпретатору. Команды могут разделяться точкой с запятой или просто переносом строки. Рекомендуется всегда ставить точку с запятой: это упрощает чтение для программистов на других C-подобных языках и избавляет от проблем в случае утери переноса строки (парсер HTML перенос строки может заменить но пробел).

JavaScript использует стандартные комментарии C: // для строчных комментариев и /* */ для многострочных. Текст скрипта может помещаться в комментарии в HTML или в секцию CDATA в XML, чтобы неподдерживающие его браузеры не пытались обработать текст.

Типы данных

JavaScript имеет очень упрощенную систему типов данных. Причем переменные не имеют жесткой типизации. Тип переменной меняется вместе с ее значением. Поэтому тип значения также должен храниться в переменной и перед выполнением операции интерпретатор вынужден сверяться с текущим типом. Это основная проблема для производительности в JavaScript. Современные интерпретаторы пытаются оптимизировать большой блок кода, если определяют гарантированный тип, но такие проверки могут занимать гораздо больше времени, чем выполнение полезных действий. JavaScript определяет 7 типов данных: Number, String, Boolean, Object, Array, Null, Undefined. Тип выражения можно определить оператором typeof(выражение). Но для значений null и для массивов этот оператор также вернет «object».

Number

Числа всегда хранятся как вещественные в формате IEEE 754 (восьмибайтовое вещественное число — double). Числовой литерал может быть целочисленным. Целочисленный литерал может быть десятичным (цифры 0-9), шестнадцатеричным (префикс 0x и цифры 0-f) или восьмеричным (префикс 0 и цифры 0-7). Вещественный литерал может быть в диапазоне 5e-324 — 1.79769e308.

Также определены специальные значения:

  • NaN для результатов математических операций с неверными операндами
  • положительная и отрицательная бесконечность для чисел со слишком большим абсолютным значением
  • положительный и отрицательный ноль для чисел со слишком маленьким абсолютным значением
String

Строка — это последовательность символов. Строковый литерал может заключаться в одинарные или двойные кавычки. Разницы нет, это сделано для удобства: если строка окружена двойными кавычками, одинарные кавычки можно применять без экранирования и наоборот. JavaScript поддерживает все экранирующие последовательности, что и C. Для экранирования произвольного символа Юникода используется последовательность \uHHHH.

Boolean

Булевый тип имеет только два значения: true и false. Переменные этого типа обычно используются для управления потоком скрипта.

Null

Нулевой тип имеет одно значение: null. Это значение используют, чтобы показать, что переменная действительно не содержит значения.

Undefined

Неопределенный тип имеет одно значение: undefined. Это значение имеет переменная до того, как ей присвоили первое значение. Если обратиться к несуществующему свойству объекта, оно также вернет значение undefined.

Object

Объект в JavaScript — это коллекция полей (переменных) и методов (функций). Элементы объекта могут добавляться и удаляться во время выполнения. Понятия объектно-ориентированного программирования отсутствуют, но есть техники вроде конструкторной функции и прототипирования, которые позволяют получать нечто похожее на «правильное» объектно-ориентированное программирование. Объекты — это очень большая тема, которая получит еще несколько отдельных статей.

Array

Массивы в JavaScript — это универсальные коллекции. Они могут вести себя как массивы, словари (ассоциативные массивы), стеки, динамические массивы, разреженные массивы. Массивам также будет посвящена отдельная статья.

Автоматическое приведение типов

Если в выражении встречаются подвыражения разных типов, они приводятся следующим образом:

Number + String -> String + String (числовые операторы как * вернут NaN)

Boolean + String -> String + String

Number + Boolean -> Number + Number

Number + null -> Number + 0

Number * null -> Number * 0

Number + undefined -> undefined

String + undefined -> String + «undefined»

String + null -> String + «null»

Evgeniy Meshbeyn
05-07-2014


JavaScript>>
<<All>>

5 вещей, которые нужно знать о типах данных JavaScript

Глубокое понимание типов данных JavaScript

Фото Флориана Оливо на Unsplash

Хотя тип данных JavaScript является наиболее знакомой концепцией для программистов. Но есть еще 5 вещей, заслуживающих подробного обсуждения.

  • Разница между «void 0», «null» и «undefined»
  • Является ли String.length истинной длиной?
  • Правильный способ сравнения чисел с плавающей запятой.
  • Преобразование типов в JavaScript.
  • Проверка типов данных в JavaScript. То есть это переменная в глобальной области видимости. Начальное значение undefined является примитивным значением undefined .

    Глобальное свойство с именем undefined по умолчанию имеет значение undefined . Это свойство можно было изменить вплоть до ES5, когда оно стало доступным только для чтения.

    null

    Из MDN:

    Значение null записывается литералом: null . null не является идентификатором свойства глобального объекта, как может быть undefined . Вместо этого null выражает отсутствие идентификации, указывая на то, что переменная не указывает ни на какой объект.

    В отличие от undefined , он не назначается по умолчанию чему-либо в JavaScript. Вы можете только вручную установить значение ноль .

    void

    <выражение>

    Из MDN:

    Оператор void часто используется просто для получения примитивного значения undefined , обычно используя « void(0) » (что эквивалентно « void 0 «). В этих случаях можно использовать глобальную переменную undefined .

    Заключение

    Потому что в коде JavaScript undefined является переменной. Хотя не определено был сделан доступным только для чтения в ES5, мы все еще можем изменить его значение в локальной области. Например, следующий код.

    Таким образом, чтобы избежать случайного вмешательства, мы рекомендуем использовать void 0 для получения значения undefined .

    null имеет только одно значение, null , семантика которого представляет собой пустое значение, и в отличие от undefined , null является ключевым словом JavaScript, поэтому вы можете безопасно использовать ключевое слово null для получения значений null в любом коде.

    Также следует отметить, что null и undefined имеют одно и то же значение, но разные типы.

    Фото Эмили Мортер на Unsplash

    UTF-16, строковый формат, используемый JavaScript, использует одну 16-битную единицу кода для представления наиболее распространенных символов, но для менее часто используемых символов необходимо использовать две единицы кода, поэтому возможно для значения, возвращаемого length , charAt 953 - 1 элементов. Ранее максимальная длина не указывалась. В Firefox строки имеют максимальную длину 2**30 - 2 (~1 ГБ). В версиях до Firefox 65 максимальная длина составляла 2**28 - 1 (~ 256 МБ).

    Знаете ли вы, что в JavaScript 0,1 + 0,2 не равняется 0,3. Это типичный случай потери точности. Если вы хотите вычислить результат 0,1 + 0,2, компьютер сначала преобразует 0,1 и 0,2 в двоичные числа, затем сложит и, наконец, преобразует результат сложения в десятичное число. Потеря точности произойдет в обоих преобразованиях. Поэтому полученные результаты не являются точными.

    Таким образом, правильный способ проверить равенство чисел с плавающей запятой — использовать Number.EPSILON

    Photo by Brett Jordan on Unsplash

    Первобытные типы.

    Преобразование строк в числа

    Существует три способа преобразования строк в числа: Number() , parseInt() , parseFloat() .

    Номер(): Преобразование числовых строк и нулей в числа. Пока строка имеет правильное десятичное, двоичное, восьмеричное и шестнадцатеричное выражение, а также правильную научную запись знаков, ее можно преобразовать в число. Если обработка не удалась, верните NaN .

    parseInt( string [ radix] ): Функция parseInt преобразует свой первый аргумент в строку, анализирует эту строку, затем возвращает целое число или NaN .

    Если не NaN , возвращаемое значение будет целым числом, которое является первым аргументом, принятым в качестве числа в указанной системе счисления . (Например, основание из 10 преобразуется из десятичного числа, 8 преобразуется из восьмеричного, 16 из шестнадцатеричного и т. д.)

    parseFloat(string): ) анализирует аргумент (предварительно преобразовывая его в строку, если это необходимо) и возвращает число с плавающей запятой.

    В большинстве случаев Number() лучше, чем parseInt() и parseFloat() . Если вы используете parseInt() , рекомендуется передавать второй параметр в любое время.

    Преобразование чисел в строки

    Также существует два способа преобразования чисел в строки toString() и 9 и String()

    toString( [основание счисления] ) : Метод toString() возвращает строку, представляющую указанный объект Number .

    String() : Глобальный метод String() может преобразовывать числа в строки. Его можно использовать для любого типа чисел, литералов, переменных или выражений.

    Примитивные объекты-оболочки

    Объект имеет набор методов и свойств. Мы знаем, что у строк есть несколько служебных методов, таких как substr 9.0029, индекс и заменяют . Кроме того, у них также есть свойство length . Кажется очевидным, что строки тоже похожи на объекты. Но строки не являются объектами, они не могут позволить вам определять пользовательские методы и свойства:

    Это происходит из-за объектов-оболочек в JavaScript. За исключением null и undefined , все примитивные значения, Number , String , Boolean , Symbol , имеют эквиваленты объектов, которые обертывают примитивные значения.

    Когда мы обращаемся с примитивным значением, как с объектом (т. е. обращаясь к свойствам и методам), JavaScript внутри создает оболочку, которая обертывает это значение и представляет его как объект. Движок JS никогда не использует объекты-обертки повторно, отдавая их сборщику мусора сразу после однократного использования.

    Избегайте объектов String , Number и Boolean . Они усложняют ваш код и замедляют скорость выполнения.

    Объекты в примитивный тип

    В Спецификации языка ECMAScript указывается функция ToPrimitive(input[PreferredType]) , которая реализует преобразование объектов в примитивный тип.

    Абстрактная операция ToPrimitive принимает входной аргумент и необязательный аргумент PreferredType . Абстрактная операция ToPrimitive преобразует свой входной аргумент в необъектный тип. Если объект способен преобразовываться в более чем один примитивный тип, он может использовать необязательную подсказку 9.0012 PreferredType для предпочтения этого типа.

    Преобразование объектов в строки и числа состоит из двух шагов.

    1. Превращение объектов в примитивные значения с помощью ToPrimitive .
    2. Преобразовать примитивные значения в строки или числа, используя valueOf и toString

    Если valueOf и toString не существуют или не возвращают примитивный тип, будет выдано сообщение TypeError0029 исключение.

    При преобразовании объектов в строки сначала вызывается метод toString , а затем valueOf ; при преобразовании из объектов в числа сначала вызывается valueOf , а затем toString .

    После ES6 объекты могут переопределить поведение по умолчанию ToPrimitive , определив метод @@toPrimitive Symobl .

    Photo by Antoine Dautry on Unsplash

    Существует четыре метода проверки типов данных в JavaScript: typeof , instanceof , конструктор , Object.prototype.toString.call() .

    typeof

    Оператор typeof возвращает строку, указывающую тип невычисленного операнда. Результаты включают: число , логическое значение , строка , символ , объект , неопределенный , функция .

    Однако есть два исключения между возвратом typeof и типы данных времени выполнения. Один из них — typeof null return object с типом данных среды выполнения Null , а другой — typeof (function(){}) return function с типом данных среды выполнения Object .

    Поскольку результаты typeof не соответствуют типу среды выполнения, мы можем использовать typeof для проверки типа данных только тогда, когда мы точно знаем, что переменная находится в диапазоне число , логическое значение , строка , символ , неопределенный и функция .

    instanceof

    Оператор instanceof проверяет, появляется ли свойство прототипа конструктора где-либо в цепочке прототипов объекта. Возвращаемое значение является логическим значением.

    Оператор instanceof проверяет только наличие конструктора . прототип в цепочке прототипов объекта. Экземпляр из не может тестировать примитивные типы. Будет возвращено два результата: Когда примитивный тип instanceof примитивный тип возвращает ошибку исключения; Когда примитивный тип instanceof ссылочного типа возвращает false .

    конструктор

    Метод конструктор является специальным методом класса для создания и инициализации объекта этого класса.

    Конструктор 9Метод 0029 похож на instanceof и также может тестировать примитивные типы.

    Недостаток конструктора : он не может тестировать null и undefined , потому что нет свойства конструктора в null и undefined . Поэтому мы редко используем конструктор для проверки типов данных в реальных проектах.

    Object.prototype.toString.call()

    Object. prototype.toString.call() — наиболее часто используемый метод определения типа данных. Он вернет [ojbect type] , второе значение type — это тип объекта .

    Сводка определения типа данных

    1. Примитивные типы: Номер , Boolean , Строка , Символ , Неопределенные и Функция Использование TIPSOF и определение.
    2. null использование Object.prototype.toString.call() и === для проверки типа.
    3. Объект использует экземпляр для тестирования.
    4. Мы можем использовать Object.prototype.toString.call() для проверки всех ситуаций.

    В этой статье мы представили систему типов среды выполнения JavaScript. Может быть, даже если мы не знаем этих знаний, мы все равно можем написать исполняемый код JavaScript. Но после глубокого понимания этих знаний мы можем лучше понимать особенности языка JavaScript, снижать потенциальные риски и писать более качественный код.

    Спасибо за чтение, можно ожидать лучшего будущего.

    Photo by salvatore ventura на Unsplash

    Сколько типов данных существует в JavaScript, что это такое и что считается типом?

    спросил

    Изменено 1 год, 9 месяцев назад

    Просмотрено 147 раз

    Мне любопытно, сколько типов есть в JS, потому что я читал противоречивые ответы из других надежных источников:

    Если мы посмотрим на спецификацию ECMAScript, там 8 типов:

    • Undefined, Null, Boolean , Строка, Символ, Число, BigInt и Объект

    Вроде функция считается объектом.


    Если мы посмотрим на MDN, они говорят, что существует 9 типов:

    Шесть типов данных, которые являются примитивами, проверяются оператором typeof:

    1. не определено: тип экземпляра === "не определено"
    2. Логическое значение: тип экземпляра === "логическое значение"
    3. Число: тип экземпляра === "число"
    4. Строка: тип экземпляра === "строка"
    5. BigInt : тип экземпляра === "bigint"
    6. Символ: тип экземпляра === "символ"

    Структурные типы:

    1. Объект : typeof instance === "object". Специальный неданный, но структурный тип для любого экземпляра построенного объекта, также используемый в качестве структур данных: новый объект, новый массив, новая карта, новый набор, новый WeakMap, новый WeakSet, новая дата и почти все, что сделано с новым ключевым словом;
    2. Функция: не структура данных, хотя она также отвечает за оператор typeof: typeof instance === "функция". Это просто специальное сокращение для функций, хотя каждый конструктор функций является производным от конструктора объектов.

    Структурный корневой примитив:

    1. null : typeof instance === "object". Специальный примитивный тип, имеющий дополнительное использование для своего значения: если объект не унаследован, то показывается ноль;

    Какой из них правильный?

    • javascript
    • типы

    15

    Текущая версия спецификации ECMAScript определяет 8 типов значений:

    1. Не определено
    2. Нуль
    3. Логическое значение
    4. Строка
    5. Символ
    6. Номер
    7. BigInt
    8. Объект

    https://262. ecma-international.org/11.0/#sec-ecmascript-language-types

    Тип из 9Оператор 0029 является большим источником путаницы в JavaScript, потому что он возвращает не , а всегда фактический тип значения. Таблица преобразования для typeof (https://262.ecma-international.org/11.0/#sec-typeof-operator) выглядит следующим образом:

    Тип val Результат
    Не определено не определено
    Нулевой объект !!!
    Логический логический
    Номер номер
    Строка струна
    Символ символ
    BigInt большое число
    Объект (не реализует [[Вызов]]) объект
    Объект (осуществляет [[Вызов]]) функция !!!

    Обратите внимание на два исключения, помеченные !!!

    Чтобы еще больше запутать нас, язык также предоставляет функции-оболочки для этих 4 примитивных типов

    1. Boolean
    2. Номер
    3. Строка
    4. BigInt

    Эти функции

    • при вызове с new возвращают свой аргумент, преобразованный в соответствующий объект-оболочку ( логическое значение , число и т.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *