javascript--运算符的使用

本文深入探讨了JavaScript中的类型转换技巧,包括强制类型转换如Boolean(), Number(), String()等,以及隐式类型转换的机制。同时,全面解析了各种运算符的功能与使用场景,如算数运算符、赋值运算符、比较运算符等,帮助读者掌握编程核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

强制类型转换

  • Boolean()小工具:将指定类型的值转换为布尔值。总是得到true或false。

    • 任何非空字符串都会转换为true,空字符串转换为false。
    • 任何非零数值都会被转换为 true,0和NaN会被转换为false。
    • undefiend转换为false。
    • 任何对象都会转换为true,null转换为false。

    NaN(Not a Number),是数值型,用于表示一个本来要返回值的操作但是并没有返回数值的情况。

  • Number()小工具:将非数值(任何数据类型)转换为数值。

    • true将会被转换为1,false将会被转换为0。

    • null将会被转换为0。

    • undefined转换为了NaN。应该得到数值,但是返回的值不是数值的情况。

    • 如果是字符串应该遵循以下规则:

      • 字符串中只包含数值(整数、浮点数)则转换为对应的整数、浮点数。
      • 空字符串、空白串转换为0。
      • 除了上面的格式之外的字符,都转换为NaN。
  • parseInt()小工具:将 字符串 转换为整数。(如果其中的值不是字符串那就得先转换为字符串),它会忽略字符串前面的空格,找到第一个非空格的字符。如果第一个字符不是数字(第一个字符以负号开头也可以)将会返回NaN。如果第一个字符是数值将继续往下找,一直找到所有字符或中途遇到第一个非数字字符。

  • parseFloat()小工具:将字符串转换为小数。(语法规则和parseInt一样)

  • toString()工具:将对应的类型转换为对应的字符串。

    布尔型:true=>'true',false=>'false'

    数值:1=>'1'

    null和undefiend没有toString()工具。

  • String()工具:将变量转换为字符串。如果你不确定变量值是不是undefiend或null时就使用它。

    • 如果值能够使用toString()工具,那String()就调用toString()得到结果。
    • 如果值是null,直接返回null。
    • 如果值是undefined,直接返回undefined。

隐式类型转换

隐式类型转换和上面的规则相同,通常发生在和运算符相关联的操作中。

运算符分类

只要用到了变量,就需要配合着运算符一起使用。

表达式:使用运算符将数据(变量、数据)按照对应的规则连接起来的式子叫表达式。

var a = 10;
var b = 10;
console.log(a + b);
console.log(1+1);

计算机的运算符是按照功能进行划分的:

  • 算数运算符
  • 赋值运算符
  • 复合运算符
  • 比较运算符
  • 相等运算符
  • 逻辑运算符
  • 三元运算符

算数运算符

  • 加号+

    • 如果操作的两个对象都是字符串,则进行拼接。第一个字符串拼接第二个
    • 当有一个操作数是字符串时它会认为你要进行拼接操作。所以会将另外一个操作数也转换为字符串,(这个过程是系统自动进行转换的,即隐式转换)然后进行拼接。(String()toString())。
    • 其他类型就调用Number()进行转换。
    • +放在数值前面。对数值不会产生任何影响。如果操作数为非数值将会调用Number()对这个值进行转换。
  • 减法 - 、乘法 X、 除法 /,一样

    • 如果有一个(两个)操作数是字符串、Boolean、null或undefiend,则先调用Number()进行转换。

    • 被除数/除数=商

      • 被除数为0,结果就是0。(0除以任何数都是0)
      • 除数为0 结果Infinity
      • 除数为-0 结果-Infinity
      • 被除数、除数都是0。结果NaN
  • 取余%,求模

    • 如果第一个数小于第二个数结果为第一个数。(2%5结果为2)

    • 第二个数不能为0,如果为0结果为NaN。

      NaN的特点:

      • 任何涉及到NaN的操作结果都是NaN。
      • NaN和任何值都不相等,包括自己。
    • 取余在什么时候用?

      • 求余数。

      • 取范围。求余的值永远不会超过被除数。

        x % 4 得到的数只能是0~3(x % 4) + 1 最后的结果肯定就是1~4

      • 求出一个数的每一位商数是多少。

      例: 1234求出来:个位数、十位数、百位数、千位数。

 var num = 1234;
//当前数/要求的位%10
console.log(parseInt(num/1000%10));
console.log(parseInt(num/100%10));
console.log(parseInt(num/10%10));
console.log(parseInt(num/1%10));
  • 自增、自减

    ++--,在自身的基础上+1-1

    ++--都可以放在操作数前面或后面:

    • 放在操作数后面先用后加。
    • 放在操作数前面先加后用。

    以上规则仅仅在使用++或 --本行适用。

    • 如果操作数不是数值则内部使用Number工具进行转换,会改变原来变量的值。

复合运算符

  • +=a+=b完全等价于a = a + b
  • -=
  • *=
  • /=
  • %=

赋值运算符

=,将等号右边的值或表达式的结果赋给变量。

左边是一个变量,右边是值或者有值的内容。

比较运算符

比较的结果应该是布尔值。true或false。

  • >,大于
  • <,小于
  • >=,大于等于。大于或者等于。
  • <=,小于等于。小于或者等于。

比较规则:

  • 如果两个操作数都是数值,进行数值比较大小。

  • 如果两个操作数都是字符串,比较两个字符串对应的字符编码(不常用)

    从第一个字符的编码开始比较,如果第一个字符的编码就能比较出大小,后面的就不用比较了。如果不能得出大小,就从第二位继续比较,以此类推。一直到最后都没比较出来的话,那么谁的位数多谁就大。

  • 其他类型的比较调用Number()进行转换。

  • NaN和任何比较都是false。

相等操作符

  • 相等和不相等

    • ==,判断是否等于。如果两个操作数相等,返回true。
    • !=,判断是否不等于。如果两个操作数不相等返回true。

    比较规则:

    1. 类型相同直接比较。
    2. 类型不同,只要有一个操作数是数值就先调用Number()
    3. 都是基本类型numberstringboolean和基本类型比较,都会先转换为数值。1 == '1'
    4. null和undefined相等。
    5. NaN和NaN不相等。
  • 全等和不全等

    • ===,全等于。两个操作数未经转换并且值相等返回true。
    • !==,不全等。在两个操作未经转换就不相等的情况下返回true。

一个等号是赋值、两个等号比较是否相等(转换的过程)、三个等号比较是否全等于(类型和值必须完全相等才行)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值