нулевое значение не оценивается в JavaScript тернарной операции - PullRequest
0 голосов
/ 05 августа 2020

У меня есть игра javascript с этой функцией, которая отображает данные, когда пользователь наводит курсор на определенный элемент.

Вот как это выглядит:

gameRendering: function (game, e) {

    var playerCharacterTitle = game.playerCharacterTitle;

    
    $(user).hover({
        content: '<b>Game Characters</b>'
            + (playerCharacterTitle) !== null ? '<b>PC Name:</b> ' + playerCharacterTitle : ''
    });
    

Когда переменная с именем playerCharacterTitle НЕ имеет значения null, я хочу, чтобы он отображал следующее: «P C Name: {the_name}», а когда имя равно null, я хочу, чтобы он ничего не отображал.

Вот так:

PC Name: Gorak

PC Name: LeMara

Но по какой-то причине он все еще отображает «P C Name:», а затем «null» ... вот так:

PC Name: Gorak

PC Name: null

PC Name: LeMara

PC Name: null

Я не получаю ошибок, просто результаты, которые мне не нравятся.

Что я делаю не так?

Спасибо!

1 Ответ

1 голос
/ 05 августа 2020

Вы забыли поставить скобки (так называемые правила приоритета операторов):

gameRendering: function (game, e) {

    var playerCharacterTitle = game.playerCharacterTitle;

    
    $(user).hover({
        content: '<b>Game Characters</b>'
            + (playerCharacterTitle !== null ? '<b>PC Name:</b> ' + playerCharacterTitle : '')
    });

function gameRendering(game, e) {

    var playerCharacterTitle = game.playerCharacterTitle;

    
    //$(user).hover({
        var content = '<b>Game Characters</b>'
            + (playerCharacterTitle !== null ? '<b>PC Name:</b> ' + playerCharacterTitle : '')
    //});
    console.log(content)
}

gameRendering({playerCharacterTitle: null}, 'a');
gameRendering({playerCharacterTitle: "SomeName"}, 'a');
...