JavaScript学习总结(二)——逻辑Not运算符详解

 

转载自   JavaScript学习总结(二)——逻辑Not运算符详解

 在JavaScript 中,逻辑NOT运算符与C和Java中的逻辑 NOT 运算符相同,都由感叹号(!)表示。与逻辑 OR 和逻辑 AND 运算符不同的是,逻辑 NOT 运算符返回的一定是 Boolean 值

逻辑 NOT 运算符的行为如下:

  • 如果运算数是对象,返回 false
  • 如果运算数是数字 0,返回 true
  • 如果运算数是 0 以外的任何数字,返回 false
  • 如果运算数是 null,返回 true
  • 如果运算数是 NaN,返回 true
  • 如果运算数是 undefined,发生错误

测试脚本如下:

<script type="text/javascript">var bFalse = false;//运算数是bool类型的数var sRed = "red";//运算数是字符串var iZero = 0;//运算数是0var iThreeFourFive = 345;//运算数是 0 以外的任何数字var oObject = new Object();//对象var oNull=null;//运算数是nullvar oUndefined;//运算数是undifinedvar oNaN=parseInt("abc");//使用parseInt方法把尝试字符串abc转换成整数,因为abc不是数字,因此是转不了的,所以返回的结果就是NaN/*writeln() 方法与 write() 方法几乎一样,差别仅在于是前者将在所提供的任何字符串后添加一个换行符。在HTML中,这通常只会在后面产生一个空格;不过如果使用了 <PRE> 和 <XMP> 标识,这个换行符会被解释,且在浏览器中显示。*/document.writeln("<XMP>");document.writeln("oNaN=parseInt(\"abc\")返回的结果是"+oNaN);document.writeln("bool类型的数false与!运算符运算之后的结果是:" + (!bFalse));document.writeln("字符串sRed与!运算符运算之后的结果是: " + (!sRed));document.writeln("数字0与!运算符运算之后的结果是:" + (!iZero));//如果运算数是数字 0,返回 true document.writeln("数字345与!运算符运算之后的结果是:" + (!iThreeFourFive));//如果运算数是 0 以外的任何数字,返回 false document.writeln("对象oObject与!运算符运算之后的结果是:" + (!oObject));//如果运算数是对象,返回 false document.writeln("NaN与!运算符运算之后的结果是:" + (!oNaN));//如果运算数是NaN,返回 true document.writeln("null与!运算符运算之后的结果是:" + (!oNull));//如果运算数是 null,返回 true document.writeln("undifined与!运算符运算之后的结果是:" + (!oUndefined));//document.writeln("未定义的字符串sBule与!运算符运算之后的结果是:" + (!sBule));//sBule前面没有定义,也就是sBule运算数是 undefined,因此这里发生错误 document.writeln("</XMP>");</script>

运行结果:

  

  判断JavaScript变量的Boolean 值时,也可以使用逻辑NOT运算符。这样做需要在一行代码中使用两个 NOT 运算符。无论运算数是什么类型,第一个NOT运算符返回 Boolean值,第二个NOT将对该Boolean值取反,从而给出变量真正的Boolean值。使用not运算符判断JavaScript变量的Boolean值是一个非常有用的技巧,只要知道了变量的boolean值,那么当使用变量进行&&或者||运算时,就可以很快知道运算的结果了。

测试脚本如下:

<script type="text/javascript">var bFalse = false;//运算数是bool类型的数var sRed = "red";//运算数是字符串var iZero = 0;//运算数是0var iThreeFourFive = 345;//运算数是 0 以外的任何数字var oObject = new Object();//对象var oNull=null;//运算数是nullvar oUndefined;//运算数是undifinedvar oNaN=parseInt("abc");//使用parseInt方法把尝试字符串abc转换成整数,因为abc不是数字,因此是转不了的,所以返回的结果就是NaN/*判断JavaScript 变量的 Boolean 值时,也可以使用逻辑 NOT 运算符。这样做需要在一行代码中使用两个 NOT 运算符。无论运算数是什么类型,第一个 NOT 运算符返回 Boolean 值。第二个 NOT 将对该 Boolean 值取反,从而给出变量真正的 Boolean 值。*/document.write("<PRE>");document.writeln("布尔数false 的逻辑值是 " + (!!bFalse));document.writeln("字符串sRed 的逻辑值是 " + (!!sRed));document.writeln("数字0 的逻辑值是 " + (!!iZero));document.writeln("数字345 的逻辑值是 " + (!!iThreeFourFive));document.writeln("对象Object 的逻辑值是 " + (!!oObject));document.writeln("NaN的逻辑值是 :" + (!!oNaN));document.writeln("null 的逻辑值是 " + (!!oNull));document.writeln("undefined 的逻辑值是 " + (!!oUndefined));document.write("</PRE>");</script>

 运行结果:

  

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326768.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

