聊聊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报错是比较常见的一个情景,尤其是有一些错误可能我们在本地测试的时候测试不出来,当发布到线上之后才可以发现,如果抢救及时,那还好,假如很晚才发 现,那就可能造成很大的损失了.如果我们前 ...
随机推荐
- 用C#实现通用守护进程
1. 下载 源码下载:http://pan.baidu.com/s/1vqDA2 安装包下载:http://pan.baidu.com/s/1sjmEB0p 2. 安装注意事项 在配置档中配置你要守护 ...
- Ajax-$.ajax()方法详解
jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(p ...
- ARCproject中加入非ARC文件,或者非ARC环境中加入ARC文件
ARC与非ARC在一个项目中同一时候使用, 选择项目中的Targets,选中你所要操作的Target,选Build Phases,在当中Complie Sources中选择须要ARC的文件双击,并在输 ...
- Java用链表实现栈和队列
1.用链表实现栈 package stack; /** * * @author denghb * */ class Link { public long dData; public Link next ...
- HDU-4879-ZCC loves march(map+set+并查集)
Description On a m*m land stationed n troops, numbered from 1 to n. The i-th troop's position can be ...
- mybatis09
1mybatis开发dao的方法 .1SqlSession作用范围 是使用局部变量.成员变量,还是形参? 1.1.1SqlSessionFactoryBuilder SqlSessionFactory ...
- linux安装php出现的各种错误解决方案
configure: error: Try adding --with-zlib-dir=<DIR>. Please check config.log for more informati ...
- MAC上更新Ruby失败解决办法
尝试用RVM升级Ruby http://blog.csdn.net/lissdy/article/details/9191351 如果碰到下面问题 Searching for binary rubie ...
- CHENEY-YANG'S BLOG(cheney-yang)
This is Cheney-Yang's blog ! Welcome to here ! This is Cheney-Yang's blog ! Welcome to here ! This i ...
- git的一些基础命令
Git常用命令 请确保已经安装里git客户端 一般配置 git --version //查看git的版本信息 git config --global user.name //获取当前登录的用户 git ...