これまでの内容は?xがObjectであるがStringオブジェクトでないかどうかをチェックする方法
const isNotNullObject = function (x) {
return (typeof x === "object" && x !== null);
};
これは、配列とオブジェクトで正常に動作します。しかし、Stringオブジェクトに対しても!
isNotNullObject(String(5))
false
isNotNullObject(new String(5))
true
どのようなタイプの文字列でも欲しいのは偽です。私は呼び出しコードを制御できないことに注意してください。 new
自分自身を削除することはできません。パフォーマンス上の理由からできるだけ同等であるかどうかを確認するだけの新しいStringを作成しないソリューションが必要です。
なぜ 'typeof演算のx == "オブジェクト" && typeof演算のX!= "文字列"'は、以下を参照してください? – ifvictr
@ifvictrはちょうど言った! – Stuart
しかし、文字列オブジェクト*は*オブジェクトです。それらをそのまま扱い、あなたの呼び出し元が文字列を折り返さないことを知っていることを前提とします。 – Bergi