丧心病狂的代码压缩好像违背了愉快阅读的本真,所以刨根问底想要了解个究竟,最后发现这不只是前端大牛装逼卖萌的绝技,也是代码洁癖爱好者的利器,毕竟这样看上去确实蛮优雅的;

一开始,我们接触到的代码是这样的

if(a) {  console.log( 'xxx') }

else{   console.log( 'ccc') }

后来又接触到 a?('xxx'):('ccc') ;

然后又出现了更加令人发指的代码缩写,难道代码压缩器们都是这么干的么?不过这样使用前最好先定义一下变量

a&&'xxx'||'ccc'

if的简写:

if(c){ console.log('piupiupiu')}

c&&console.log('piupiupiu')

介看起来好清爽啊,然而对于代码阅读来说是不是违背了愉快阅读的初衷,为了让网页渲染机器人读的快一点点,页面渲染快一丢丢,提高那么一丝丝的用户体验,然而对于那些网速奇快的国度来说,并没有什么卵用;

||或操作会返回优先返回操作符左边的值;

&&操作会先把左右的值都转换为bool布尔值类型,如果左侧的值为true则返回右侧的值(无论右侧的值是真或假,都会返回),否则返回左侧的值,包括'',[];

以下是当&&的左边为false时的返回类型

原文理解来自于工头讲解和  http://www.tashan10.com/javascript-de-ling-huo-yun-yong/

极简主义,对逻辑操作符||和&&深度运用的理解的更多相关文章

  1. .NET开源项目 QuarkDoc 一款自带极简主义属性的文档管理系统

    有些话说在前头 因为公司产品业务重构且功能拆分组件化,往后会有很多的接口文档需要留存,所以急需一款文档管理系统.当时选型要求3点: 1.不能是云平台上的Saas服务,整个系统都要在自己公司部署维护(数 ...

  2. JavaScript学习总结(十三)——极简主义法编写JavaScript类

    前两天在网上无意中发现了一篇使用极简主义法定义JavaScript类的文章,原文链接,这个所谓的"极简主义法"我还是第一次听说,是荷兰程序员Gabor de Mooij提出来的,这 ...

  3. 我喜欢的两个js类实现方式 现在再加上一个 极简主义法

    闭包实现 变量是不会变的:) var myApplication = function(){ var name = 'Yuri'; var age = '34'; var status = 'sing ...

  4. 流动python - 一个极简主义event制

    event至少该系统的核心,以满足: 1.存储容器事件,可以被添加到事件来删除 2.触发事件fire 守则. class Event(list): def __call__(self, *args, ...

  5. .NET Core实战项目之CMS 第八章 设计篇-内容管理极简设计全过程

    写在前面 上一篇文章中我带着大家进行了权限部分的极简设计,也仅仅是一个基本的权限设计.不过你完全可以基于这套权限系统设计你的更复杂的权限系统,当然更复杂的权限系统要根据你的业务来进行,因为任何脱离实际 ...

  6. [深度学习工具]·极简安装Dlib人脸识别库

    [深度学习工具]·极简安装Dlib人脸识别库 Dlib介绍 Dlib是一个现代化的C ++工具箱,其中包含用于在C ++中创建复杂软件以解决实际问题的机器学习算法和工具.它广泛应用于工业界和学术界,包 ...

  7. [深度应用]·Keras极简实现Attention结构

    [深度应用]·Keras极简实现Attention结构 在上篇博客中笔者讲解来Attention结构的基本概念,在这篇博客使用Keras搭建一个基于Attention结构网络加深理解.. 1.生成数据 ...

  8. 逻辑式编程语言极简实现(使用C#) - 2. 一道逻辑题:谁是凶手

    本系列前面的文章: 逻辑式编程语言极简实现(使用C#) - 1. 逻辑式编程语言介绍 这是一道Prolog经典的练习题,中文翻译版来自阮一峰的文章<Prolog 语言入门教程>. 问题 B ...

  9. 逻辑式编程语言极简实现(使用C#) - 3. 运行原理

    本系列前面的文章: 逻辑式编程语言极简实现(使用C#) - 1. 逻辑式编程语言介绍 逻辑式编程语言极简实现(使用C#) - 2. 一道逻辑题:谁是凶手 第二天,好为人师的老明继续开讲他的私人课堂. ...

随机推荐

  1. 通过命令名称查询进程id

    linux 中如何通过命令名称查询出进程的id呢? 例如,我想查询java的进程id: ps -ef |grep java |grep -v grep|awk '{print $2}' 或者: ps ...

  2. leetcode 最大矩形和

    1.枚举法(超时) public class Solution { public int largestRectangleArea(int[] height) { int max=-1; for(in ...

  3. HDU 3555 Bomb(数位DP)

    Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Subm ...

  4. [经典] Best Time to Buy and Sell Stock

    这一系列求最优值的问题变种挺多 1. Say you have an array for which the ith element is the price of a given stock on ...

  5. poj 2631 Roads in the North【树的直径裸题】

    Roads in the North Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2359   Accepted: 115 ...

  6. nginx安装lua-nginx-module模块

    转载注明地址:http://www.cnblogs.com/dongxiao-yang/p/5312285.html 本文主要采用手动源码安装的方式将lua-nginx模块编译到nginx源码内部 一 ...

  7. textarea文本域

    textarea中换行问题 一旦用nl2br函数处理会多个\n导致十分难看 也无法形成文本框默认效果 前台的html如果用<br/>处理也会给后台的编辑造成困难 所以在编辑的时候这样处理 ...

  8. 用ChooseALicense帮自己选一个开源license,然后用AddALicense给自己的github自动加上license文件

    在我之前的一篇博客里面介绍过tl;drLegal ——开源软件license的搜索引擎,可以很方便的查询各种license,并且给出了很简洁的解释.今天又发现了另外一个帮助你选择你的开源软件licen ...

  9. 用户浏览器关闭cookie处理方法

    方法一: function getSessionId(){ var c_name = "jsessionid"; // alert("cookie:"+docu ...

  10. 使用DBOutputFormat把MapReduce产生的结果集导入到mysql中

    数据在HDFS和关系型数据库之间的迁移,主要有以下两种方式 1.按照数据库要求的文件格式生成文件,然后由数据库提供的导入工具进行导入 2.采用JDBC的方式进行导入 MapReduce默认提供了DBI ...