«Случайные» точки знаний интерфейса TS ?? и ?. и ||, оператор расширения:...

Мастера придумали ts и упаковали js, не считая нас новичками, как сложно понять эти приблизительные, показные и произвольные понятия. JS изучать непросто, и тогда я сделал TS. Изучив TS, я обнаружил, что могу использовать JAVA. Блин, вроде бы я что-то полностью понял.

1.??Сумма?.Сумма ||

1. Определение:

?. Необязательный оператор цепочки; при доступе к свойствам многоуровневого объекта используйте его, если он совместим с нулевыми значениями; ?? Оператор слияния нулевых значений; только когда левая часть равна нулю или не определена, будет возвращено число справа

2.?.Необязательная цепочка

При доступе к атрибутам многоуровневого объекта (например, res.data.list), если атрибут res.data пуст, будет сообщено об ошибке ссылки; по этой причине нам приходится иметь дело с этим следующим образом:

let dataList = res && res.data && res.data.list

что эквивалентно

пусть dataList = res?.data?.list

3. Совместное использование ?? и ?.

константный объект = {

      а: «ххх»,

      с: {

        д: 'абв'

      }

    }

    let res1 = obj?.a?.b // <=等价=> let res = obj && obj.a && obj.ab

    пусть res2 = obj?.e?.f

    пусть res3 = obj?.e?.f ?? '123'

    пусть res4 = obj?.a?.b ?? '456'

    пусть res5 = obj?.c?.d ?? '789'

    console.log(res1) // не определено

    console.log(res2) // не определено

    console.log(res3) // 123

    console.log(res4) // 456

    console.log(res5) // abc

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

Когда одна из цепочек равна нулю или неопределена, возвращается неопределенное значение;

Таким образом, сообщение об ошибке не будет выдано, даже если атрибут отсутствует;

То, что следует за двойным вопросительным знаком, является значением по умолчанию.

4. Разница между ?? и ||

|| Считает 0 пустую строку ложной

?? Считать 0 пустую строку истинной

console.log(1 || "xx") //1

console.log(0 || "xx") //xx

console.log("" || "xx") //xx

console.log(1 ?? "xx") //1

console.log(0 ?? "xx") //0

console.log("" ?? "xx") //''

 

Использование ?? в основном такое же, как ||; однако оно игнорирует две ошибки: 0 и пустую строку.

2. Распространение синтаксиса es6

(1) Оператор расширения:…

const arr1 = [1, 2, 3];

const arr2 = [...arr1, 10, 20, 30];

// Таким образом, arr2 становится [1, 2, 3, 10, 20, 30];

 

(2) Метод объявления переменных: let/const

(3) Строка шаблона: ``

Переменные внутри используют ${a} для получения значения.

const name = 'Ли Ган';

константный возраст = 30;

console.log(`Я ${name}, в этом году мне ${age}`)

 

(4) Функция стрелки:

вар fn = функция(а, б) {

    вернуть а + б;

}

метод записи es6:

const fn = (a, b) => a + b;

 

(5) Назначение структуры

//Сначала есть такой объект

константный реквизит = {

    className: 'кнопка тигра',

    загрузка: ложь,

    нажал: правда,

    отключено: 'отключено'

}

//es5

вар загрузки = props.loading;

вар нажал = props.clicked;

// структура синтаксического анализа es6

const {загрузка, щелчок} = реквизит;

 (6) Метод определения параметра по умолчанию для функции

//es5

функция sum (a, b) {

    а = а || 10;

    б = б || 5;

    вернуть а + б;

}

// es6

функция sum (a = 10, b = 5) {

    вернуть а + б;

}

 console.log(сумма(1, 2)); // 3

 console.log(сумма(5)); // 10

 console.log(сумма()); // 15

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

 console.log(сумма(не определено, 10)); // 20

 // ********Следует отметить, что если для параметра явно указано значение null, значение по умолчанию использоваться не будет.

 console.log(сумма(ноль, 10)); // 10

 

(7) Литерал объекта

const name = 'Джейн';

константный возраст = 20

// es6

константный человек = {

  имя,

  возраст

}

//es5

вар человек = {

  имя: имя,

  возраст: возраст

};

 

(7) конструктор класса

ES6 предоставляет нам новый синтаксический сахар для создания объектов — синтаксис классов.

//ES5

// Конструктор

функция Person(имя, возраст) {

  это.имя = имя;

  this.age = возраст;

}

//Метод прототипа

Person.prototype.getName = функция() {

  вернуть это.имя

}

// ES6

класс Человек {

  конструктор(имя, возраст) { // конструктор

    это.имя = имя;

    this.age = возраст;

  }

  getName() { // Метод прототипа

    вернуть это.имя

  }

}

 расширяет наследование

класс Человек {

  конструктор(имя, возраст) {

    это.имя = имя;

    this.age = возраст;

  }

  getName() {

    вернуть это.имя

  }

}

// Класс Student наследует класс Person

класс Student расширяет Person {

  конструктор(имя, возраст, пол, классы) {

    super(name, age); // Объявляем наследование атрибутов от родительского класса; эквивалентно получению указателя this родительского класса

    this.gender = гендер; // Собственный приватный атрибут

    this.classes =classes; // Собственные частные свойства 

  }

  getGender() { // Собственный приватный метод

    верните этот.пол;

  }

}

Supongo que te gusta

Origin blog.csdn.net/weixin_44821114/article/details/133438680
Recomendado
Clasificación