JavaScriptの自動変換
2569 ワード
エンコードテストの問題を解くとき、私の解答と他の開発者の解答を比較するときにこれらのコードを見ました.
元々ラーメンnには数字型のデータが含まれていたため、a,bはString型であったため、以下のような結果になる.
しかし、低コードを作成した賢明な開発者が望む値を順調に実現したのは、どのように可能なのだろうか.
これはjavascriptの自動変換のおかげです.
JavaScriptでは、関数と演算子に渡される値は、通常、適切なデータ型に自動的に変換されます.
したがって、
つまり、
他にもブール型に変換する方法があり、
数字0、空文字列、
すでに習った内容ですが、久しぶりのおめでたなので書いてみました.
以上
コンテンツソース:https://ko.javascript.info/type-conversions
サムネイルソース:https://velog.io/@yejinh/Javascript-%ED%98%95%EB%B3%80%ED%99%98
return !(n % (n + "").split("").reduce((a, b) => +b + +a ));
ここで注意すべき部分は(n + "")
、+b + +a
です.元々ラーメンnには数字型のデータが含まれていたため、a,bはString型であったため、以下のような結果になる.
const n = 123;
const a = "1";
const b = "2";
console.log(n.split("")); // TypeError
console.log(b + a); // "21"
split
は、番号付けタイプでは使用できないため、タイプエラーが発生します.b + a
は、私たちが望む値3ではなく、"21"
を出力します.しかし、低コードを作成した賢明な開発者が望む値を順調に実現したのは、どのように可能なのだろうか.
これはjavascriptの自動変換のおかげです.
JavaScriptでは、関数と演算子に渡される値は、通常、適切なデータ型に自動的に変換されます.
したがって、
(n + "")
から番号付けタイプn
へとStringタイプに移行する.つまり、
""
からStringタイプの+b + +a
にプラス記号(+)を付けると、数字タイプになります.他にもブール型に変換する方法があり、
数字0、空文字列、
a, b
、null
、undefined
など「空」を直感的に表す値はNaN
とされ、残りの値はfalse
とされる.すでに習った内容ですが、久しぶりのおめでたなので書いてみました.
以上
コンテンツソース:https://ko.javascript.info/type-conversions
サムネイルソース:https://velog.io/@yejinh/Javascript-%ED%98%95%EB%B3%80%ED%99%98
Reference
この問題について(JavaScriptの自動変換), 我々は、より多くの情報をここで見つけました https://velog.io/@heejeyang/자바스크립트의-자동형변환テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol