关于 || 和 && 运算符

var name=(document.getElementById('txtName') || '') && document.getElementById('txtName').value;

这个是从左往右依次运算

等同于

var c=document.getElementById('txtName');
var name;
if(c) {
name=c.value;
}else{
name="";
}

实际上着一整个运算是包含2部分,以 &&为分隔

先计算 document.getElementById('txtName') || ' '部分

即:如果Boolean(document.getElementById('txtName'))为true,则 || 后面的是不考虑的。然后计算&&后面的部分,将

  document.getElementById('txtName').value的值付给 name。整体返回true;

如果Boolean(document.getElementById('txtName'))为false,则 &&后面的不参与再计算,name直接赋值为 ' ',整体返回false。

这个你可以通过alert(Boolean(name)+' '+name)来验证。

  

  

JavaScript备忘录-逻辑运算符的更多相关文章

  1. JavaScript中逻辑运算符

    一.JavaScript“逻辑”运算符 很多学习 JavaScript的人,容易被 JavaScript 的逻辑运算符的运算规则搞晕.为什么呢?因为JavaScript的逻辑运算符和其他语言(比如:j ...

  2. javascript运算符——逻辑运算符

    × 目录 [1]逻辑非 [2]逻辑与 [3]逻辑或 前面的话 逻辑运算符对操作数进行布尔运算,经常和关系运算符一样配合使用.逻辑运算符将多个关系表达式组合起来组成一个更复杂的表达式.逻辑运算符分为逻辑 ...

  3. JavaScript中逻辑运算符的使用

    逻辑运算符用于对一个或多个布尔值进行逻辑运算.在JavaScript中有3个逻辑运算符,如下表所示. 运算符 描述 示例 && 逻辑与 a && b  //当a和b都为 ...

  4. JavaScript备忘录

    提取字符串substring(start,end)substr(start [, length ])JavaScript substr() 方法 --

  5. JavaScript备忘录(2)——闭包

    语句 JavaScript是解释型语言,解释器是按照顺序逐句执行的(除了进行一些少量预处理,如将函数声明提前). 顺序是由流程控制语句来控制的,常用的流程控制语句包括: 条件控制语句:if...els ...

  6. JavaScript备忘录(1)——内置类型

    JavaScript有一些内置类型,还有很多常用的内置的方法,本文稍作总结,以备查阅. 值类型 我的理解,值类型是分配在栈上的,而引用类型(当然也包括引用类型内部的值类型)是分配在堆上的.值类型是不可 ...

  7. javascript 备忘录

    JS语法 javascript 对象: var cars=new Array("Audi","BMW","Volvo"); 声明变量类型 当 ...

  8. JavaScript备忘录-闭包(2)

    闭包的定义 闭包是指函数有自由独立的变量.换句话说,定义在闭包中的函数可以“记忆”它创建时候的环境. 闭包的浅显理解 function makeFunc() { var name = "Mo ...

  9. javascript中逻辑运算符&&和||的返回值问题

    今天在做逻辑运算符的时候遇到一个小问题一直转不过弯来,var a=(undefined&&123)||(3||5)的返回值是什么? 首先是||的返回值问题: ||的返回值会返回最早遇到 ...

随机推荐

  1. [你必须知道的.NET]第三十三回,深入.NET 4.0之,Lazy<T>点滴

    发布日期:2009.10.29 作者:Anytao © 2009 Anytao.com ,Anytao原创作品,转贴请注明作者和出处. 对象的创建方式,始终代表了软件工业的生产力方向,代表了先进软件技 ...

  2. Linux网络编程3——socket

    宏定义 首先介绍两个宏定义,看如下代码 代码1 /************************************************************************* & ...

  3. 阿里云centos6搭建vpn

    下载脚本 wget http://latrell.me/wp-content/uploads/vpn_centos6.sh 运行脚本 chmod a+x vpn_centos6.sh ./vpn_ce ...

  4. 267. Palindrome Permutation II

    题目: Given a string s, return all the palindromic permutations (without duplicates) of it. Return an ...

  5. Android 去掉title bar的3个方法

    1. Java代码实现 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstance ...

  6. 使AJAX调用尽可能利用缓存特性

    优化网站设计(十四):使AJAX调用尽可能利用缓存特性 前言 网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议.这方面的研究一直没有停止过,我在不同的场合也分享过这样的 ...

  7. 模糊查询的like '%$name$%'的sql注入避免

    Ibatis like 查询防止SQL注入的方法 Ibatis like 查询防止SQL注入的方法 mysql: select * from tbl_school where school_name ...

  8. wiremock之录制和回放

    Recording is done by starting the standalone runner like this: $ java -jar wiremock-1.50-standalone. ...

  9. HDU 4643 GSM 算术几何

    当火车处在换基站的临界点时,它到某两基站的距离相等.因此换基站的位置一定在某两个基站的中垂线上, 我们预处理出任意两基站之间的中垂线,对于每次询问,求询问线段与所有中垂线的交点. 检验这些交点是否满足 ...

  10. sqlserver取得本月一号

    select convert(datetime,convert(varchar(7),getdate(),120)+'-01',120) select convert(datetime,convert ...