【JS】 || 和 &&和 ! 操作的那些事

大家都知道,不论是.NET还是java或是其他语言都会有  或 与 非的操作,这里我要讨论的是 JS里面的 || 和 && 操作。因为项目里面用到了 || 的操作,本来也不是用不到,只是突然想用一下,然后看了看其他的博客,发现原来这个东西没那么简单,JS真是高深,还是好好研究的好。书归正传:

文章参考:http://www.jb51.net/article/21339.htm

||操作 :首先声明:在js逻辑运算中,0、""、null、false、undefined、NaN都会判为false。||操作就是如果前边的表达式为false那么就取后边的值。比如 <a>||<b> 如果<a>是false,那么取<b>的值,同理:<a>||<b>||<c>只要<a><b>都为false 那么取<c>。所以我们看比较高级的js代码里经常会有这种代码:  var obj=obj||{};(如果obj为undefined或者空,那么重新定义为{})

&&操作:如果前边的表达式为true,那么取后边的值,如果前边任意一个表达式为false,那么取false这个值。这句话用代码表示吧:

        alert(typeof ("11" && undefined && "test" && {}));  //结果  undefined
        alert(typeof([] && "test" && 5));                   //结果   number  取值 5

那么 ||操作和 &&操作有什么用呢。它可以精简代码。例如:

   function test() {
            var a = 4;
            //if (a > 5) { alert("a是大于5的"); } else { alert("a是小于5的"); }
            var result = a > 5 && "a是大于5的" || "a是小于5的";
            alert(result);//结果 a是小于5的,如果看不懂,在仔细看一下他们(||  &&)的定义
        }

结尾:你知道这些值是什么吗?

        alert(undefined);     //undefined
        alert(typeof (null)); //object
        alert(typeof (undefined));//undefined
        alert(typeof (NaN));  //number
        alert(typeof (5));   //number
        alert(typeof (!!5));  //boolean
        alert(parseInt("aa123"));  //NaN
        alert(parseInt("123aa")); //123

以上代码验证地址http://imfyp.com/jsdemo/jstest.html

【JS】 || 和 &&和 ! 操作的那些事

时间: 2024-08-10 19:17:56

【JS】 || 和 &&和 ! 操作的那些事的相关文章

原生JS与jQuery操作DOM有什么异同点?

本文和大家分享的主要是原生JS与jQuery操作DOM相关内容,一起来看看吧,希望对大家学习javascript有所帮助. 一.创建元素节点 1.1 原生 JS 创建元素节点 document.createElement("p"); 1.2 jQuery 创建元素节点 $('<p></p>');` 二.创建并添加文本节点 2.1 原生JS创建文本节点 document.createTextNode("Text Content"); 通常创建文

js数组的操作

转载 js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多, 自以为js高手的自己居然无从下手,一下狠心,我学!呵呵.学了之后才知道,js数组的功能强大很,远比VB,C#强多了,大家慢慢看吧 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限

node.js连接MySQL操作及注意事项

node.js作为服务端的js运行环境已经出现了有几年了,最近我有个朋友也在做这方面的开发,但是也是刚刚接触,遇到了很多坑.前几天他们在操作数据库的时候出现了点问题,后来我们一起看了看,其实都是node本身机制的一些问题,这里总结一下给新手做借鉴. 我朋友的数据库采用的是MySQL.(至于为什么不用mongoDB,这个是公司上层选型的结果,因为很多新手朋友似乎总是觉的node.js就是应该和mongoDB联系在一起,所以这里简单说下).我后来写了一个简单的小例子,整个小例子使用了express框

js css样式操作代码(批量操作)

js css样式操作代码(批量操作) 作者: 字体:[增加 减小] 类型:转载 时间:2009-10-09 用js控制css样式,能让网页达到良好的的用户体验甚至是动画的效果.并且考虑到效率. 我们用js书写css样式通常会用下面的两种方式: 一般情况下我们用js设置元素对象的样式会使用这样的形式: 复制代码 代码如下: var element= document.getElementById(”id”); element.style.width=”20px”; element.style.he

JS的简单操作和表单以及事件

HTML:主要用于往页面上放置所需要的控件. CSS:主要用来控制页面以及上面控件的样式. JS:主要用来控制页面上的特效以及数据交互. JS也分为顺序,条件(IF()... ELSE()),循环(FOR())三种语句,与C#基本一致. JS定义变量统一用var,定义数组不固定长度和类型,类似C#中的集合. JS的简单操作: DOM操作: 一.window: 1.window.onload 页面打开完再执行后面的操作 2.window.open(1,2,3,4) - 打开新页面, 1 - 打开页

Numeral.js – 格式化和操作数字的 JavaScript 库

Numeral.js 是一个用于格式化和操作数字的 JavaScript 库.数字可以格式化为货币,百分比,时间,甚至是小数,千位,和缩写格式,功能十分强大.支持包括中文在内的17种语言. 您可能感兴趣的相关文章 太赞了!超炫的页面切换动画效果[附源码下载] 创意无限!一组网页边栏过渡动画[附源码下载] 真是好东西!13种非常动感的页面加载动画效果 你见过吗?9款超炫的复选框(Checkbox)效果 时尚设计!三种奇特网格加载效果[附源码下载] 源码下载      在线演示 本文链接:Numer

json的js和C#操作

C#端的WebService接口接收json格式数据,处理后以json格式返回result using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; using Newtonsoft.Json.Linq; namespace Web.WebService { /// <summary> /// PhoneGPS 的摘要说明 ///

js子窗口操作父窗口的标签

======================================父窗体 <input id="aaaa" type="button"/> function upfile()         {                         resultValue = window.showModelessDialog("ceshi.aspx?file=DownFile", window, "dialogWidt

js 文件的操作

js 文件的操作(ActiveXObject仅支持IE) 一.参数解释: 1. filename: filename //文件路径 2.iomode: var forReading=1;只读var forWriting =2;//写var forAppending=8;//追加 3.create: true//创建: false//不创建 4.format: var tristateFalse=0;//以ASCII格式打开(默认) va tristateTrue=-1;//以Unicode格式打