javascript第二天

Js的数据类型及转换方式、运算符

  1. Js的数据类型

(1)     简单类型

①    Number   数字类型

②    String     字符串类型

③    Boolean   布尔类型

④    Undefined  未定义类型

⑤    Null      值为空类型

(2)     复杂类型

①    Array   数组类型

②    Function  函数类型  元素.on事件名 = function(){ xxxx }

③    Object  对象类型

(3)     分类展开

①    Number 数字类型

1)       Js中的数字类型 和 数学中的数字 基本一致 分为两类

  1. 整型   整数  123
  2. 浮点型  小数  123.123

2)       八进制数字 和十六进制数字

  1. 八进制:0nnnn 

a)       如果出现8或比8大的数字  就默认转换为十进制

  1. 十六进制:0xnnnn

a)       使用a-f小写字母 表示10-15的数字

3)       Infinity 无穷大

  1. 任何数除以0 得到
  2. 数字过大,也会直接显示为infinity

4)       NaN

  1. 当js运算出现错误的时候 就会得到NaN(not a number)
  2. NaN依然是数字类型数据

5)       Typeof 用来获取数据类型的方法

  1. 用法:typeof 数据  ---->  得到数据类型

6)       注意:在js中 一般不建议大家使用浮点数进行运算,因为存在bug

②    字符串类型

1)       有引号包裹的内容 都是字符串

  1. “”  “   ”   “123”  “abc”  “true”  “undefined”   “null”

2)       字符串的属性

  1. Length:长度  获取的是字符串的长度  字符串中包含的字符个数

3)       字符串中每一个字符都会对应一个编号,编号从0开始 按照顺序依次向后排,我们称这种编号为 下标/索引

  1. 我们可以通过下标 来获取指定的字符
  2. 写法:字符串[下标]
  3. 注意:这种方式在ie低版本(ie8-)浏览器中不兼容

4)       charAt

  1. 用法:字符串.charAt(下标)  可以获取到对应下标的字符

③    布尔类型

1)       有两个值 true 真   false 假

2)       一般多用于判断 和 比较

④    Undefined  null

1)       Undefined:未定义  变量声明未赋值

2)       Null:值为空  变量声明 但是也赋值了  可是赋的值是一个空值

3)       区别:undefined没有值   null有值,但值为空(空地址,拿着这个地址在堆区中找不到对应的数据)

(4)     复杂数据类型

①    复杂类型 和 简单类型 的区别

1)       简单类型数据 存储在栈区  可以直接在栈区中访问到

2)       复杂类型数据 存储在堆区  需要先在栈区获取地址 之后到堆区访问数据

②    Object 对象类型数据

1)       编写对象

  1. 字面量创建对象
  2. {“属性名1”:属性值,属性名2:属性值,。。。。。。}
  3. 对象也是一个用来存储js数据的容器  通过属性的方式来存储。 对象的属性分两部分  属性名 : 属性值

a)       属性名:字符串    理论上讲必须加引号, 但是实际也可以省略引号  注意语义化

b)       属性值:可以是任意类型的数据

2)       如何操作对象的属性

  1. 获取对象属性值:  对象名.属性名  
  2. 设置对象属性值:  对象名.属性名 = 新属性值

③    Function函数类型数据

1)       编写函数

  1. 函数是用来存储代码的容器
  2. 创建函数的方式:function 函数名(){函数存储的代码}  函数中的代码并不会自动执行
  3. 如果想执行函数中的代码 需要调用函数
  4. 函数调用:函数名();

④    Array数组类型数据

1)       数组的创建方式

  1. [1,“123”,true,undefined,null,{},function a(){},[]]
  2. 数组是一个用来存储数据的容器,可以存储任意类型的数据 任意多个

2)       数组的属性

  1. Length:长度  表示数组中存储的数据个数

3)       数组项:数组中存储的数据被称为数组项

4)       下标/索引:就是数组项的编号  也是从0开始 依次向后排

5)       可以通过下标 获取指定位置的数组项  数组[下标]

  1. Js数据类型转换

(1)     将其他类型数据转换为数字  强制转换

①    Number

1)       用法:Number(要转换的数据)

2)       弊端:将字符串转换为数字的时候 如果字符串中包含数字部分也包含字符部分, 转换结果是NaN

②    parseInt/parseFloat

1)       parseInt:转换机制为 从数据开头一直向结尾转换,遇到转换不了的内容 或 转换到结尾 就停止转换

  1. “123abc”;    “abc123”
  2. 用法:parseInt(要转换的数据)
  3. 用法2:parseInt(要转换的数据,进制)  注意:进制范围为 2-36之间

a)       如果不传进制 默认10进制

  1. 作用:将其他类型的数据转换为整型数字,如果有小数位 则直接舍弃

2)       parseFloat

  1. 和parseInt基本完全一致 只不过 会保留小数位

③    isNaN

1)       作用:判断一个数据 转换为数字之后 是不是NaN  如果是 值为true 否则 值为false

2)       用法:isNaN(要判断的数据)

(2)     将其他类型数据转换为字符串

①    String:String(要转换的数据);

1)       万能转换法  任何数据都可以转换

②    toString:要转换的数据.toString();

1)       Undefined 和 null 都不能使用

(3)     将其他类型数据转换为布尔

①    Boolean:Boolean(要转换的数据);

②    任意复杂类型数据 转换为 布尔值 结果都是true

(4)     隐式类型转换

①    隐式转换为数字 任意数据 *1  /  -0  /  /1

②    隐式转换为字符串 任意数据 + “”

③    隐式转换为布尔  !!任意数据

④    隐式类型转换的性能在所有转换方法中是最好的,因此应该作为首选

  1. Js运算符

(1)     算数运算符

①    + - * / % ++ --

②    + 如果两个加数中 有一个是 字符串 +就会执行字符串的拼接

③    %   数字1  %  数字2  ==> 数字1/数字2的余数

1)       5%3==>2   10%3==>1

④    ++ -- 自加 自减

1)       数字++/--   ++/--数字  表示在原数字的基础上+1或-1

2)       ++/--写在前面  表示先自加/自减 后打印  写后面 先打印 后自加/自减

(2)     赋值运算符

①    =   变量名 = 变量值

②    +=           a+=b   a = a + b

③    -=  *=  /=

(3)     比较运算符

①    > < >= <= 

②    ==判断相等    !=判断不相等

1)       判断相等的时候 只判断值 不判断类型  123==”123”   123==”234”

③    ===判断全等   !==判断不全等

1)       既判断值,也判断类型 如果都相等 就全等 如果有一个不相等就不全等 “123” === 123

(4)     逻辑运算符

①    与运算 &&  操作数1 && 操作数2

1)       如果两个操作数的值都是true,则算式的值也是true

2)       只要有一个操作数是false, 则算式的值也是false

3)       全真才真,有假即假

②    或运算 ||  操作数1||操作数2

1)       如果两个操作数有一个是true 算式的值就是true

2)       如果两个都是false,则算式的值也是false

3)       全假则假,有真即真

③    非运算 !    !操作数

1)       作用是取反 true变false  false变true

(5)     三元运算符

①    判断条件 ? 条件成立时执行的代码 : 条件不成立时执行的代码

 

posted @ 2020-10-09 18:40  默默的1  阅读(83)  评论(0)    收藏  举报