赫夫曼树+图解

图解 代码实现 package com.atguigu.huffmanTree;import javax.swing.*; import java.awt.geom.RoundRectangle2D; import java.util.ArrayList; import java.util.Collections; import java.util.List;/*** 创建人 wdl* 创建时间 2021/3/26* 描述*/ public class HuffmanTree…

四足爬行机器人运动_有自我意识机器人横空出世,还能自我复制,专家表示需警惕其失控...

有自我意识是什么样的&#xff1f;人类自身其实就是有自我意识的生命体&#xff0c;那作为有自我意识的生命体&#xff0c;你想过自我意识是指哪些特征吗&#xff1f;指尖科技说小编先跟你探讨一下&#xff1a;1.主动做事情。就是说在没有其他人控制的情况下&#xff0c;它可以…

微软AirSim,一个无人机和机器人的模拟器

微软开发并开源了AirSim&#xff0c;一个用于模拟无人机在全世界的飞行的工具。这个模拟器基于虚幻引擎&#xff08;Unreal Engine&#xff09;构建&#xff0c;微软很快会增加对机器人和其它类型移动设备的支持。 微软在内部开发了航空信息系统和机器人平台&#xff0c;这个研…

JavaScript学习总结(四)——逻辑OR运算符详解

转载自 JavaScript学习总结(四)——逻辑OR运算符详解 在JavaScript中&#xff0c;逻辑OR运算符用||表示 var bTrue true;var bFalse false;var bResult bTrue || bFalse; 下面的真值表描述了逻辑AND运算符的行为: 运算数 1运算数 2结果truetruetruetruefalsetruefals…

LEANSOFT领航员 – 基于Docker的DevOps实战培训

2016年&#xff0c;LEANSOFT推出了一系列广受开发人员欢迎的培训&#xff0c;包括《构建高效DevOps团队》&#xff0c;《基于Azure的容器化DevOps数据中心》和《Docker基础培训》。在这些培训中&#xff0c;我们得到了很多反馈&#xff0c;大家对使用Docker来支持DevOps的场景有…

高德地图路线规划 时间_路线准、播报拥堵及时,这次自驾出行高德地图可算是帮了大忙...

在我们日常生活中,自驾已经成为一种很普遍的出行方式,不仅在时间上灵活,特别是一家人出行也比较方便。伴随自驾出行的除了爱车外,一款靠谱的地图导航软件也成为了必不可少的旅行伙伴。目前比较常用的地图导航软件当属高德、百度和腾讯,不少人手机里都会有这三款软件中的其中一个…

JavaScript学习总结(七)——JavaScript函数(function)

转载自 JavaScript学习总结(七)——JavaScript函数(function) 一、函数基本概念 为完成某一功能的程序指令(语句)的集合&#xff0c;称为函数。 二、JavaScript函数的分类 1、自定义函数(我们自己编写的函数)&#xff0c;如&#xff1a;function funName(){} 2、系统函数(J…

JavaScript学习总结(八)——JavaScript数组

转载自 JavaScript学习总结(八)——JavaScript数组 JavaScript中的Array对象就是数组&#xff0c;首先是一个动态数组&#xff0c;无需预先制定大小&#xff0c;而且是一个像Java中数组、ArrayList、Hashtable等的超强综合体。 一、数组的声明 常规方式声明&#xff1a; 1、…

命令点无效怎么处理_CAD执行修改命令,你试过重复选择对象吗?

