Обнаружение неопределенного свойства объекта

Попробуйте что-нибудь подобное

 chart.yAxis.tickFormat(function(d) {
    // %M - minute as a decimal number [00,59].
    // %L - milliseconds as a decimal number [000, 999].
    return d3.time.format('%M%L')(new Date(d))
});

UPDATE:

// Line Not Tested but valueFormat should do the trick
chart.valueFormat(d3.time.format('%M%L')); 

Посмотрите на this , если вам нужно больше параметров форматирования времени .

Надеюсь, это поможет.

2684
задан Ry- 9 November 2015 в 01:06
поделиться

8 ответов

Использование:

if (typeof something === "undefined") {
    alert("something is undefined");
}

, Если переменная объекта, которые имеют некоторые свойства, можно использовать то же самое как это:

if (typeof my_obj.someproperties === "undefined"){
    console.log('the property is not available...'); // print into console
}
2558
ответ дан Ry- 9 November 2015 в 11:06
поделиться
  • 1
    @Billy ONeal: Если код читает энергозависимые переменные пять времена, переменная должна быть считана пять раз точно. Оператор: " = (b & & volatilevar); " может не быть записан как " = (volatilevar &-!! b); " даже если последняя форма иначе была бы быстрее (так как there' s никакое ветвление), так как последняя форма читает volatilevar, даже когда b является ложью. – supercat 31 August 2010 в 09:36
if (somevariable == undefined) {
  alert('the variable is not defined!');
}

можно также превратить его в функцию, как показано здесь :

function isset(varname){
  return(typeof(window[varname]) != 'undefined');
}
-17
ответ дан tslocum 9 November 2015 в 11:06
поделиться
  • 1
    спасибо, но это doesn' t показывают, как отправить массив байтов – Mark Roberts 21 May 2010 в 11:49

Решение является неправильным. В JavaScript,

null == undefined

возвратит true, потому что они оба являются "литыми" к булевской переменной и являются ложью. Корректный путь состоял бы в том, чтобы проверить

if (something === undefined)

, который является оператором идентификационных данных...

8
ответ дан Peter Mortensen 9 November 2015 в 11:06
поделиться
  • 1
    Возможно, вопрос мало сбивает с толку, возможно, корректный будет извлекать " Присоединенный picture" от ID3v2 наклеивают андроид. id3.org/id3v2.3.0 для большего количества информации о приложенном изображении – Mojo Risin 4 January 2010 в 01:06

В JavaScript существует пустой указатель и существует не определено . У них есть различные значения.

  • неопределенный средства, что значение переменной не было определено; не известно, каково значение.
  • пустой указатель средства, что значение переменной определяется и устанавливается в NULL (не имеет никакого значения).

состояния Marijn Haverbeke, в его бесплатной, книге онлайн" Красноречивый JavaScript" (шахта акцента):

существует также подобное значение, пустой указатель, значение которого является 'этим значением, определяется, но это не имеет значения'. Различие в значении между неопределенным и пустым является главным образом академическим, и обычно не очень интересным. В практических программах, часто необходимо проверить, имеет ли что-то 'значение'. В этих случаях выражение что-то == неопределенный может использоваться, потому что, даже при том, что они не точно то же значение, пустой указатель == неопределенный произведет верный.

Так, я предполагаю лучший способ проверить, было ли что-то не определено, будет:

if (something == undefined)

Hope это помогает!

Редактирование: В ответ на Ваше редактирование, свойства объектов должны работать тот же путь.

var person = {
    name: "John",
    age: 28,
    sex: "male"
};

alert(person.name); // "John"
alert(person.fakeVariable); // undefined
151
ответ дан Pandincus 9 November 2015 в 11:06
поделиться
  • 1
    That' s не совсем, что говорит ссылка. Это говорит they' ре, которое не будет использоваться для проверки аргумента В Открытых методах - это явно дает пример использования их для проверки аргумента В частных. И для того, чтобы сделать предположения о коде этим isn' t очевидный, isn' t, что обычно задание комментариев? Didn' t знают это о C/C++, хотя; я определенно вижу, как включение их через переключатель командной строки является более привлекательным, чем выполнение полного перекомпилировало. – BlairHippo 4 May 2010 в 03:34
function isUnset(inp) {
  return (typeof inp === 'undefined')
}

Возвращает false, если переменная установлена, и true, если не определена.

Then use:

if (isUnset(var)) {
  // initialize variable here
}
4
ответ дан 22 November 2019 в 19:51
поделиться
if ( typeof( something ) == "undefined") 

У меня это сработало, а у других - нет.

43
ответ дан 22 November 2019 в 19:51
поделиться

Я считаю, что в этой теме есть несколько неправильных ответов. Вопреки распространенному мнению, "undefined" - это не ключевое слово в JavaScript, и на самом деле ему может быть присвоено значение.

Правильный код

Наиболее надежный способ выполнить этот тест:

if (typeof myVar === "undefined")

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

Дегенеративный код. НЕ ИСПОЛЬЗУЙТЕ.

var undefined = false;  // Shockingly, this is completely legal!
if (myVar === undefined) {
    alert("You have been misled. Run away!");
}

Кроме того, myVar === undefined приведет к ошибке в ситуации, когда myVar не объявлен.

875
ответ дан 22 November 2019 в 19:51
поделиться

ES2019 представил новую возможность - дополнительное объединение в цепочку , который можно использовать для использования свойства объекта только, когда объект определяется как это:

const userPhone = user?.contactDetails?.phone;

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

Касательно https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining

2
ответ дан 22 November 2019 в 19:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: