牛客ネットJavascript特別練習問題のまとめ


文字列のつづり合わせ
console.log(1+ +"2"+"2");
console.log("A"- "B"+"2");
console.log("A"- "B"+2);
consolie.log(1++2"+"2"+"2")の最初のプラス記号は、1元のプラス演算子、+"2"が正の整数2になり、前の1+2+"2"が行われるため、結果は32です.
consolone.log("A"-"B"+"2")のマイナス記号の両方の操作数は、まずnumberタイプの値に変更する必要がありますが、AとBはnumberタイプの値に変換され、結果はNANです.したがって、「A」-「B」の値はNANである.そして文字列「2」と結合して、NANになります.
consolie.log("A"-"B"+2)は前の方と同じで、NANにもなりますが、2と整数タイプの加算を行います.NANは数値とどの操作もNANなので、結果はやはりNANです.
js定義の結果
<script>
    function test(){
        var a=b=1;
    }();
    console.log(a);
    console.log(b);
script>
最終コンソール印刷の結果は、referenceerror 5です.
var a=b=1という意味は、まず関数の内部に局所変数aを定義し、関数の内部と大域範囲に変数bの定義がないため、大域変数として定義されていると宣言しますが、このときはaとbの割り当てが行われていますので、aを出力するとエラーが発生します.bはこの時グローバル変数になりました.彼の値は5です.
このコードは書くことができます.
<script>
    var b;
    function test(){
        var a=b;
        b=1;
    }();
    console.log(a);
    console.log(b);
script>
オブジェクトがArayオブジェクトかどうかを正確に判断するにはどうすればいいですか?
オブジェクトのタイプを判断するには、2つの方法がよく使われます.typeofとinstance of、typofは参照タイプのデータに対してすべてobjectに戻ります.instance ofは、オブジェクトが所与のタイプであるかどうかを正確に判断することができます.例えば、obj instance of Arayは、frameオブジェクトをまたいで構築されるシーンでは無効になります.
プロトタイプの原型で判断できます.
Object.prototype.toString.call(arr) === '[object Array]';
具体的な参考文献:http://www.nowamagic.net/librarys/veda/detail/1250