开发者社区> 问答> 正文

JavaScript逻辑运算符相关问题

var a=9;
var b=5;
var c=0;
alert(a|b|c);

结果显示13,改变a , b, c的值,结果会发生变化,为什么?

展开
收起
把握现在87 2017-11-30 13:12:44 2777 0
4 条回答
写回答
取消 提交回答
  • | 不是逻辑运算符,是位运算符。||才是逻辑运算符。

    2019-07-17 21:46:13
    赞同 展开评论 打赏
  • 一名路过的小码农,大神请多多指教

    逻辑或运算不是,将数字先转化为二进制之后进行或运算试试吧

    2019-07-17 21:46:13
    赞同 展开评论 打赏
  • | 是按位或运算,不是逻辑或运算;先转换为二进制
    a.toString(2) => "1001"
    b.toString(2) => "101"
    c.toString(2) => "0"
    按位或之后是1101,而parseInt("1101", 2) => 13

    2019-07-17 21:46:13
    赞同 展开评论 打赏
  • 应该就是逻辑或的关系吧.

    2019-07-17 21:46:13
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载