js 表达式与运算符 详解(下)
比较运算符:
> 、>= 、<、 <=、 ==、 !=、 ===、 !==、
比较运算符的结果都为布尔值
==只比较值是否相等 而 ===比较的是值和数据类型都要相等
<script>
var a = 5,b = 10;
alert(a>b) //=>false
alert(a>=b) //=>false
alert(a>=5) //=>true 大于等于里面只要满足一样则都返回true
alert(a<b) //=>true
alert(a<=b) //=>true 小于等于里面只要满足一样则都返回true
alert(1==true) //=>true
alert(0==false) //=>true 把类型进行了隐式转换的比较
alert(0==null) //=>false
alert(undefined == null) //=>true undefined 和true的值是相等的
alert(NaN == NaN) //=>false NaN是不能进行自身比较的
alert(undefined === null) //=>false undefined 和 true进行恒等比较则返回false ,因为他们值相同数据类型不同
</script>
逻辑运算符:
&& 、|| 、!
逻辑运算符的返回结果是布尔类型
在逻辑&& 和 ||必须要求两个表达式
&&如果第一个表达式为false造成短路
||如如第一个表达式为true造成短路
<script>
//&&逻辑运算符,必须要求两个表达式
alert(true && true) //=>true 在逻辑&&中只要一个表达式为true则为true
alert(true && false) //=>false
alert(false && true) //=>false 这三种里只要一个为false则为false
alert(false && false) //=>false
var i = 0,j =1
if(i++ && j--){ //i=0 隐式转换为了false
alert(true)
}else{ //=>判断出来为false
alert(false)
}
alert(i) //=>因为经过i++ 所以i=1
alert(j) //j=>1 因为断点的原因,第一个表达式为false,不会再执行第二个表达式,所以J还是等于1
</script>
<script>
//||逻辑运算符,必须要求两个表达式
alert(true || true) //=>true 在逻辑&&中只要一个表达式为true则为true
alert(true || false) //=>true
alert(false || true) //=>true 这三种里只要一个为false则为false
alert(false || false) //=>false
var i = 1,j =1
if(i++ || ++j){ //i=1 隐式转换为了true
alert(true)
}else{ //=>判断出来为ture
alert(false)
}
alert(i) //=>因为经过i++ 所以i=2
alert(j) //j=>1 因为断点的原因,第一个表达式为ture,不会再执行第二个表达式,所以J还是等于1
</script>
<script>
//!逻辑运算符,必须要求两个表达式
alert(!true) //=>返回为false
alert(!false) //=>返回为true 以上都是取反
</script>
js 表达式与运算符 详解(下)的更多相关文章
- js 表达式与运算符 详解(上)
表达式: 表达式是用于JavaScript脚本运行时进行计算的式子,可以包含常量.变量.运算符 <script> var r = 2 var pi = 3.14 var circle = ...
- [js高手之路]深入浅出webpack教程系列3-配置文件webpack.config.js详解(下)
本文继续接着上文,继续写下webpack.config.js的其他配置用法. 一.把两个文件打包成一个,entry怎么配置? 在上文中的webpack.dev.config.js中,用数组配置entr ...
- js调试工具Console命令详解
这篇文章主要介绍了js调试工具Console命令详解,需要的朋友可以参考下 一.显示信息的命令 复制代码 代码如下: < !DOCTYPE html> < html> &l ...
- JQ的offset().top与js的offsetTop区别详解
一.前言 最近在做一个图片懒加载的插件,就纵轴(Y轴)而言,我需要时时获取图片的上偏移量,好判断是否已进入视图区域,而我所理解的是offsetTop应该是跟offset().top一样的,然后陷入了因 ...
- Net is as typeof 运行运算符详解 net 自定义泛型那点事
Net is as typeof 运行运算符详解 概述 在了解运行运算符的前提我们需要了解什么是RTTI ,在任何一门面向对象的语言中,都有RTTI这个概念(即 运行时). RTTI(Run-Ti ...
- JQ的offset().top与JS的getBoundingClientRect区别详解,JS获取元素距离视窗顶部可变距离
壹 ❀ 引 我在 JQ的offset().top与js的offsetTop区别详解 这篇博客中详细分析了JQ方法offset().top与JS属性offsetTop的区别,并得出了一条offset( ...
- SSL/TLS协议详解(下)——TLS握手协议
本文转载自SSL/TLS协议详解(下)--TLS握手协议 导语 在博客系列的第2部分中,对证书颁发机构进行了深入的讨论.在这篇文章中,将会探索整个SSL/TLS握手过程,在此之前,先简述下最后这块内容 ...
- 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理
[微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...
- JS中this关键字详解
本文主要解释在JS里面this关键字的指向问题(在浏览器环境下). 阅读此文章,还需要心平气和的阅读完,相信一定会有所收获,我也会不定期的发布,分享一些文章,共同学习 首先,必须搞清楚在JS里面,函数 ...
随机推荐
- SRM 601(1-250pt,500pt)
DIV1 250pt 题意:有很多袋子,里面装有苹果和橘子(也可能没有),给出每个袋子里有多少个苹果,多少个橘子.如果每个袋子里含有水果的总数都不小于x个,则可以从每个袋子里都拿出x个水果(拿出苹果和 ...
- 爬虫技术浅析 | z7y Blog
爬虫技术浅析 | z7y Blog 爬虫技术浅析
- JVM中锁优化简介
本文将简单介绍HotSpot虚拟机中用到的锁优化技术. 自旋锁 互斥同步对性能最大的影响是阻塞的实现,挂起线程和恢复线程的操作都需要转入内核态中完成,这些操作给系统的并发性能带来了很大的压力.而在很多 ...
- Java日志记录的5条规则
日志记录是在软件开发过程中常常需要考虑的关键因素. 当产品运行出错时,日志文件通常是我们进行错误分析的首要选择. 而且,在很多情况下,它们是我们手上唯一可以用来查明发生状况和问题根本原因的信息. 可见 ...
- [置顶] c# asp.net 修改webconfig文件 配置
c# asp.net 修改webconfig文件 配置 #region 修改config文件 /// <summary> /// 修改config文件(AppSetting节点) /// ...
- SQL第二课-创建数据表
查看有多少数据库 SHOW DATABASES; 进入数据库:USE <数据库名> 举例:USE test;//进入test数据库 查看当前进入的是哪个数据库 SELECT DATABAS ...
- Oracle 同步表权限分配(同义词)
新建了同义词之后还要 分配权限
- Websense更名换帅
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable ...
- IAAS云计算产品畅想-云主机产品内涵
这里所涉及的主要还是狭义的云主机产品. 主要还是谈云主机产品中公有云产品与私有云产品相比赋予更多的含义: 产品广义理解:公有云主机的最大特点就是基础资源按需支付 从这一句话中可以体现出来两个含义: 产 ...
- const char*, char const* and char *const 分类: C/C++ OpenCV 2014-11-08 18:10 114人阅读 评论(0) 收藏
const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目. 事实上这个概念谁都有只是三种声明方式非常相似很容易记混. Bjarne在他的 ...