いくつかの分野で何人かの開発者を探しているポルトガルの IT 企業があり、好奇心から (ありがたいことに、私はすでに仕事を持っているので) 求人情報をチェックしに行きました。
JS 開発者の投稿をチェックしに行ったとき、彼らは私の注意を引いた JS コードの一部を提供しました。私はしばらく JS を使用してきましたが、時々 JS を使用したプログラミングに戻っていることに気付きましたが、正直なところ、与えられたコードに似たものさえ見たことがありません。
これはコードです:
!(function(x){
'6D 61 6E'.split(' ').forEach(function(a){
x+=String.fromCharCode(parseInt(a,16));
});
return x;
})('');
Chrome の JS コンソールに行ってこれを書きましたが、出力は「false」です。私がそれを正しく理解していれば、「奇妙な」コードであり、ASCII テーブルによると「ma n」を読み取り、parseInt は 16 進数の基数に基づいて整数を返すことになっています。次に、今度は chars の 10 進数値に基づいて、もう一度文字列に変換されます。最後に、戻り値 'x' を「否定」して評価します (私が探していた単語ではありませんが、当時はもっと良い単語を思い出すことができませんでした... 多分評価しますか?)。
では、なぜ出力が false になるのでしょうか。戻り値を評価しない場合、結果は期待どおりの「人間」ですが、この特定のインスタンスで false になる理由がわかりません。
誰か詳しく説明したいですか?