Primeiro, vamos falar sobre a diferença entre nulo e indefinido:
Execute as variáveis declaradas, mas não inicializadas e não declaradas, retornam "indefinidas".
nulo significa um ponteiro de objeto vazio, e a operação do tipo de retornará "objeto".
Geralmente, o valor de uma variável não é explicitamente definido como indefinido, mas nulo pelo contrário, para a variável que está prestes a salvar o objeto, a variável deve ser explicitamente permitida para salvar o valor nulo.
var BJ; Alert (BJ); // "indefinido" bj = null; alerta (typeof bj); // "objeto" alerta (bj == null); // truebj = {}; alert (bj == null); //falsoAs duas funções a seguir me foram dadas pelo irmão sênior Deng, obrigado.
/** Detecte se o objeto é um objeto vazio (sem propriedades legíveis). * O método detecta as propriedades do próprio objeto e as propriedades herdadas do protótipo (para que isso não tenha feito o HASOWNPROPERTY). */função isEmpty (obj) {for (var nome em obj) {return false;} retorna true;};O objeto vazio é mencionado aqui {} ou nulo? Eu escrevi um caso de teste.
var a = {}; a.name = 'realwall'; console.log (isEmpty (a)); //falseconsole.log (isEmpty ({})); //truEconsole.log(isempty(Null)); // true // Observe que não há erro de sintaxe quando o parâmetro é nulo, ou seja, embora você não possa adicionar atributos ao ponteiro nulo nulo, você pode usar a instrução for in?/** para detectar se o objeto é um objeto vazio (não contém nenhum atributo legível). * O método detecta apenas as propriedades do próprio objeto e não detecta propriedades herdadas do protótipo. */função isowempty (obj) {for (var nome em obj) {if (obj.HasownProperty (nome)) {return false;}} retorna true;};A diferença entre {} e nulo:
Essa coisa é muito importante.
var a = {}; var b = null; a.name = 'realwall'; b.name = 'jim'; // Um erro será relatado aqui. B é um ponteiro nulo para uma imagem, e os atributos não podem ser adicionados diretamente como objetos comuns. b = a; B.Name = 'Jim'; // A e B apontam para o mesmo objeto neste momento. a.name, b.name são todos 'jam'