javascript 红皮高程(18)-- 布尔操作符

可算是把绕来绕去的二进制-位操作符,给学完了。至少我学到了十之八九,你呢,,,

接下来是布尔操作符,它一共有三个,非(NOT),与(AND),或(OR)。

1,逻辑非(NOT),它用一个惊叹号(!)来表示,它可以用于ECMAScript的任何值。无论是什么类型,都会返回一个布尔值。

逻辑非操作符会先把操作数转换为一个布尔值,然后对其求反,规则啊,是下面这样的,要记住,这些都是细节。。:

!对象,返回false;

!空字符串,返回true;

!非空字符串,返回false;

!0,返回true;

!任意非0数值,包括Infinity,返回false;

!null,返回true;

!undefined,返回true;

(上面这些返回值,我每个都console.log打印出来看看,你在学这章的时候,有这样做吗?)

有时可以在网上看到 !!str,这种二个惊叹号的写法。这是同时对一个值使用二个逻辑非操作数。

实际上第一个逻辑非操作会直接任何值返回一个布尔值,第二个逻辑非操作则对此值求反。

为什么这样做呢?

因为这样实际上是模拟了 Boolean()转型函数的行为,结果是获得了这个值真正对应的布尔值。

这些知识点看起来很简单,毫无难度,但胜在细节。面试时许多兄弟们挂掉就是因为这些细碎的点不连贯,导致知识体系,断了。

原文发布于微信公众号 - web前端教室(webfeel)

原文发表时间:2016-04-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python小屋

Python使用超高效算法查找所有类似123-45-67+89=100的组合

问题描述:在123456789这9个数字中间插入任意多个+和-的组合,使得表达式的值为100,输出所有符合条件的表达式。 昨天发了一个暴力测试的方法来解决问题,...

2995
来自专栏LinkedBear的个人空间

唠唠SE的面向对象-06——单例模式 原

我们让之前写的Arrays工具类变成非静态的,但又只能保证有且只有一个Arrays的对象

783
来自专栏求索之路

android阿里面试java基础锦集

接着上一篇 android阿里面试锦集 今天给大家带来一篇 android阿里面试java基础锦集。很多知识都是Thinking in Java上面的,所以如...

36911
来自专栏前端菜鸟变老鸟

特定场景下的数据格式化(根据后台控制格式化的方式)

1343
来自专栏有趣的Python

python分布式爬虫搜索引擎实战-3-爬虫网址去重策略+Python字符串编码问题解决

爬虫网址去重策略 将访问过的url保存到数据库中 将url保存到set中。只需要O(1)的代价就可以查询到url 100000000*2byte*50个字符/...

3086
来自专栏逆向技术

逆向知识第七讲,三目运算符在汇编中的表现形式,以及编译器优化方式

                  逆向知识第七讲,三目运算符在汇编中的表现形式 一丶编译器优化方式 首先说一下编译器优化方式. 1.常量折叠 2.常量传播 3...

2678
来自专栏java一日一条

java面试小题系列(一)

963
来自专栏曾大稳的博客

c基础

931
来自专栏hbbliyong

Invalid bound statement (not found)

1.1K2
来自专栏老马说编程

(66) 理解synchronized / 计算机程序的思维逻辑

上节我们提到了多线程共享内存的两个问题,一个是竞态条件,另一个是内存可见性,我们提到,解决这两个问题的一个方案是使用synchronized关键字,本节就来讨论...

2685

扫码关注云+社区

领取腾讯云代金券