JS三元运算和多条件运算
我们的代码在部署在线上之前,都要进行打包,打包之后的代码都是一段压缩之后的代码。可能有人会问了,这跟这篇文章的主题有什么关系呢?先别急,我们先看一下打包之后,开头的这段代码:
!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三元运算和多条件运算相关推荐
- JS中bignumber处理高精度小数运算的使用
JS中bignumber处理高精度小数运算的使用 安装或引用 bignumber.js的API地址: 静态方法 实例方法 项目开发中发现精度丢失的问题,如0.1+0.2 = 0.30000000000 ...
- iOS 获取字符串数学公式、字符串条件运算和逻辑运算的计算结果
前言 开发中遇到了多个输入框计算联动,通过服务器返回的公式自动算结果并显示在相对应的输入框中. 例如以下公式 @"{width}*{height}*0.5+1" 或者更复杂的公式, ...
- 与运算和取余运算的配对条件
偶然在一个算法解析中,看到作者用与运算来代替取余运算,感觉属实有点装逼,于是有了钻研一下的想法. 首先通过实验来看看,与运算和取余运算存在一个怎样的关系. for i in range(100 ...
- js三元判断html,JS逻辑运算符 三元表达式
假如你打算把一个变量赋予对象类型的值,但是现在还没有赋值,那么你可以用null表示此时的状态(证据之一就是typeof null 的结果是object): 相反,假如你打算把一个变量赋予原始类型的值, ...
- MySQL关系运算和连接运算,数据库的关系运算和完整性约束
对关系数据库进行查询统计时,需要查询到用户感兴趣的数据,这就需要对关系及关系间进行一定的运算.本篇主要讲述关系运算和关系的完整性约束,理解关系操作的含义,了解传统的集合运算,掌握关系代数中基本关系运算 ...
- mysql关系运算_数据库关系运算
前言 前面已经说了数据系统的概述了,关系模型是目前用得最多的数据模型,其中一个优点就是:有严格的数学理论根据.本文就是来讲解数据库中的各种关系运算的!本文不做数学概念的深入,只要理解相关的概念即可! ...
- [Python从零到壹] 四十九.图像增强及运算篇之顶帽运算和底帽运算
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- python字符位运算_python 字符串位运算-女性时尚流行美容健康娱乐mv-ida网
女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 [ python ] pyth ...
- Halcon形态学处理-腐蚀、膨胀、开运算、闭运算、顶帽运算和底帽运算
提示:文章参考了网络上其他作者的文章,以及相关书籍,如有侵权,请联系作者. 文章目录 前言 一.腐蚀和膨胀 1.腐蚀 2.膨胀 二.开运算和闭运算 1.开运算 2.闭运算 三.顶帽运算和底帽运算 1. ...
最新文章
- android在线切图工具,9Cut切图工具
- java~mac下的终端工具oh-my-zsh
- shell 监控局域网的主机是否up(转)
- Android用户界面开发(16):ImageSwitcher
- c字符串中包含双引号_码哥学Python,一起解密神秘的字符串密码
- 【转】linux之fsck命令
- java框架讲解ppt_经典框架spring介绍课件.ppt
- 信息学奥赛一本通(2035:【例5.2】平移数据)
- 计算机excel怎么添加实线边框,给excel表格添加边框线
- mysqldump 使用 --set-gtid-purged
- Excel-VBA 快速上手(三、数组和字典)
- 卡方检验值转换为P值
- 基于英飞凌TC397芯片Mcal配置之Can模块的配置
- 【mmdetection系列】mmdetection之backbone讲解
- ramdisk.img
- 发邮件窗体【支持编辑邮件模板,使用wse多线程上传附件及发邮件(带附件)】以及在服务器端自动发邮件...
- Golang的大端序和小端序
- 国内舆情监测系统,国内舆情监测通过什么技术实现
- algorithm头文件下的常用函数-学习笔记
- stm32定时器与定时器中断