1.总结
1 ==和===的区别
==在进行比较的时候 会进行隐式转换 尽量都会转成number类型
===在进行比较的时候 不会隐式转换 ===两边必须一模一样才可以
2-while和do-while的区别?
- while:先判断后执行 最开始不成立 一次也不执行
- do-while:先执行后判断 最开始不成立 也会执行一次
2.数据类型转换
-
数据类型转换分为两种
-
显式转换(强制转换):通过js的方法,转换成自己想要的数据类型
-
隐式转换:在js进行某些运算的时候 自动完成转换数据类型
-
2.1 强制转换
2.1.1 强制转换为number
-
Number(要转换的数据)
-
作用:将数据转换成number类型,如果转换不了则是返回NaN // 总结:Number可以转换的有:string类型(纯数字,""-0 " "-0) boolean(true-1 false-0) null(0) </script>
-
-
parseInt(要转换的数据)
-
==主要是针对字符串数据操作==
-
作用:将数据转换成number类型,从左往右转换,遇到不能转换的或者是末尾结束,如果一开始都不能转换则是NaN 并且取整(舍弃小数)
-
-
parseFloat(要转换的数据)
-
==主要针对字符串数据操作==
-
作用:将数据转换成number类型,从左往右转换,遇到不能转换的或者是末尾结束,如果一开始都不能转换则是NaN 保留小数
-
2.1.2 强制转换为string
-
String(要转换的数据)
作用:将数据强制转换为string类型 直接在数据外面加"" -
要转换的数据.toString(num)
-
num表示转换num进制的字符串 不写默认是10进制
-
2.1.3 强制转换为Boolean
-
Boolean() : 强制转换为Boolean类型 结果为true,false
-
//总结:Boolean结果为false的有:0 null undefined "" NaN </script>
2.2 小方法
2.2.1 toFixed
-
要保留的数据.toFixed(n) 保留n位小数
<script> // toFixed(n) 保留n位小数 给number类型用的 var n1 = 3.1415926; console.log(n1.toFixed(3)); var n2 = "3.1415926"; console.log(n2.toFixed(2));//报错 </script>
2.2.1 isNaN
-
isNaN(检测的数据): 检测数据是不是 不是一个数
-
==判断之前会先用Number方法强制转换 再进行判断
3.运算符与表达式
3.1 运算符和表达式的概念
10 + 20 表达式 10 20 称为操作数 + 运算符
-
运算符: 连接一个以上的操作数中间的符号叫做运算符
算术运算符 + - * / % ++ -- 赋值运算符 = += -= /= %= 逻辑运算符 && || ! 三目运算符 条件 ? true执行的结果 : false执行的结果 比较运算符 > < >= <= == != ===
-
表达式:由操作数和运算符组成的式子就叫表达式
算术表达式 操作数和算术运算符组成 赋值表达式 操作数和赋值运算符组成 逻辑表达式 操作数和逻辑表达式组成 三目表达式 操作数和三目表达式组成 比较表达式 操作数和比较运算符组成
3.2 算术运算符
算术运算符: + - * /取余 % ++ --
-
自加/自减 ++ --
-
// 练习2: var a = 10; var b = ++a + a++ + a++; //b=11+11+12=34 a=13 var c = a++ + ++b + b++;//c=13+35+35=83 b=36 a=14 console.log(a, b, c);//14 36 83 // 练习3 /* --在前 先自减1 然后再运算(打印) --在后 先运算(打印) 再自减1 */ var x = 10; var y = --x + x-- + --x;//y = 9+9+7=25 x=7 var z = y-- + --y + x--;// z = 25+23+7=55 x=6 y=23 console.log(x, y, z);// 6 23 55 </script>
3.3 赋值运算符
= += -= *= /= %=
3.4 比较运算符
> >= < <= != == ===
3.5三目运算符
-
作用:用于判断
-
语法 条件 ? 条件为true的时候执行的代码(==只能写一行代码==) : 条件为false执行的代码