1. JavaScript では、オブジェクト属性の後に「?」を追加すると、その属性がオプションであることを示します。オブジェクトにオプションの属性がある場合、その属性を使用するときにその属性が存在するかどうかを確認する必要がなく、null ポインター例外の発生が回避されます。
展開: ボイド ポインタ {
NULL ポインタは、メモリに格納されている有効なアドレスがないことへのポインタ、または値が NULL または未定義である初期化されていない変数へのポインタです。プログラムが null ポインターを使用しようとすると、ポインターが有効なメモリ領域を指していないため、エラーが発生します。
}
展開: null ポインタ例外 {
NULL ポインター例外は、プログラムが NULL ポインターを使用しようとしたときに発生する実行時エラーです。Null ポインター例外は、プログラマがポインターをチェックしなかったり、初期化されていないポインターを使用しようとしたり、解放されたポインターを使用しようとしたり、NULL ポインターを使用しようとしたりするなど、ポインターを適切に初期化しなかった場合によく発生します。これらの操作によりヌル ポインター例外が発生し、プログラムがクラッシュします。
}
2、例:
const person = {
name: "Alice",
age: 25
};
このオブジェクトの性別プロパティにアクセスしようとしたが、そのプロパティが存在しない場合は、TypeError 例外が発生します。
console.log(person.gender); // TypeError: Cannot read property 'gender' of undefined
ただし、性別属性をオプションとしてマークすると、この例外はスローされません。
const person = {
name: "Alice",
age: 25,
gender?: "Female" // 可选属性
};
console.log(person.gender); //输出 undefined,而非错误
TypeScript では、この構文を使用して型のオプションのプロパティを定義することもできます。