Отладка — это искусство, и очень важно, чтобы мы использовали правильные инструменты, чтение ошибок — это большое преимущество, которое дает четкую информацию о том, что пошло не так.
не определен
console.log(tax);
tax is not defined
Это ошибка ссылки, и всякий раз, когда мы используем переменную, она должна быть либо объявлена, либо определена в том же файле, либо импортирована из файла, в котором она объявлена или определена и экспортирована.
const tax = 10
— Вариант 1
let tax
— Вариант 2
import {tax} from 'somefile'
— Вариант 3
Невозможно прочитать свойства неопределенного (чтение «чего-то»)
let user;
console.log(user.name)
Значение пользователя не определено, мы пытаемся получить доступ к свойствам неопределенной переменной, мы получаем это.
Мы можем либо использовать ?
, либо нам нужно определить переменную как объект
console.log(user?.name)
— Вариант 1
let user={}
— Вариант 2
let user={name:'Vinodh'}
— Вариант 3
Невозможно прочитать свойства null (чтение «что-то»)
let user = null;
console.log(user.name)
Значение пользователя равно null, мы пытаемся получить доступ к свойствам нулевой переменной, мы получаем это.
мы можем использовать ту же опцию, что и не можем читать свойства undefined
это не функция
const city = 10;
console.log(city.toUpperCase()) // city.toUpperCase is not a function
Город — это число, но мы обращаемся к нему строковым методом.
Когда мы используем машинописный текст, эта ошибка будет отображаться во время компиляции, но с javascript она будет отображаться во время выполнения во время выполнения.
Это относится к любому типу (число, массив, строка, объект), когда обращаются к методам другого типа, мы получаем эту ошибку.
console.log(city?.toUpperCase())
— добавление ?
НЕ исправит это.
city.toUpperCase?.()
— Вариант 1
const city ='Erode’
— Вариант 2
city.toUpperCase ? city.toUpperCase() : ‘’
— Вариант 3
typeof city ===’string’ ? city.toUpperCase() : ‘’
— Вариант 4