数据类型转换
强制类型转化
- ParseInt 将数字或者字符转化整形
- Parsefloat 将数字或者字符转化为浮点型 如果转化内容结果是整形 那么结果就是整形 不会是浮点型
- Number(‘内容’)结果只有两种: 一种是 数字类型 一种是NaN 主要内容中有一个不是数字 那么结果就是NaN
- String 将内容转化为字符串类型 :当使用string 转化null undefined 会直接将这个原始的数据类型转化为字符串
- Boolean 把任何内容转化为布尔值 把任何内容转化为true和false
转为布尔值为false的情况 :undefined null false 0 NaN ‘’或者“”“” 空字符串
总结 如果是strin类型g只要不是空字符串 转化出来就是true number类型 只要不是0转化出来就是true object类型 只要不是null 转化出来都是true undefined类型 都会转化为false
隐式类型转化
- 判断里面 结果转化为布尔值
- 具有字符串的加法 两边都要转化为字符串 就是字符串的拼接
- 如果是数字与字符串比较大小 这种情况下 字符串要哦转化为数字
- 减法运算的时候字符串要转化为数字
技巧:快速的实现字符串转化为数字 减0运算
运算符号
算数运算符
加法运算符 数字的加法 字符串的加法
数字的加法就是简单的数字相加 要求 加好两边都是数值类型
字符串的加法是字符串拼接 只要 加号两边有一边是字符串 那么 这个运算就是字符串的拼接 (字符串必须放在引号里 )减法运算符 数字的减法 会进行影视类型的转化 如果减号两边 有一边不是数字 那么会自动转化为数字类型
乘法(*)与除法(/) 就是简单的数字运算
Js里面除法运算的除数是可以为0的 结果为无穷 infinity取余(%) 余数运算 就是除法运算在得到结果为整数的情况下 被除数剩下的值
余数 5%2 = 1 10%3 = 1
取余运算符号只与被除数有关 被除数是什么符号 余数就是什么符号
绝对值 某一个数字的正数值 正数的绝对值就是本身 负数的绝对值是相反数 0的绝对值 就是0Math.abs()获取绝对值
Math.pow()次方运算
Math.rando()随机数
虽然浮点数也能够进行取余运算 极度不精确
自增与自减运算
- i++ 对i加一然后结果赋值给I 和i=i+1一样
- i- 同上
++I单独使用同上
--I 单独使用同上
区别
如果自增自减运算参与其他运算 那么后++要先参加运算然后再自增或自减 前加加是先自增或自减 然后再参与运算
- 乘方运算 **
3**2=9
赋值
Var a = 1
A = a+2 ==a+=2
+=
-=
*=
/=
%=
比较(关系)运算符
< > >= <=
== 判断是否相同
=== 判断值是否相同
!= 判断是否 不同
!== 判断不全等
- 这些比较运算符 一般是用在需要判断的地方 比如if while 等小括号里面 返回值一定是一个布尔值
如果是数字与字符串进行比较 那么先比较第一个字符 第一个字符打的字符串大 第一个字符相同再比较第二个字符
字符大小是按照Unicode编码确定的
Unicode编码
NaN与任何数比较都是false
逻辑运算符
&&与 符号两边的条件同时符合 才会返回true
||或 符号两边 只要有一边 符合条件就会返回true
!非 取反 true转为false false转为true
短路运算
当逻辑判断操作 前面的操作已经得出结果的时候 后面的操作就不再执行 具体指或操作的第一个判断返回true 与操作的第一个判断返回false
三元运算符
三元 三个操作数
自增 自减 一元操作符 i++
== > 二元操作符 a>b a==b
? :
条件?操作1 :操作2
If(条件){操作1} else{操作2}
Innertext
获取标签里面的内容 不获取标签
<SPAN>123</SPAN>
innerHTML <span>123</span>
innertext 123
eval 运行一个字符串表达式
能够把一个字符串当做表达式 来进行运算
程序的三大流程
- 顺序结构
If - 循环结构
- 选择结构(分支结构)
流程图
开始和结束 圆角矩形 程序总是从开始作为入口从结束作为出口
过程 每一个步骤都是一个过程 过程是使用矩形来表示的 过程只能有一个入口一个出口
判断 里面是一个条件判断 用 菱形来表示 一个入口多个出口
If结构
-
单句if
- If(条件)一句代码;
如果符合条件的结果语句只有一条 那么if后面的大括号可以省略
等价于
If(判断条件){
一句代码 ;
}
虽然这个很简洁但是不建议这样使用 即使只有一句代码也要加上大括号
- If(条件)一句代码;
-
一般if
- If(条件){
一组语句;
}
- If(条件){
-
双分支if
- If(条件){
一组语句
}else{
一组语句
}
这个语句相对来说比较麻烦 如果语句比较少的时候可以使用 如果语句比较多 那么转化为单分支if(一般 if)
If(a==1){
}
If(!a==1){}
- If(条件){
多分支结构if
If(判断){
}else if(判断){}
Else if{}
Else{}
Switch结构
不确定具体值的用if结构
确定具体值的并且值的个数是有限个(数量不能太多) 的时候就用switch
Switch(判断的值){
Case 第一个值:
语句;
Break;
Case 第二个值:
语句;
Break;
Default:
语句;
Break;
}
Break 是为了跳出一个代码块 如果没有break 那么switch case后面代码会继续往下执行 下面的case判断不起作用
For循环结构
For(初始化;判断条件;改变循环条件){
}
While循环
初始化
While(判断条件){
改变循环条件
}
Do while
Do{、
}while();
区别 while循环县判断在执行 不符合条件的一次都不运行
Do---while 先执行 然后在判断 不符合条件的至少执行一次
Break 与continue
Break 跳出代码块
Continue 继续执行 但结束本次
Label语法 控制break和continue
一般不使用 但是可能遇到
label_name
For(){
Break name
Continue name
}