我们的代码在部署在线上之前,都要进行打包,打包之后的代码都是一段压缩之后的代码。可能有人会问了,这跟这篇文章的主题有什么关系呢?先别急,我们先看一下打包之后,开头的这段代码:

!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.anyizbrecord=e():t.anyizbrecord=e()}

上面压缩的代码看着费劲,那我把代码展开一下

!function(t, e) { "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.anyizbrecord = e() : t.anyizbrecord = e()
}(window,(function(){})())

可以看到里面有“很多”三元表达式。这就引出我们这篇文章的主题了。

我们先看一下三元的用法:
1、基本语法:
条件 ? 表达式1 : 表达式2

含义:条件为 true ,执行表达式1,为 false 执行表达式2

2、多条件运算
条件1 ? 表达式1 : 条件2 ? 表达式2 : 条件3 ? 表达式3 : 表达式4

含义:当条件1为true执行表达式1,条件1返回false,执行条件2,条件2返回false,执行条件3,条件3如果返回true,则执行表达式3,否则执行表达式4,以此类推。(当然这种方式也可以通过 if() else if() else() {} 来实现,多条件运算显得更简洁)

结合多条件运算我们分析一下这段代码

!function(t, e) { "object" == typeof exports && "object" == typeof module ?    条件1  // commonjs规范module.exports = e() :   表达式1"function" == typeof define && define.amd ?   条件2   // AMD 规范define([], e) :   表达式2"object" == typeof exports ?   条件3    // commonjs规范exports.anyizbrecord = e() :  表达式3 t.anyizbrecord = e()       表达式4    //   浏览器全局变量(在window上定义全局变量)
}(window,(function(){})())

通过上面 多条件运算中的含义,我们知道上面代码的执行顺序,得到了最终实现的效果:
根据定义的方法来确定不同的加载规范,这样就可以兼容各种加载规范了。

JS三元运算和多条件运算相关推荐

  1. JS中bignumber处理高精度小数运算的使用

    JS中bignumber处理高精度小数运算的使用 安装或引用 bignumber.js的API地址: 静态方法 实例方法 项目开发中发现精度丢失的问题,如0.1+0.2 = 0.30000000000 ...

  2. iOS 获取字符串数学公式、字符串条件运算和逻辑运算的计算结果

    前言 开发中遇到了多个输入框计算联动,通过服务器返回的公式自动算结果并显示在相对应的输入框中. 例如以下公式 @"{width}*{height}*0.5+1" 或者更复杂的公式, ...

  3. 与运算和取余运算的配对条件

      偶然在一个算法解析中,看到作者用与运算来代替取余运算,感觉属实有点装逼,于是有了钻研一下的想法.   首先通过实验来看看,与运算和取余运算存在一个怎样的关系. for i in range(100 ...

  4. js三元判断html,JS逻辑运算符 三元表达式

    假如你打算把一个变量赋予对象类型的值,但是现在还没有赋值,那么你可以用null表示此时的状态(证据之一就是typeof null 的结果是object): 相反,假如你打算把一个变量赋予原始类型的值, ...

  5. MySQL关系运算和连接运算,数据库的关系运算和完整性约束

    对关系数据库进行查询统计时,需要查询到用户感兴趣的数据,这就需要对关系及关系间进行一定的运算.本篇主要讲述关系运算和关系的完整性约束,理解关系操作的含义,了解传统的集合运算,掌握关系代数中基本关系运算 ...

  6. mysql关系运算_数据库关系运算

    前言 前面已经说了数据系统的概述了,关系模型是目前用得最多的数据模型,其中一个优点就是:有严格的数学理论根据.本文就是来讲解数据库中的各种关系运算的!本文不做数学概念的深入,只要理解相关的概念即可! ...

  7. [Python从零到壹] 四十九.图像增强及运算篇之顶帽运算和底帽运算

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  8. python字符位运算_python 字符串位运算-女性时尚流行美容健康娱乐mv-ida网

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页  > 高级搜索 [ python ] pyth ...

  9. Halcon形态学处理-腐蚀、膨胀、开运算、闭运算、顶帽运算和底帽运算

    提示:文章参考了网络上其他作者的文章,以及相关书籍,如有侵权,请联系作者. 文章目录 前言 一.腐蚀和膨胀 1.腐蚀 2.膨胀 二.开运算和闭运算 1.开运算 2.闭运算 三.顶帽运算和底帽运算 1. ...

最新文章

  1. android在线切图工具,9Cut切图工具
  2. java~mac下的终端工具oh-my-zsh
  3. shell 监控局域网的主机是否up(转)
  4. Android用户界面开发(16):ImageSwitcher
  5. c字符串中包含双引号_码哥学Python,一起解密神秘的字符串密码
  6. 【转】linux之fsck命令
  7. java框架讲解ppt_经典框架spring介绍课件.ppt
  8. 信息学奥赛一本通(2035:【例5.2】平移数据)
  9. 计算机excel怎么添加实线边框,给excel表格添加边框线
  10. mysqldump 使用 --set-gtid-purged
  11. Excel-VBA 快速上手(三、数组和字典)
  12. 卡方检验值转换为P值
  13. 基于英飞凌TC397芯片Mcal配置之Can模块的配置
  14. 【mmdetection系列】mmdetection之backbone讲解
  15. ramdisk.img
  16. 发邮件窗体【支持编辑邮件模板,使用wse多线程上传附件及发邮件(带附件)】以及在服务器端自动发邮件...
  17. Golang的大端序和小端序
  18. 国内舆情监测系统,国内舆情监测通过什么技术实现
  19. algorithm头文件下的常用函数-学习笔记
  20. stm32定时器与定时器中断

热门文章

  1. 《Visual C# 程序设计》课程学习(10)——第10章 Windows 窗体应用程序开发
  2. 智能卡公共汽车收费系统
  3. 高嘌呤食物搜索引擎_体检查出尿酸升高,鱼和肉还能吃吗?
  4. camera主观测试分析软件,camera主观测试经验分享.ppt
  5. 关于联合开发的小知识点
  6. ICSL WEB攻击模式及防范方法
  7. Java --- JVM年轻代与老年代
  8. 使用Word的一些技巧记录
  9. vue - vue中实现对图片添加水印和截图的功能
  10. 你的APP接入客服系统了吗?