day02——数据类型_运算符

119 阅读2分钟

数据类型

基本数据类型:

number、string、boolean、undefined、null

引用数据类型:

object(object、array、function)

注意:

使用 typeof 方法检测数据类型时,typeof (null) 返回object, typeof (function) 返回function。所以使用typeof无法检测 null、array、object 这三种数据类型的具体类型。

typeof(1);//number
typeof("1");//string
typeof(true);//boolean
typeof(undefined);undefined
typeof(null);//object
typeof(object);//object
typeof(array);//object
typeof(function);//function

运算符

”+“,”-“,”*“,”/“,”%“,”++“,”--“,”**“

算数运算符

减乘除参与运算时按正常数学流程走,加号参与运算时承担一个连接符的作用,如果一个string类型的数字和一个number类型的数字相加,加号不会把string类型的数字转化成number类型的数字参加运算,而是发挥连接符的作用,使两者相连,一个字符串和任意类型数据进行+运算,都是字符串的拼接。

boolean参与计算时 true转换成1,false转换成0

undefined参与运算时 数字与undefined计算的值为undefined,字符串与undefined发生拼接

null参与运算时 数字与null计算时,null的值被当作0,字符串与null发生拼接

自增自减运算符

无论 i++还是 ++i,i的值都会增加1 i++是先使用i的值再+1,++i是先+1再使用i的值

数值运算符

正号、负号运算符可以将其他类型的数据转换成number数据类型(隐式转换)

ES6新增 ** 指数运算符

2**3 == 2^3

具有右结合的特点

2**3**3 ==  2**(3**3)== 54

比较运算符

>、<、<=、>=、==、===、!=、!== (做运算时可以进行隐式转换)

tip: JS中的整数在底层是以浮点数的形式存储的

  1. 如果比较运算符一侧是string一侧是number,会将string的数据类型自动转变为number类型进行比较
  2. 如果比较运算符两侧都是string类型,会按照string的每一位从左到右进行比较,比较的是string的unicode码,一旦得到结果就不继续比较了。
  3. 不论什么编码方式,0-127与ASCII值一样
0-48A-65,   a-97
1-49B-66,   b-98
……..    ……..    …….
9-57,  Z-90,   z-122
因为是双等好就是操作数的对比,他们两的内存空间都没有操作数所以相等,
由于内存空间的地址不同所以他们===是false,
var a = undefined;
var b = null;
console.log(a,typeof(a));//undefined,undefined
console.log(b,typeof(b));//null,object
console.log(a == b);//true