ES5详解---操作符、类型转换、流程控制语句详解(文末扩展隐式转换详解、附有隐式转换经典面试题、解析)

1.操作符

1.1. 算数运算符
在这里插入图片描述

  • 正常的数据运算

    var num1 = 8;
    var num2 = 4;
    
    console.log(num1 + num2); //12
    console.log(num1 - num2); //4
    console.log(num1 / num2); //2
    console.log(num1 * num2); //32
    console.log(num1 % num2); //0
    
  • 进行数据运算时,除+外,其他运算符可以自动将字符串数字隐形转成数字

    var num1 = '8';
    var num2 = '4';
    
    console.log(num1 - num2); //4
    console.log(num1 / num2); //2
    console.log(num1 * num2); //32
    console.log(num1 % num2); //0
    

1.2. 一元运算符

	JavaScript中有8种常用的一元运算符

在这里插入图片描述

  • delete运算符

     删除数组或对象中特定索引的值
    
    var obj = {
         
      name:'zhangsan',
      age: 17
    };
    delete obj.name;
    console.log(obj); // {age: 17}
    
  • typeof运算符

     操作数放到typeof的后面,会返回当前操作数的类型,对于数值类型可以准确返回,
     对于引用类型,Function会返回'function',其他都只会返回'object'
    
    var obj = {
         
      name:'zhangsan',
      age: 17
    };
    var arr = [1,2,3,4,5];
    console.log(typeof obj, typeof arr); //object object
    

1.3. 赋值运算符

在这里插入图片描述

= 赋值运算符 向变量赋值
var x = 7;
+= 赋值运算符 向变量添加值
var x = 7;	
x += 8; //x=x+8
-= 赋值运算符 从变量中减去一个值
var x = 7;
x -= 8; //x=x-8
*=  赋值运算符 相乘变量
/=  赋值运算符 对变量相除
%=  赋值运算符 把余数赋值给变量

1.4. 比较运算符

比较运算符在逻辑语句中使用,以判定变量或值是否相等。通常用于条件判断语句中。
比较运算符的优先级低于算术运算符,高于赋值运算符 运算结果一般都为boolean

在这里插入图片描述

  • ==
    等同 的意思, 两边值类型不同的时候,要先进行类型转换为同一类型后,再比较值是否相等。

    // 常用于相同类型的值的比较
    console.log(123 == 345);  //false
    console.log('123' == '345');  //false
    // 如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较
    // 如果一个是null,一个是undefined,那么相等
    console.log(null == undefined); //true
    // 如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较
    console.log(123 == '123');  //true
    //如果是整数类型和boolean类型的数值进行比较,1和true使用==比较结果为true,0和false使用==
    //比较结果也为true,其它都为false;可以理解记忆为使用==比较整数时将1等同true,将0等同false。
    console.log(1 == true); //true
    console.log(0 == false);  //true
    
  • ===
    恒等,不做类型转换,类型不同的结果一定不等。

    // 如果类型不同,就一定不相等
    console.log(123 === '123'); //false
    // 如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等。
    //(判断一个值是否是NaN,只能使用isNaN() 来判断)
    console.log(123 === 123); //true
    console.log(123 === 10 / 'a');  //false
    // 如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。
    console.log('hello' === 'hello'); //true
    // 如果两个值都是true,或是false,那么相等
    console.log(true === true); //true
    console.log(1 === true);  //false
    // 如果两个值都是null,或是undefined,那么相等
    console.log(null === null); //true
    console.log(null === undefined);  //false
    
  • 双等和三等的区别

    双等表示只要值相等即可为真,而三等则要求不仅值相等,而且也要求类型相同。

  • ‘>‘和’<’ ‘>=‘和’<=’

    var a = 10;
    var b = 20;
    console.log(a > b); //false
    console.log(a < b); //true
    console
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值