你在执行命令的时候&#xff0c;是习惯先选择对象还是之后才选择对象的呢&#xff1f;不知道细心的你有没有发觉&#xff0c;明明已经先选择对象了才执行命令&#xff0c;为什么之后还要重复选择对象&#xff1f;这里可以分几种情况来讨论一下。CAD版本&#xff1a;中望CAD 202…

一起脱去小程序的外套和内衣 - 微信小程序架构解析

作者介绍&#xff1a; 渠宏伟&#xff0c;腾讯高级工程师&#xff0c;从事Web前端开发5年&#xff0c;先后负责企鹅电竞、腾讯视频VIP、腾讯OA开发框架、腾讯微信HR助手等项目。对Web前端架构、.NET架构有丰富的经验。 | 导语 微信小程序的公测掀起了学习小程序开发的浪潮&…

JavaScript学习总结(九)——Javascript面向(基于)对象编程

转载自 JavaScript学习总结(九)——Javascript面向(基于)对象编程 一、澄清概念 1.JS中"基于对象面向对象" 2.JS中没有类(Class)&#xff0c;但是它取了一个新的名字叫“原型对象”&#xff0c;因此"类原型对象" 二、类(原型对象)和对象(实例)的区别与联…

将Springboot项目放在服务器上一直运行

nohup java -jar hz-sms-0.0.1-SNAPSHOT.jar >/www/wwwroot/...-0.0.1-SNAPSHOT.out 2>&1 &

迁移数据库到SQL on Linux Docker

问题引入 前一篇文章&#xff0c;菜鸟找到了SQL on Linux Docker容器销毁后&#xff0c;容器中的数据库文件可以得以保留的方法&#xff0c;老鸟非常开心。所以&#xff0c;今天又提出了新的问题&#xff1a;“鸟儿&#xff0c;如果我想把我的数据库从SQL on Windows迁移到SQL …

Spring IoC 容器

转载自 Spring IoC 容器 IoC 容器 Spring 容器是 Spring 框架的核心。容器将创建对象&#xff0c;把它们连接在一起&#xff0c;配置它们&#xff0c;并管理他们的整个生命周期从创建到销毁。Spring 容器使用依赖注入&#xff08;DI&#xff09;来管理组成一个应用程序的组…

字段缺失_区分Protobuf 3中缺失值和默认值

来自公众号&#xff1a;新世界杂货铺这两天翻了翻以前的项目&#xff0c;发现不同项目中关于Protobuf 3缺失值和默认值的区分居然有好几种实现。今天笔者冷饭新炒&#xff0c;结合项目中的实现以及切身经验共总结出如下六种方案。增加标识字段众所周知&#xff0c;在Go中数字类…

当初怎么就入了VS的坑

使用Turbo C和Turbo Pascal开始学习编程貌似也是一代人的集体记忆。这方面我也没什么忌讳&#xff0c;毕竟Borland Turbo C在九十年代末的PC上面还是一个运行效率不错的开发工具。然而启蒙老师的水平限制&#xff0c;那个时候所学习的编写和调试技术都不过关&#xff0c;一个超…

Mysql截取字段中 用逗号分割 省市县镇街道社区小区

Mysql截取字段中 用逗号分割 省市县镇街道社区小区 select id , name, substring_index(name,,,0) as province0, substring_index(name,,,1) as province1, substring_index(name,,,2) as province2, substring_index(name,,,3) as province3, substring_index(name,,,4) as…

如何导出Navicat的数据库连接配置

如何导出Navicat的数据库连接配置 如何导出Navicat的数据库连接配置_石头wang的博客-CSDN博客_navicat 导出配置 如何导出Navicat的数据库连接配置 背景 我们可能会在不同的电脑安装Navicat&#xff0c;这些连接的配置如何从一台电脑迁移到另外一条&#xff1f;自行备份是比较…

C#开发人员应该知道的13件事情

本文讲述了C#开发人员应该了解到的13件事情&#xff0c;希望对C#开发人员有所帮助。 1. 开发过程 开发过程是错误和缺陷开始的地方。使用工具可以帮助你在发布之后&#xff0c;解决掉一些问题。 编码标准 遵照编码标准可以编写出更多可维护的代码&#xff0c;特别是在由多个开发…