JS操作符及类型转换

1.操作符
表达式:操作符和操作数组成
var a = 3;
1)算术操作符
允许非number类型的操作数进行运算,在运算之前,一般需要先将其它数据类型转换为数字类型在进行运算
1.+ 、+=
var result = 1 + 2;
var result = 1 + true;
var a = 3;
var b +=a; //var b = b + a;
当操作数中出现了字符串,+运算就变成了字符串拼接运算
var result = true + ‘1’;
2.- 、-=
var result = 3 -2;
var result = 3 - true; //2
var result = 3 - ‘a’; //NaN
3.=
var result = 2 * 3;
4./、/=
var result = 5 / 2;
5.%、%=
var result = 5 % 2;
2)比较操作符
运算结果一般为boolean
1.<
2.<=
3.>
4.>=
5.==等于
将操作数转换为同一数据类型再进行比较
1)基本数据类型的值
2)引用数据类型的值
比较引用数据类型的地址
var a = {name:“terry”}
var b = {name:“terry”}
‘{“name”:“terry”}’ 等于 ‘{“name”:“terry”}’

		===全等
			先比较两个操作数的数据类型,如果数据类型不一致,直接返回false,当数据类型一致的时候才比较值
			1 == ‘1’	//true
			1 === ‘1’		//false

	------如何比较两个对象的属性是否一致
		1.先将对象序列化为json字符串
		2.对json字符串进行对比

3)逻辑操作符【短路运算符】
	1.&&
		返回值不一定是boolean类型
			true&&false		//false
			true&&true		//true
				var gender = ‘female’
				if(gender === 'male'&&age>18){}
			对于以上代码,gender === 'male'运算结果为false,整个&&表达式的结果就为false,无需再进行其他运算
				var a;
				var result = a && 3;		//undefined
				var result = 3 && al		//undefined
				var result = "hello world && 3"		//3
			对于以上代码,“hello world”如果转换为boolean将为true,整个&&表达式的运算结果取决于&&后面的表达式,所以将&&后的结果直接返回
		/*var gender = 'female'
        var age = 13; 
        var result = gender == 'male' && age >12;
        问:age>!2是否可以执行,如何证明?*/
       2.||
       	var result = true || false; //true有真则真
        var result = false|| false;//false同假才假
        var result = 1>2|| 'hello'      //hello
        如上,1>2为false,但是无法确定整个表达式的结果,整个表达式的结果取决于第二个表达式,将其返回即可

        var result = 1<2 || 'hello'     //true
        如上,1<2为true,能确定整个表达式的结果,无需进行接下来的运算
       3.!
       	!true      //false
        !false     //true
        !!true        //true
        将其他数据类型转换为Boolean类型
        !“hello”       //false
        !!“hello”     //true
4)三目操作符
	表达式1 ? 表达式2 : 表达式3
    如果表达式1为真,返回表达式2;如果表达式1为假,返回表达式3
    var age = 19;
    let result =age > 16 ? “成年人”: “小孩子”
   
5)一元运算符
	1.+
        +3  //3
        一元加运算符后的操作数如果是其他数据类型,则转换为数字类型
        +true   //1
   2. -    
        一元减法,负
        -3  //-3
        -true   //-1
        -(-true)  //1
    3.++  
        var a =3;
        var result = a++ + ++a;
        console.log(result);    //8
        console.log(a);     //5
        result=8
        a=5
   3. --自减

2.类型转换
1)* ->数字类型
通常在dom中或者是从后端拿到的数据不是纯数字类型
但是需要进行数学运算,
Number(a)
+a
-(-a)
parseInt(a)
parseFloat(a)

2)* ->Boolean
    Boolean(a)
	!!a
    false:null 0 undefined NaN Infinity "" ...
    true:{} 1 "hello"
    var msg = ""
    if(msg){

    }
    if(exp1){}
    exp1可以是任意数据类型,因为js在执行过程中会自动将其转换为Boolean
    if(obj !=null){}
    if(obj){}

3)*->字符串类型
    String(a)
    a+""


    {grade:"92.5"}
    {grade:"91.5"}
    {grade:"96"}
    “92.5” + "91.5" + "96" /3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值