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里面,函数 ...
随机推荐
- ACM1228_STL的应用
#include<iostream> #include<string> #include<map> using namespace std; map<stri ...
- Call-time pass-by-reference has been deprecated
Warning: Call-time pass-by-reference has been deprecated解决方法 第一种方法: 修改php.ini就可以了. 1. 在PHP.ini中搜索关键字 ...
- jQuery选择器总结 转
jQuery选择器总结 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 3 ...
- Java生成缩略图Thumbnailator(转载)
转自(http://rensanning.iteye.com/blog/1545708) Thumbnailator 是一个为Java界面更流畅的缩略图生成库.从API提供现有的图像文件和图像对象的缩 ...
- [置顶] Java启动命令大观
Java启动命令是所有java应用程序的入口,通过它来启动Java运行时环境,并加载相关的class.不过由于IDE的盛行,我们Java程序员中的大多数的并不是非常的了解Java启动命令.本文希望做一 ...
- libcurl使用演示样例
简要说明:C++使用libcurl訪问"www.baidu.com".获取返回码和打印出http文件 /* * @ libcurl使用演示样例 * @ 2014.04.29 * @ ...
- 基于XMPP实现的Openfire的配置安装+Android客户端的实现[转]
最近在整理一些这方面的资料,闲话少说,咱还是直奔主题吧 :) http://blog.csdn.net/sk719887916/article/details/40541163 https://git ...
- Spark1.0.0 监测方法
Spark1.0.0能够通过下面几种方式来对Spark应用程序进行监控: Spark应用程序的WebUI或者Spark Standalone的集群监控 指标,然后通过支持指标收集的集群监控 ...
- MySQL 一致性读 深入研究 digdeep博客学习
http://www.cnblogs.com/digdeep/p/4947694.html 一致性读,又称为快照读.使用的是MVCC机制读取undo中的已经提交的数据.所以它的读取是非阻塞的. 相关文 ...
- Java设计模式02:常用设计模式之工厂模式(创建型模式)
一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类: 1)简单工厂模式(Simple Fact ...