JavaScript基本数据类型与运算符归纳总结

来源:互联网 发布:宋慧乔长相 知乎 编辑:程序博客网 时间:2024/05/29 06:49

  • 写在前面的话
  • 8进制16进制10进制
  • Number类型数据
  • Boolean类型
  • string类型
  • 类型转换
  • 运算符
    • -
    • 取余 取模操作整数
  • 自增和自减
  • 复合赋值运算
  • 比较运算符
  • 逻辑运算符
  • 三元运算符
  • typeof

写在前面的话

  • 本文主要简单归纳了一些JavaScript的基本数据类型以及运算符的语法规则等,本文只是简单归纳总结,如有不足,还请包涵。如有疑问,请留言交流,谢谢!

8进制、16进制、10进制

  • 如果8进制中的数出现了8或9,则直接忽略前面的0,把这个数当成10进制处理

Number类型数据

  • 存储的最大值 Number.MAX_VALUE
  • 存储的最小值Number.MIN_VALUE
  • 如果一个数和自己都不相等,则这个数字是NaN。
  • var v = isNaN(“58”),var v = isNaN(“NULL”),返回false,先转化成数字。var v = isNaN(“undefined”)返回true。

Boolean类型

  • boolean有两个最原生的值:true 、 false
  • 别的任何数据类型,都可以转成boolean值。

string类型

  • 1、写字符串字面量既可以用”“也可以用”
  • 2、string是不可变的
  • 3、\ 这是一个转义字符 \n 换行 \t 制表符(tab) \r\n 回车(Windows下) \反斜杠

类型转换

  • 强制转换:

    • 1、把其他类型转换成Number.
      a: 使用转换函数:可以把任何的类型转换成Number()—-自动类型转换使用的就是转型函数

      • 总结:null —> 0
        undefined —> NaN
        false —> 0
        true —>1
        “” —>0
        如果普通的字符串按照字面值进行转,如果全部都是数字,则转化成number,否则NaN

        b: 使用内置函数:parseInt(字符串,[进制]),只能把字符串转化成Number中的整数

      • 1、在转换的时候,会忽略首尾的空白字符。
      • 2、还可以接受第二个参数,表示前面的字符串中的数字的进制。
      • 3、如果不传入第二个参数,则当成10进制的数来处理。

        c: 使用内置:parseFloat(字符串):转换成浮点数;

    • 2、把其他类型转换成Boolean

      • 使用转换函数:Boolean(数据) 转成true或者false
    • NaN —> false
      undefined —> false
      null —> false
      “” —> false
      0 —> false
      其余全部都是true

    • 3、把其他类型转换成字符串:String()

      • 其他类型,怎么写就相当于直接加了一堆双引号 null —> “null” String(0x100)//输出256
      • 超级简洁的转换成字符串的方法:任何数据 + “”

  • 自动类型转换:
    • 如果一个地方需要boolean,这个时候你传入了一个数字,那么js会自动把这个数字转换成boolean值
    • 注意:自动类型转换的时候统统是转换函数
    • +:运算符重载 ,如果+ 的两端有一个是字符串,则按照字符串的连接来处理。

运算符

+

  • 1、普通的算数运算:如果没有字符串参与则就是普通的算数运算符。
    • 如果有NaN参与运算,则结果还是NaN。
    • 如果两个infinity或两个-infinity,结果还是infinity或-infinity
    • 如果是一个infinity和一个-infinity,结果是NaN
  • 2、如果有字符串参与运算:按照字符串连接进行计算。

-

  • 只有算数运算。两个数相减,一定都会先转换成Number再去相减。
  • 如果有NaN参与运算,则结果还是NaN。

*

  • 只有算数运算:数学上的*

/

  • 只有算数运算:数学的/
  • Infinity / infinity = NaN

%取余 取模:操作整数

  • 余数的符号和第一个数一致。
  • infinity % infinity = NaN

自增和自减

  • n++;
  • n的值和n++表达式的值,
  • 注意:n的值一定是自增之后的值,n++表达式的值是n自增之前的值。
  • ++n;
  • 表达式的值就是n自增之后的值
  • –n和n–与++的含义相同

复合赋值运算

  • 仅仅是写法的简化

比较运算符

  • == 需要进行类型转换
  • 判断是否相等,如果相等则是true,否则是 false
  • 注意:如果有一个是Number,则自动的把类型都转换成Number之后,再判断是否相等。 (现在不考虑对象)
  • 如果都是字符串,则比较字符串的内容是否完全相等。


  • != 判断不等

  • === 全恒等:在实际使用最多

  • 只有两个值的类型和内容都相等,才是true。


  • !== 判断不恒等

  • 比较浮点数的时候,很难得到一个想要的结果。

alert((0.3 - 0.2) == 0.1); //false  

逻辑运算符

  • ! 非

    • true变false,false变true
    • !可以操作任何类型,操作之前都会把数据先用转换函数转换成boolean之后再进行!,所以说,!的结果一定是boolean。
    • 把一个数据转换成Boolean最优雅的方式 !!”a”.
  • && 短路与

  • 只要有一个是false,结果就是false。
  • 短路:如果第一个是false,则不会去计算第二个表达式。
  • false && false -> false

  • || 短路或

  • 只要有一个是true,结果就是true。
  • 短路:如果第一个是true,则不会去计算第二个表达式。


  • && 和 ||

  • 逻辑运算符不仅仅可以操作true和false,也可以操作任何的数据类型。而且结果也可以是任何的数据类型。

  • &&:如果第一个是true或者第一个经过转换函数后是true,则结果就是第二个数。
    如果第一个是false或者第一个经过转换函数后是false,则结果就是第一个数。

  • ||:如果第一个是true,则结果就是第一个数;如果第一个数是false,结果就是第二个数。

  • 高度总结:如果第一个能够决定最终的结果,则返回第一个,否则返回第二个。


三元运算符

  • 需要三个数参与运算
  • 表达式0 ? 表达式1 : 表达式2
  • 表达式0的结果可以是任何的数据类型。如果是boolean值则直接使用,否则转换boolean值再用。

typeof

alert(typeof b);//undefinedalert(b);//报错
0 0
原创粉丝点击