Нужна ли нулевая проверка перед вызовом instanceof?

Вот что я сделал

//Author James Harrington 2014
function base64(file, callback){
  var coolFile = {};
  function readerOnload(e){
    var base64 = btoa(e.target.result);
    coolFile.base64 = base64;
    callback(coolFile)
  };

  var reader = new FileReader();
  reader.onload = readerOnload;

  var file = file[0].files[0];
  coolFile.filetype = file.type;
  coolFile.size = file.size;
  coolFile.filename = file.name;
  reader.readAsBinaryString(file);
}

И вот как вы его используете

base64( $('input[type="file"]'), function(data){
  console.log(data.base64)
})
1230
задан Josh Caswell 3 December 2017 в 14:37
поделиться

3 ответа

Нет, проверка на null не требуется перед использованием instanceof.

Выражение x instanceof SomeClass равно false , если x равно null .

Из Спецификации языка Java, раздел 15.20.2, «Оператор сравнения типов instanceof» :

«Во время выполнения результат instanceof оператор истина , если значение RelationalExpression равно not null и ссылка может быть приведение к ReferenceType без возникновения исключения ClassCastException . В противном случае результат будет ложным . "

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

1758
ответ дан 19 December 2019 в 20:14
поделиться

Нет, это не так. instanceof вернет false , если его первый операнд null .

24
ответ дан 19 December 2019 в 20:14
поделиться

Использование нулевой ссылки в качестве первого операнда в instanceof возвращает false.

257
ответ дан 19 December 2019 в 20:14
поделиться
Другие вопросы по тегам:

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