JAVASCRIPT 转换字符串杂记

  Number()遇到null会转换为0,遇到underfind会转换为NaN。

  一般整数用parseInt()方法,遇到空会转换成NaN。(注意差别)该方法可设置第二个参数 parseInt(“要转换字符串”,几进制)。遇到小数点会停止解析,后面忽略。

  parseFloat()也是从第一个字符开始解析,直到末尾或者遇见一个无效的浮点数字字符(第二个小数点)为止。十六进制字符串始终被解释为0,只解析十进制,没有第二个参数。


  toString()方法可以直接调用不需要输入参数,在调用数值的toString()方法时,可以传递一个参数,输出值的基数,二进制到十六进制都可以,默认情况下是十进制。


  --和++ 

  当操作符在被操作值之前,执行前置递增和递减操作时,变量的值都是在语句被求职以前改变的。

  后置递增和递减操作是是在你包含他们的语句被求值之后才执行的。  


  位操作符(这玩意有啥用?)、

  将字符串变成32位二进制码,从右向左方向,第三十二位表示为正负号。理论上无符号就是正整数,切无符号第32位可以表示数字而非符号,理论上数值更大。

  求负数的绝对值的二进制码,求二进制反码,得到的二进制反码加一。

  NaN和Infinity都会被当成0来处理。

  按位非(NOT)~表示。操作本质是操作输的负值减一。

  按位与(AND)&表示。只有在两个对位数值都是1 时才会返回1,任何一个是0结果都是0。

  按位或(OR)|表示。对位数值有一个是1就会返回1。

  按位异或(XOR)^表示。对位数值只有一个是1时才会返回1.

  左移 <<表示。原数值的的右侧多出五个空位。

  有符号右移>>表示(保留正负号标记,从第31位开始),原数值的左侧多出五个空位。

  无符号右移>>>表示。对于整数来说 无符号和有符号一样,但是对于负数来说情况不同。首先无符号右移是以0来填充空位。而不像有符号右移那样以符号来填充。其次无符号右移操作会把负数的二进制码当成正数的二进制码。而且由于负数以其绝对值的二进制补码形式表示,因此就会导致无符号右移后的结果非常大。


  逻辑非(!)逻辑非操作符首先会讲他的操作数转换为一个布尔值,然后对其求反。

  逻辑与(&&)属于短路操作,即第一个操作数能决定结果,那么就不会再对第二个操作数求值。如果第一个操作数是false则无论第二个操作数是什么值,结果都不在可能是true了。  

  逻辑或(||)属于短路操作符,第一个操作的求值结果为true,就不会对第二个操作数求值了。(可以避免变量赋值null或者underfind)


  乘性操作符

  乘法,没啥好说的。

  除法,零被零除结果是NaN。只要是和Infinity(无论正负)有关的,结果都是Infinity正负看操作符。

  求模(就是取余数)%:

  • 如果被除数是无穷大值而除数是有限大的数值,则结果都是NaN
  • 如果被除数是有限大的数值而除数是零,则结果是NaN
  • 如果是Infinity被Infinity除则结果是NaN
  • 如果被除数是有限大的数值而除数是无穷大的数值,则结果是被除数    

(神马?忘记了被除数和除数的关系了?)看这里:

首先你要搞清楚,“除”和“除以”的概念。比如:十四除以二,列出的式子是“14÷2”;而十四除二,列出的式子是”2÷14“,”除“和”除以“的概念是不同的。
所以前面的数(14)就是被后面的数(2)除,叫作”被除数“。(列出式子就是”14÷2“)。 ”被除数“就是被”除数“除。

14÷2,读作:”14被2除“或”14除以2“。

在此之前,我完全想不到加减乘除这么多道道。(想象一个表情)


  加性操作符,可以使用括号告诉解析器先计算其结果。十分好用。特别是三个字符串相加的时候可以先把两个都是数字的字符串相加,有限运算。

  所有的运算,在碰到操作数是字符串、布尔值、null或者undefined都会在后台调用Number()函数。更多体现在“ ” null值为空的时候(0)。

  关系操作符,在比较字符串时,实际比较的是两个字符串中对应位置的每个字符的字符编码值。  -----大写字母的字符编码全部小于小写字母的字符编码。 因此,要按字母排序比较必须要把同时转换大小写。 当一个字符串内是数字时,与另一个数字比较会,会将字符串转换成数值,然后再比较大小。

  var result = “23” <“3”//true 因为“2”的编码是50,而“3”的编码是51.


  相等和不相等:null和undefined是相等的。null和undefined不能转为成其他值。如果一个是NaN则相等为false,如果两个都是NaN相等还是flase。一个是对象会调用valueOf()方法。 null==0 //false


  if、do-while、while 、for、for-in、break:立即退出循环,continue:退出当前这次循环,继续下一次循环直到结束、label可以再代码中添加标签,以便将来使用。

  类似于  label:for(){ break label;//返回到哪一个标签}、with(expression){ statement},就是简化多次编写同一个对象的工作,不推荐使用,严格模式下不允许使用。

  switch 比较好用。

原文地址:https://www.cnblogs.com/bengbengbengbengbeng/p/7103420.html