JavaScriptã«ããã(å¤ãª)æ°å¤ã¨æååã®ç¸äºå¤æã®æ¹æ³ã®ã¾ã¨ã。
使ãå¤ããããã®ã°ãããªã®ã§、ããªãæ¢åº。
åºæ¬ã®æ¹æ³ã ã使ã£ãã»ãã、å®å ¨ãã¤ç¾ããã³ã¼ããæ¸ããã®ã§ããªãã¢æ±ãã§。
ä¸æ©ééãã¨å°æ°ã®èª¤å·®ãããªã¼ãã¼ããã¼ã«ã¯ã¾ã£ã¦ãã¾ã、諸åã®å。
æè¦çã«ã¯"åé ã®-nãn*-1ãè¡ã"ã®ã§"åé ã®+nã¯n*1ãè¡ã"ã¨èããã¨ãããããã。
ã¤ã¾ã、
ãã ã、--strã®ããã«æ¸ãã¨ãã¯ãªã¡ã³ãã«ãªãã®ã§æ³¨æ。
ã¾ã、æååãæ´æ°ã«ãããæã¯ä»¥ä¸ã®ãããªæ¹æ³ãå¯è½。
æååãè¦æ±ããé ã¯æååã¨ãã¦æ±ããããã¨ãå©ç¨ãã。
é«éã§ãããã¨ã¯ãããã、ããããã£ã¸ã®ã¢ã¯ã»ã¹(ãããæ¼ç®åã¯é ã)ãé¢æ°ãå¼ã¶ã³ã¹ããªã©ãªã©ã絡ãã§ãããã。
æ°å¤æ¼ç®ã¾ãã(Math.floorãªã©)ã¯ãããæ¼ç®ãããªãå¹ãã¦ããã®ã§、æéçã«ã·ãã¢ãªå ´åã¯æ´»ç¨ã§ãããã¨。
ãã®ãããã®æ¤è¨¼ã¯é©å½ã«æ¤ç´¢ããã°ãã³ããã¼ã¯ãããããããã¨æãã®ã§å²æ。
ããããã¡ãã£ã¨ããé¨åã§ã®ããã©ã¼ãã³ã¹ã®éãã¯、JSã¨ã³ã¸ã³ã®é²åãä½ã¨ããã¦ããããã¨ãæå¾ ãã¦ããã ãã©、æå¤ã«ãã¶ã¨ã……。
使ãå¤ããããã®ã°ãããªã®ã§、ããªãæ¢åº。
åºæ¬ã®æ¹æ³ã ã使ã£ãã»ãã、å®å ¨ãã¤ç¾ããã³ã¼ããæ¸ããã®ã§ããªãã¢æ±ãã§。
æ°å¤→æ´æ°ç·¨
ãããæ¼ç®ã¯ç¬¦å·ä»ã32bitæ´æ°ã¨ãã¦æ±ããããã¨ãå©ç¨ãããã¯ããã¯。ä¸æ©ééãã¨å°æ°ã®èª¤å·®ãããªã¼ãã¼ããã¼ã«ã¯ã¾ã£ã¦ãã¾ã、諸åã®å。
//åºæ¬ Math.floor(n); //-1ã¨AND n&-1; -1&n; //0ã¨OR n|0; 0|n; //0ã¨XOR n^0; 0^n; //0åã·ãã n>>0; n<<0; //2åè£æ°ãåã(=ãã¨ã«æ»ãã®ã§æ´æ°åã®å¹æã®ã¿æ®ã) ~~n;
æåå→æ°å¤ç·¨
ç®è¡æ¼ç®ãè¡ã、æ¼ç®åã®åå¾ã®é ãæ°å¤ã§ããã¨ããä»®å®ããæ°å¤åãããã¯ããã¯。//åºæ¬ Number(str); parseFloat(str); //0ãå¼ã str - 0; //足ãã¨æååã®é£çµã¨ãªã£ã¦ãã¾ãããã§ããªã! 0 + str;//0 + "1" == "01" str + 0;//"1" + 0 == "10" //1ã§å²ã str / 1; //1ãããã 1 * str; str * 1; //æ£ã®æ°ã¨ã¿ãªã(ããã®çç±ã¯å¾è¿°) +str; //ç¡é大ã®å°ä½(å²ã£ãä½ã)。n/ç¡é大ã®åã¯0ã§、ä½ããnã«ãªããã¨ãå©ç¨ //str / 1ã®ã»ããæã£åãæ©ãã®ã§ããã¾ãæå³ã¯ãªã str % Number.POSITIVE_INFINITY; str % (1 / 0);//0ã§å²ãã¨Infinityã«ãªããã+strãåºæ¥ãçç±ã¯、ECMA-262 3rdã®11.4.6(åé ã®+ã¯é ãæ°å¤åãã)ããããã。
æè¦çã«ã¯"åé ã®-nãn*-1ãè¡ã"ã®ã§"åé ã®+nã¯n*1ãè¡ã"ã¨èããã¨ãããããã。
ã¤ã¾ã、
//2åè² ã®æ°ã¨ã¿ãªã(2å符å·ãå転。ã¤ã¾ãstr*-1*-1 = str*1) -(-str);ãããªç¡é§ãªæ¹æ³ãä¸å¿å¯è½。
ãã ã、--strã®ããã«æ¸ãã¨ãã¯ãªã¡ã³ãã«ãªãã®ã§æ³¨æ。
ã¾ã、æååãæ´æ°ã«ãããæã¯ä»¥ä¸ã®ãããªæ¹æ³ãå¯è½。
//åºæ¬ parseInt(str, 10); //-1ã¨AND str&-1; -1&str; //0ã¨OR str|0; 0|str; //0ã¨XOR str^0; 0^str; //0åã·ãã str>>0; str<<0; //2åè£æ°ãåã ~~str;
æ°å¤→æååç·¨
æ°å¤åã«ç®è¡æ¼ç®åãç¨ããã¨ãã®éã®èãã§å¯è½。æååãè¦æ±ããé ã¯æååã¨ãã¦æ±ããããã¨ãå©ç¨ãã。
//åºæ¬ String(n); //åé²æ°å(10ã¯çç¥å¯è½) (n).toString(10); //éããªãåå¨æã®èãåãã®1(å¼æ°çç¥ã§n.toString()ã¨åç) (n).toPrecision(); //éããªãåå¨æã®èãåãã®2(å¼æ°çç¥ã§å°æ°ç¬¬ä¸ãåæ¨äºå ¥ããæååã«ãªã) (n).toFixed(); //""(é·ã0ã®æåå)ã¨é£çµãã("01"+2ã"012"ã«ãªãåç) "" + n; n + "";
ã©ãã§ããããã¾ã
å°æ°ç¬¬ä¸ä½ã§åæ¨äºå ¥ãã¦ã¿ã。//åºæ¬ Math.round(1.5);//2 Math.round(1.4);//1 //åæ¨äºå ¥ã«ãªãä»æ§ããã(ã§ãå ¨æå¹æ¡æ°æå®ãªã®ã§æ±ç¨æ§ããªã) (1.5).toPrecision(1); (1.4).toPrecision(1); //åããåæ¨äºå ¥(ãã£ã¡ã¯å°æ°ç¹ä»¥ä¸ã®æå¹æ¡æ°æå®ãªã®ã§æ±ç¨æ§ããã) (1.5).toFixed(); (1.4).toFixed(); //å¤å ¸çãªææ³(0.5足ãã¦ããæ´æ°å。æ°å¤→æ´æ°ç·¨ã®ä»ã®æ¹æ³ãå¯) (1.5 + 0.5)|0; (1.4 + 0.5)|0;
ã¾ã¨ã
ããããã¨ã«ãªã¹ãªæ¹æ³ã§æååã¨æ°å¤ã¯ç¸äºã«å¤æã§ãã。 主ãªå©ç¹ã¯ä»¥ä¸ã®2ã¤。- ã³ã¼ããçããªã
- é«éã«åä½ãã
é«éã§ãããã¨ã¯ãããã、ããããã£ã¸ã®ã¢ã¯ã»ã¹(ãããæ¼ç®åã¯é ã)ãé¢æ°ãå¼ã¶ã³ã¹ããªã©ãªã©ã絡ãã§ãããã。
æ°å¤æ¼ç®ã¾ãã(Math.floorãªã©)ã¯ãããæ¼ç®ãããªãå¹ãã¦ããã®ã§、æéçã«ã·ãã¢ãªå ´åã¯æ´»ç¨ã§ãããã¨。
ãã®ãããã®æ¤è¨¼ã¯é©å½ã«æ¤ç´¢ããã°ãã³ããã¼ã¯ãããããããã¨æãã®ã§å²æ。
ããããã¡ãã£ã¨ããé¨åã§ã®ããã©ã¼ãã³ã¹ã®éãã¯、JSã¨ã³ã¸ã³ã®é²åãä½ã¨ããã¦ããããã¨ãæå¾ ãã¦ããã ãã©、æå¤ã«ãã¶ã¨ã……。
ã³ã¡ã³ã
ã³ã¡ã³ããæ稿