Uso de ?. e ?? em JavaScript

1.?. (operador de cadeia opcional)

Em JavaScript, "?." é um novo operador chamado "Encadeamento Opcional". Permite-nos evitar erros ao aceder a uma propriedade que pode ser nula ou indefinida ou ao chamar um método que pode não existir.
Use o ?.operator para acessar com segurança as propriedades e métodos de um objeto sem causar um erro e fazer com que o programa interrompa a execução. Quando a propriedade ou método do objeto não existe, a expressão retorna indefinido em vez de lançar uma exceção TypeError.

1.1 Acessar propriedades do objeto

	const person = {
    
    
	  name: 'John',
	  address: {
    
    
	    city: 'New York'
	  }
	};

	console.log(person.address?.city); // 输出:'New York'
	
	// 输出:undefined,因为person对象没有age属性
	console.log(person.age?.toString()); 

1.2 Chamando métodos de objeto

	const calculator = {
    
    
	  add: function(a, b) {
    
    
	    return a + b;
	  }
	};
	
	console.log(calculator.add?.(2, 3)); // 输出:5
	
	// 输出:undefined,因为calculator对象没有subtract方法
	console.log(calculator.subtract?.(5, 2)); 

1.3 Uso da cadeia?.

	const user = {
    
    
	  profile: {
    
    
	    name: 'Alice',
	    email: '[email protected]'
	  }
	};
	
	console.log(user?.profile?.name); // 输出:'Alice'
	
	// 输出:undefined,因为user对象没有address属性
	console.log(user?.address?.city); 

Precauções:

  • Ao usar o operador ?., se a propriedade ou método de destino existir e puder ser chamado, eles serão executados normalmente.
  • Se o destino for nulo ou indefinido, a expressão retornará indefinido imediatamente e nenhuma outra tentativa será feita para acessar propriedades ou métodos subsequentes.
  • O operador não pode ser usado com [] (colchetes). Por exemplo: obj?.[index] é uma sintaxe inválida.

2. ?? (operador de coalescência de valor nulo)

Em JavaScript, "??" é o uso do operador de coalescência de valor nulo. É usado para determinar se uma expressão é nula ou indefinida e retorna um valor padrão.

	const name = null; 
	/*
	  使用??运算符来判断name的值是否为空,如果为空,则赋予默认值"Unknown"
	*/
	const displayName = name ??  "Unknown"; 
	
	console.log(displayName); // 输出: Unknown

	/*
	  经常在表格或者数据渲染时可以用到,当表格数据为空时,直接显示 - 
	  const data = null?? '-'
	  
	*/

Acho que você gosta

Origin blog.csdn.net/weixin_56733569/article/details/132021969
Recomendado
Clasificación