数据类型转换
转换为String
强制类型转换
1. toString()方法:
var a=10;
a=a.toString();
如果调用undefined和null的toString()会报错
2.String()函数
var a=10;
a=String(a)
对于具有toString()方法类型,String()也会调用它的toSting()来进行转换
对于null 直接将其 转换为 "null"
对于undefined 直接将其 转换为 "undefined"
隐式类型转换
通过为任意类型加上一个空串的形式将其转换为字符串
var a=10;
a=a+"";
转换为Number
强制类型转换
1.Number()函数
var num="10";
num=Number(num);
转换的情况:
字符串: 如果是一个合法的数字 则直接转换成对应的数字
如果不是一个合法的数字 则转换成NaN
如果是空字符串和纯空格的字符串 则转换为0
布尔值: true转换成1 false变成0
null:null直接转换为0
undefined:undefined转换为NaN
2.parseInt()函数
将一个字符串中的有效整数位提取出来
3. parseFloat()函数
将一个字符串中的有效小数提取出来
隐式类型转换
使用一元运算符的"+"将任意的数据类型转换为Number
var a="10";
a=+a;
转换为Boolean
强制类型转换
调用Boolean()函数
var a=1;
a=Boolean(a);
转换的情况:
String 除了空字符串 其余都是true
Number 除了0和NaN 其余都是true
null和undefined都为false
隐式类型转换
可以通过对任意类型的数据取反两次 将其转换为布尔值
var a=10;
a=!!a;
运算符(操作符)
通过运算符可以一个或多值进行运算
算数运算符
+
-
*
/
%
规则和数学中的规则一致
一元运算符
+(正号) -(负号) ++ -- ! typeof instanceof delete
二元运算符
+(加号) -(减号) / % > < >= <= == != === !== && || += -= /= %=
三元运算符
?:
加法运算符
如果两个操作数都是数字的话 进行加法计算
console.log(1+1) //2
如果操作数中出现字符串 进行字符串拼接
console.log(1+'个苹果') //1个苹果
除了加法运算符 其他算数运算符都将字符串类型自动转换成number类型 再进行计算
console.log('2'-'2') //0
求余运算符
计算两个数整除后的余数 求余的结果是正数还是负数,与第一个操作数的正负有关
console.log(5%3) //2
console.log(-5%3) //-2
console.log(5%-3) //2
console.log(-5%-3) //-2
++
自增
自增可以使变量在原来的基础自增1
自增分成前++(++a) 和 后++(a++)
无论是++a 还是 a++都会使原变量立即自增1
不同的是++a 和 a++的值不同
++a是变量自增后的值,新值
a++是变量自增前的值,原值
--
自减
自减可以使变量在原来的基础自减1
自减分成前--(--a) 和 后--(a--)
无论是--a 还是 a--都会使原变量立即自减1
不同的是--a 和 a--的值不同
--a是变量自减后的值,新值
a--是变量自减前的值,原值
相等与不等
==与!= 只比较操作数的值 不比较类型
consolel.log(10 =='10') //true
console.log(undefined == null) //true 都表示空 所以输出为true
全等与全不等
===和!== 既比值 又比较类型
console.log(10 ==='10') //false
console.log(10 !=='10') //true
isNaN()函数
用于判断参数是否是非数字值 多用于检测转换后的结果是否为合法的数字值
注:NaN与任何值进行比较 都是false 不能使用 == 或者 === 运算符判断 只能用isNaN()函数
console.log(isNaN(parseInt('123abc'))) //true
console.log(isNaN('123.456abc')) //true
逻辑运算符
! 逻辑非
可以对一个布尔值进行取反操作
如果对一个非布尔值进行逻辑非运算,会先将其转换为布尔值,然后再取反
利用这个特点,可以为指定的值取两次反,来将其转换为布尔值。
&& 逻辑与
可以对符号两侧的值做与运算
如果对非布尔值做与运算,会将其转换为布尔值然后再运算,
最终会返回原值
如果第一个值是false,则直接返回第一个值
如果第一个值是true,则返回第二个值
js中的与运算是短路的与,如果第一个值是false,则不看第二个值
|| 逻辑或
可以对符号两侧的值做或运算
如果对非布尔值做或运算,会将其转换为布尔值然后再运算,
最终会返回原值
如果第一个值是true,则直接返回第一个值
如果第一个值是false,则返回第二个值
js中的或运算是短路的或,如果第一个值是true,则不看第二个值
赋值运算符
=
= 将符号右侧的值赋值给符号左侧的变量
+=
a += 5 相当于 a = a+5
-= 同+
*= 同+
/= 同+
%= 同+
条件运算符(三元运算符)
?:
语法:
条件表达式?语句1:语句2
-执行流程:
三目运算符在执行时,会先对条件表达式进行求值判断,
如果判断结果为true,则执行语句1,并将执行结果返回
如果判断结果为false,则执行语句2,并将执行结果返回
var salary =45000;
var result=salary >30000 ? console.log('中产阶级') : console.log(' 小康');
条件运算符嵌套
条件运算符中 每个表达式可以为另一个条件表达式 为条件运算符嵌套
var age=24;
var result=age >=60 ? console.log('老年') :(age >=30 ? console.log('中年'):(age >18 ?console.log('成年'):console.log('未成年')) )
代码执行顺序:
age>=60 不符合条件继续执行 age >=30 不符合条件继续执行 age >18 满足条件
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。