- 数据类型转换
强制类型转换
parseInt:将数字或者字符串转化整形。
parseFloat:将数字或者字符串转化为浮点型。如果转化的内容结果是整形,那么结果就是整形,不会是浮点型。
Number:(”内容”):结果只有两种一种是数字类型,一种是NaN。只要内容中有一个不是数字的字符,那么结果就是NaN。
String:将内容转化为字符串类型。
当使用string转化null,undefined,布尔值的时候会直接将这个原始的数据类型转化为字符串。
Boolean:把内容转化成布尔值。把任何内容转换成true或者false。
转为布尔值为false的情况:
undefined
null
false
0
NaN
‘’ ’’ 空字符串
总结:
string 类型,只要不是空字符串,都会转为true。
number 类型,只要部是0,即使是负数,都会转成true。
object 类型,只要部是null类型,都会转换成true。
undefined类型,都会转换成false。
隐式类型转化:
判断里面:结果转化为布尔值
具有字符串的加法:两边都要转化为字符串。就是字符串的拼接。
数字与字符串比较大小:字符串要转化为数字。
减法运算的时候,字符串要转化为数字。
技巧:快速的实现字符串转化为数字。减0运算.
2.运算符号
2.1算术运算符
加法运算符:数字的加法,字符串的加法。
数字的加法就是简单的数字相加,要求加号两边都是数值类型。
字符的加法是字符串拼接,只要加号两边有一边是字符串,那么这个运算就是字符串的拼接。(字符串必须是放在引号力的)
减法运算符:数字的减法,会进行隐式类型转化,入股偶见好两边有一边部是数字, 那么会自动转化为数字类型。
乘法(*)与除法(/):就是简单的数字运算。
JS里面除法运算的除数是可以为0的。结果是无穷。Infinity
取余:余数运算。就是除法运算在得到结果为整数的情况下,被除数剩下的值。
余数:5 2 2 - - - - 1 5%2=2
10 3 3 - - - - 1 10%3=1
取余运算的符号只与被除数有关,被除数是什么符号,余数就是什么符号。
绝对值:某一个数字的正数值。
正数的绝对值就是本身,负数的绝对值是相反数,0的绝对值就是0.
Math . abs () 获取绝对值。
Math . pow () 次方运算。
Math . random () 随机数
虽然浮点数也能够进行取余运算,但是极度部精确。建议不要使用。
案例:用JS实现表格的各行变色。
自增与自减运算:
i++ :对i加一然后结果赋值给i。和i = i + 1 操作一样。
i - - :对i 减一然后结果赋值给i。和i = i - - 1 操作一样。
++i :对i加一然后结果赋值给i。和i = i + 1 操作一样。
-
- i :对i减一然后结果赋值给i。和i = i - 1 操作一样。
区别:
如果自增自建运算参与其他运算,那么后加加要先参加运算,然后再自增或者 自减。前加加先自增或者自减,然后再参与运算。
乘方运算(**):8^2;
console.log( 3**2);
赋值运算:=
var = 1;
a = a+2; ===> a +=2;
+= -= *= /= %=
2.2 比较运算符
< > >= <=
== 判断值是否相同
=== 判断值与类型是否相同
!= 判断值是否不同
!== 判断不全等
!=== 全等
这些比较运算符一般都是使用需要判断的地方,比如说if,while等小括号里面, 返回值一定是一个布尔值。
如果是数字与字符串进行比较,那么字符串会自动的转化数字进行比较。
如果是两个字符串进行比较,那么先比较第一个字符,第一个字符大的字符串大, 第一个字符相同在比较第二个字符。
字符大小是按照unicode编码确定的。
umicode:umicode(统一码,万国码,单一码)是计算机科学领域力的一项业界标 准,包括字符集、编码方案等。unicode是未来解决传统的字符编码方案的局限而 产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨 语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。
NaN与任何值比较全是false。
2.3 逻辑运算符
&& 与,符号两边的条件同时符合才会返回true
|| 或 ,符号两边只要有一般符合条件就会返回true
! 非,取反,true转为false,false转为true。
短路运算:
当逻辑判断操作前面的运算已近得出最终结果的时候,后面的操作就不在执行。
具体指:或操作的第一个判断返回true,与操作的第一个判断返回false。
var i = 10;
if(4>2 || 10>++i){
console.log(i);
}
2.4 三元运算符。
三元:三个操作数
自增,自减:医院操作符。i ++
== , > :二元操作符。a >b;
? : 条件?操作1:操作2;
var a =11
a>10?console.log(a):console.log(10);
// 11
If(条件){
操作1;
}else{
操作2;
}
优先级:
()>单目运算符!++ -- > 算术 > 关系 > 逻辑 > 条件 > 赋值