JavaScript中的运算符

1. JS是弱类型语言,在运算符使用上更加灵活

  • 包括算术运算符、关系运算符、等于运算符、位运算符

2. 等于运算符

在Java、C等强类型语言中,一个变量在使用前必须声明变量类型,所以在比较时无需判断变量类型,只需要有双等于==即可。

JS是弱类型语言,一个变量可声明为任何类型的值。

  • 双等于比较:会将两端的变量进行隐式类型转换,然后比较值的大小
  • 三等于比较:优先比较数据类型,再判断值的大小  

  2.1 JS中的三等于运算符

  • 基本数据类型存在包装类型,注意基本数据类型和引用数据类型的区别

  • 引用类型比较的是引用类型的地址

  2.2 JS中的双等于运算符

  • 在比较时不同的数据类型,会进行隐式类型转换

    • null == undefined

    • 字符串(转换数值) == 数值

    • Boolean类型(转换数值) == 数值 == 字符串(转换数值)

    • 对象类型(用valueOf()和toString()转换为基本数据类型) == 基本数据类型 

3. typeof运算符

  3.1 用于返回操作数的数据类型

  • 操作数可以是基本数据类型,也可以是引用类型
  • 括号是必须的,避免优先级问题

  3.2 在不同数据类型中的处理结果

数据类型处理对象
typeof x === 'undefined'undefined本身、未声明变量、已声明未初始化变量
typeof x === 'boolean'true、false、两个包装类型Boolean(true)
typeof x === 'number'

数字、Number类型静态变量、Number类型静态变量值、

NaN、无穷大、无穷小、数值类型包装类型

typeof x === 'string'字符串、返回值为字符串类型的表达式、包装类型
typeof x === 'symbol'Symbol类型
typeof x === 'function'

两种定义后的函数、class关键字定义的类、

某些内置对象的特定函数、Function类型对象的实例

typeof x === 'object'

对象字面量、数组、通过new操作符实例化后的对象(除Function)、null、

通过new操作符得到的基本数据类型的包装类型对象(new Boolean(true))

  • typeof区分对待Object类型和Function类型

  • typeof处理null返回“object”

  • 括号的必要性

4. 逗号运算符

  • 逗号运算符是基本的分隔符
  • 逗号运算符可作为运算符,将多个表达式连接起来,从左至右依次执行
  • 逗号运算符在特定场景下的应用
    • 在for循环中批量执行表达式

    • 用于交换变量,无需额外变量

    • 用于简化代码

    • 用小括号保证逗号运算符的优先级

5. 运算符优先级

优先级最高的先执行,优先级最低的最后执行。

建议使用小括号,以保证运算顺序清晰可读。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值