javascript - js中" 20/3 | 1 "代表的是什么意思。

查看:136
本文介绍了javascript - js中" 20/3 | 1 "代表的是什么意思。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

今天看一个js教程,讲师使用了类似var a = 20/3|1;这种除法,说是是Math.floor的简写,但我测试结果不是这样。

var a = 20/3 | 1;    //a是7

var a = Math.floor(20/3);    //a是6

那到底|1起的作用是什么呢?

解决方案

实名反对楼上答案,完全未经测试。不信可以测试下:

console.log(3.999 | 1)

难道会等于4吗?


  1. 实际上这是继承自c语言的 操作,或1,就是把最低位置为1,实际上的意义在于把这个数变为一个奇数,如果是偶数则+1,如果是奇数则返回本身,在这里,javascript解释器会判断如果不是整数则取整,因为或操作对于小数无意义。

  2. 同理为最低位或0则代表无意义的操作,因为任何数或0都等于其本身,但是由于javascipt解释器已经帮我们取整过了,所以直接返回整数本身,意义在于取整


对于本题,要么你记错了,要么就是老师不专业,n|0 = Math.floor(n) |0 才是Math.floor

这篇关于javascript - js中" 20/3 | 1 "代表的是什么意思。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