Эй, ребята,

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

Я наткнулся на этот вопрос в твиттере, что побудило меня написать эту статью. Начну с вопроса.

Является ли JavaScript простым, объясните ниже.

let outPut = (‘b’ + ‘a’ + + ‘a’ + ‘a’).toLowerCase();
console.log(outPut);
//"banana"

Как это может быть…

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

Хорошо. приступим.

На первый взгляд мы знаем, что это конкатенация строк, а затем вывод переводится в нижний регистр.

Я дам краткое описание конкатенации в JavaScript с помощью оператора +. Хотя мы рассматриваем это как конкатенацию, я бы рассмотрел это как дополнение. Кроме того, в JavaScript вы добавляете только «числа» и «строки».

По сути, добавление JavaScript состоит из двух этапов.

1) шаг 1

преобразовать все операнды в примитивы.

2) шаг 2

Если какой-либо из операндов является строкой, преобразуйте все операнды в строку и верните объединение результатов.

В противном случае преобразуйте все операнды в числа и верните сумму результатов.

Статья ниже поможет вам лучше разобраться в этой операции. "[статья]"

Нам нужно подумать об ассоциативности оператора «+». Это «слева направо».

И самое главное в этой задаче - это операнды.

Если мы перечислим наши операнды

‘b’
‘a’
+ ‘a’ (What is this ?? )
‘a’

В ПОРЯДКЕ. + ‘a’ - оператор унарного плюса.

Если вкратце говорить об унарном операторе плюса (+), этот оператор стоит перед операндом и пытается преобразовать его в число. Он может преобразовывать все строковые представления чисел, логических значений и null в числа. Число будет включать целые числа, числа с плавающей запятой, шестнадцатеричное, научное представление и бесконечность.

Что наиболее важно, если операнд не может быть преобразован в число, унарный оператор плюс вернет NaN.

Чтобы узнать больше об унарных операторах, полезна эта [статья].

И унарный оператор плюса имеет более высокий приоритет, чем оператор сложения. Таким образом операнд становится «+‘ a ’».

Чтобы узнать больше о приоритете операторов, вы можете прочитать эту [статью] в MDN.

Надеюсь, вы уже получили объяснение. : D

«+‘ a ’» равно NaN, поэтому теперь операнды выглядят примерно так, как показано ниже.

‘b’
‘a’
NaN
‘a’

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

‘b’
‘a’
‘NaN’
‘a’

Теперь добавление этих операндов дает «baNaNa», и когда мы преобразуем его в нижний регистр, он становится «банан».

Это действительно простое объяснение, когда вы знаете все факты.

Надеюсь, вы узнали что-то из этого. : D: D