JS运算符

  1. JS运算符
  • 算数运算符

除法不能除以0 那样会得到infinity 和 -infinity

余数 x%7

指数 x**3 就代表x的三次方

自增自减:a++ 和 ++a 的区别 a在前 值在前 a在后 值在后

意思就是 他们虽然都会自加一 但是a++的值就是原先的值 ++a的值就是加上一的值

--同上

  • 求值运算符 就是求一个数的值 不改变正负

  • 负数运算符 会改变原先的值 正的变负的 负的变正的

  • string运算符

连接运算 ‘123’+‘456’=‘123456’ 加号会把两个字符串连接起来

字符串只支持一个加号 其他都不支持

如果用数字和一个字符串相加 会先把数字变成一个字符串

如果用字符串减去一个数字 那么会先把字符串转为一个数字

尽量少用自加自减 并且不要把不同类型的东西相加

  • 比较运算符

==模糊相等 ===全等 !=不模糊相等 !==不全等

  • js三位一体

0==[] 0==’0’ 0==’\t’ 但是右边三个互不相等

忠告:永远不要使用==,用===代替

==的问题在于,他总是自作聪明(自动类型转换)

=== 基本类型看值是否相等 对象看地址是否相等 特例:NaN !=NaN []!=[] {}!={}

  • 布尔运算符

  • 或且非 || && !

a=a||100 的意思就是a的值是保底100 是会有bug的 五个falsy值

也可以使用最新的语法 直接在函数形参里 传一个 n=0 意思就是当你传进去的值为nan或者 undefined 就会默认为0

  • 二进制运算符

或与否

|两个位都为0.则结果为0,否则为1

& 两个位都为1 则结果为1 否则为0

~

异或

^ 两个位相同 则结果为0

左移和右移

<< 和 >>移动1 如果右边有1 就会被吃掉

头部补零的右移运算符

使用与运算符判断就奇偶

代码

偶数& 1=0 奇数&1=1

使用~ >> << >>> | 来取整

使用^来交换ab的位置

但在js里有更方便的语法

var a=1 var b=2 [a,b]=[b,a] 就会交换ab的值

  • 其他运算符

点运算符

语法:对象.属性名=属性值

作用:读取对象的属性值

有个疑问:

不是对象,为什么也可有属性?比如字符串.split()

JS有特殊逻辑 点前面不是对象 就会把他封装成对象

number会变成 Number对象

string会变成 String对象

bool会变成Boolean对象

void运算符 会永远得到undefined

  1. 运算符的优先级

太多不记 技巧:记住圆括号优先级最高就行

相同运算符

a+b+c 从左到右 从右到左 a=b=c=d

本文为张歆辉的原创文章,著作权归本人和饥人谷所有,转载务必注明来源

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容