聊聊js运算符 ‘与(&&)’和‘ 或(||)’
一,先来几个问题,看给位能都全部答对。
var objA1 = {x:1};
var objA2 = {x:2};
var resultA = objA1 && objA2;
//请问resultA是什么??
var objB1 = { x: 1 };
var objB2 = null;
var resultB = objB1 && objB2;
//请问resultB是什么?
var objC1 = null;
var objC2 = undefined;
var resultC = objC1 && objC1;
//请问resultC是什么?
二,上面的答案
1,objA2
2,objB2
3,null
如果各位有没有答对的,请继续往下看。
三,javascript 运算符与(&&)或(||)’简单总结
1,当运算符两边都是bool值时。
这个无需多说,地球人都知道。
2,当运算符是两边是真值(假值)时。
- 关于真值和假值,不知道的可以百度一下,我这里先简要介绍一下,js中除了:false,”0,‘’(空字符串),null,undefinded,NAN ”六个是假值,其他的都是真值,这里需注意: '0'、'null'、'false'、{}、[]也都是真值。在代码中经常看到如下代码:
var o = { x: "test" };
if (o) {
document.writeln(o.x);//因为os是真值,所以这里输出:test;
};- 表达式“&&”左右都是真值:返回右边的值
- 表达式“&&”左右有一个是假值是:返回假值
- 表达式“&&”左右都是假值:返回左边值
- 表达式“||”左右都是真值,返回左边操的值
- 表达式“||”左右有一个是假值,返回真值
- 表达式“||”左右都是假值,返回右边的值
四,运算符与(&&)或(||)其他总结
1, “&&”的行为有时称谓‘短路’,我们偶尔也会看到一些代码利用了这些特性来又条件的执行代码,例如下面的两行代码是完全等价的。
if (a==b) {
test();//当a和b相同时,执行test();
}
(a == b) && test();//同上
2,当“&&”右侧的表达式有副作用时(赋值,递增,函数调用表达式)要格外小心,因为这些带有副作用的表达式的执行依赖于左侧操作数的计算结果,
聊聊js运算符 ‘与(&&)’和‘ 或(||)’的更多相关文章
- JS运算符
JS运算符: 使用的运算符的时候不需要声明变量,运算符非变量:1.算术运算符 + - * / % (%为取余数运算符) (自增运算符++) (自减运算符 --) + 运算符作用:1.数值相加 2.字符 ...
- js 运算符优先级
在看jquery源码,仔细看入口函数的时候,有点懵了.看到与或.多重三目,傻傻的分不清,就代码仔细的区分下运算符优先级,以前都是呼呼的飘过.看来任何一个细节都不能忽略,不然效率极低.. !functi ...
- js运算符单竖杠“|”的用法和作用及js数据处理
js运算符单竖杠“|”的作用 很多朋友都对双竖杠“||”,了如指掌,因为这个经常用到.但是大家知道单竖杠吗?今天有个网友QQ问我,我的 javascript实用技巧,js小知识 , 这篇文章里面,js ...
- js值类型转换(boolean/String/number),js运算符,if条件,循环结构,函数,三种弹出框
js值类型转换 number | string | boolean boolean类型转换 num = 0; var b1 = Boolean(num); console.log(b1) 转化为数字类 ...
- js运算符的一些特殊应用
作者: 小文 来源: http://www.cnblogs.com/daysme/ 时间: 2017/3/2 17:21:03 本文集合了了js运算符的一些特殊应用. js位运行符的运用. js运算符 ...
- js课程 2-6 js如何进行类型转换及js运算符有哪些
js课程 2-6 js如何进行类型转换及js运算符有哪些 一.总结 一句话总结: 1.所有类型->布尔类型(为假的情况)有哪些(6种)? 1)字符串('')2)整型(0)3)浮点型(0.0)4) ...
- js 运算符的执行顺序
js 运算符的执行顺序 js 运算符优先级 Operator Precedence 下表从最高(21)到最低(1)优先顺序排列 left-to-right 从左到右 / 先左后右 right-to-l ...
- 聊聊js中的typeof
内容: 1.typeof 2.值类型和引用类型 3.强制类型转换 typeof 官方文档:typeof 1.作用: 操作符返回一个字符串,指示未经计算的操作数的类型. 2.语法: typeof ope ...
- 【原】聊聊js代码异常监控
在平时的工作,js报错是比较常见的一个情景,尤其是有一些错误可能我们在本地测试的时候测试不出来,当发布到线上之后才可以发现,如果抢救及时,那还好,假如很晚才发 现,那就可能造成很大的损失了.如果我们前 ...
随机推荐
- Ajax 表单验证 实现代码
兼容: opera 9.6 + chrome 2.0 + FF 3 + IE 6 效果:一边输入一边实现验证 image 环境:ruby 1.8.6 + rails 2.1.0 + windows 核 ...
- sed和awk最佳入门教程
文档<sed和awk最佳入门教程>——摘自<实战linux shell编程与服务器管理>,简单易懂,适合初学者. 下载地址:http://download.csdn.net/d ...
- C# 动态创建出来的窗体间的通讯 delegate1
附件 http://files.cnblogs.com/xe2011/CSharp_WindowsForms_delegate01.rar 需要每个窗体是独立存在,禁止相与引用窗体 这样干净并且可以反 ...
- 在Windows下使用MinGW静态编译Assimp
使用MinGW静态编译Assimp 到了5月份了,没有写一篇日志,于是自己从知识库里面拿出一篇文章充数吧.这次将要解说怎样在Windows下使用MinGW静态编译Assimp. Assimp是眼下比較 ...
- STL algorithm算法merge(34)
merge原型: std::merge default (1) template <class InputIterator1, class InputIterator2, class Outpu ...
- ExecutorService(转)
ExecutorService 建立多线程的步骤: 1.定义线程类 class Handler implements Runnable{ } 2.建立ExecutorService线程池 Execut ...
- 24小时学通LINUX内核系列
http://www.cnblogs.com/lihuidashen/category/667475.html
- ubuntu 14.04/15.10 安装基于eclipse的android app开发环境
一开始是装了ubuntu15.10,不知道是我的x200机器太old还是iso镜像有问题,总是各种莫名的引导不起来.有时候刚刚装好的干净系统,只install了一个vim和openssh,重启,然后就 ...
- bootstrap02导航菜单
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- arcgis engine - 添加图例,指北针.
esri帮助提供了使用比例尺的方法: Working with map surrounds 主要代码为: public void AddMapSurround(IPageLayout pageLayo ...