[Javascript] Ternary Conditionals
/**
Ternary Conditionals
*/
//
//**Bad**
//
var isArthur = false;
var weapon;
if(isArthur){
weapon = "Excalibur";
}else{
weapon = "Longsword";
}
//
//**Good**
//
var weapon = isArthur ? "Excalibur" : "Longsword";
//
//**Be careful**
//
console.log("Current weapon: "+ isArthur ? "Excalibur" : "Longsword");//This will log out "Excalibur"
/*Why? we set isArthur = false;
Because propriety level '+' > '?', and in Javascript only undefined, null, false, 0, NaN
that we consider are false, other always evaluate as "truthy".
So "String" ? "Excalibur" : "Longsword" --> "Excalibur"*/
//
//**To Fix**
//
console.log("Current weapon: "+ (isArthur ? "Excalibur" : "Longsword")); //--> "Longsword" /**
Compound ternary conditionals
*/
var isArthur = true;
var isKing = false;
console.log("Current weapon: "+ (isArthur && isKing ? "Excalibur" : "Longsword")); //--> "Longsword" /**
Ternaries can take action
*/
console.log(isArthur && isKing ? alert("Hail Arthur, King of the Britons!") :
alert("Charge on, ye Knight, for the glory of the King!")); //--> "Charge on, ye Knight, for the glory of the King!" /**
Build and choose functions on the fly
*/
console.log(isArthur && isKing ? function(){
alert("Hail Arthur, King of the Britons!");
}() :
function(){
alert("Charge on, ye Knight, for the glory of the King!")
}());
//
//**Be careful**
//
/*
Remember that adding the parentheses calls the function expression!
*/ /**
Multiple actions in ternaries
*/
console.log(isArthur && isKing ? (weapon = "Excalibur" , helmet = "Goosewhite"):
(weapon = "Longsword" , helmet = "Iron Helm")); /**
Lastly, ternaries can be nested!
*/
var isArthur = true;
var isKing = false;
var isArcher = true;
var weapon;
var helmet;
isArthur && isKing ? (weapon = "Excalibur", helmet="Goosewhite")
:
isArcher ? (weapon = "Longbos", helmet="Mail Helm")
: (weapon = "Longsword" , helmet = "Iron Helm"); // --> weapon = "Longbos", helmet="Mail Helm"
//
//**NOTICE**: This is not easy to read! Don't do this!
//
[Javascript] Ternary Conditionals的更多相关文章
- JavaScript基础入门 - 01
JavaScript入门 - 01 准备工作 在正式的学习JavaScript之前,我们先来学习一些小工具,帮助我们更好的学习和理解后面的内容. js代码位置 首先是如何编写JavaScript代码, ...
- 新手怎么学JS?JavaScript基础入门
新手应该怎么学习JS?JavaScript入门 - 01 准备工作 在正式的学习JavaScript之前,我们先来学习一些小工具,帮助我们更好的学习和理解后面的内容. js代码位置 首先是如何编写Ja ...
- 新手该如何学习JavaScript ?
JavaScript入门 - 01 准备工作 在正式的学习JavaScript之前,我们先来学习一些小工具,帮助我们更好的学习和理解后面的内容. js代码位置 首先是如何编写JavaScript代码, ...
- [译]Javascript中的Ternary operator
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- 读高性能JavaScript编程 第四章 Conditionals
if else 和 switch && 递归 if else 和 switch 一般来说,if-else 适用于判断两个离散的值或者判断几个不同的值域.如果判断多于两个离散 ...
- javascript 核心语言笔记 4 - 表达式和运算符
表达式(expression)是 JavaScript 中的一个短语(phrases),JavaScript 解释器会将其计算(evaluate)出一个结果.程序中的常量.变量名.数组访问等都是表达式 ...
- javascript运算符语法概述
× 目录 [1]个数 [2]优先级 [3]结合性[4]类型[5]规则表 前面的话 javascript中的运算符大多由标点符号表示,少数由关键字表示,它们的语法言简意赅,它们的数量却着实不少.运算符始 ...
- JavaScript简易教程(转)
原文:http://www.cnblogs.com/yanhaijing/p/3685304.html 这是我所知道的最完整最简洁的JavaScript基础教程. 这篇文章带你尽快走进JavaScri ...
- Lua和Javascript差异对比
Lua模拟器js方案 1.语法级模拟lua与js语言差异 1.1注释 js 为//,lua为--. 1.2变量js利用val来声明全局变量不存在局部变量,lua则不需要直接定位则为全局变量,local ...
随机推荐
- 浏览器在线查看pdf文件 pdf.js的使用教程
谷歌浏览器可以直接在线查看pdf,而IE内核浏览器无法在线查看,默认是下载. 这里用到的是pdf.js,不仅支持IE内核浏览器,而且兼容手机查看pdf 官网地址:http://mozilla.gith ...
- 【KTU Programming Camp (Day 3)】Queries
http://codeforces.com/gym/100739/problem/A 按位考虑,每一位建一个线段树. 求出前缀xor和,对前缀xor和建线段树. 线段树上维护区间内的0的个数和1的个数 ...
- Java 接口与抽象类
抽象类 <JAVA编程思想>一书中,将抽象类定义为"包含抽象方法的类".只要用abstract修饰的类就是抽象类,抽象类不一定包含抽象方法,但有抽象方法的类一定是抽象类 ...
- 【洛谷】4317:花神的数论题【数位DP】
P4317 花神的数论题 题目背景 众所周知,花神多年来凭借无边的神力狂虐各大 OJ.OI.CF.TC …… 当然也包括 CH 啦. 题目描述 话说花神这天又来讲课了.课后照例有超级难的神题啦…… 我 ...
- bzoj 2150 最小路径覆盖
最小路径覆盖问题是:给定一个DAG,该DAG的一个路径覆盖是一个路径的集合,使得每个点属于且仅属于其中一条路径,问题就是求一个大小最小的路径集合. 做法是将每个点A拆成两个点A1,A2,如果A-> ...
- 读书笔记_Effective_C++_条款三十七:绝不重新定义继承而来的缺省参数值
先看下面的例子: enum MyColor { RED, GREEN, BLUE, }; class Shape { public: ; }; class Rectangle: public Shap ...
- jquery获取单选button选中的值
在页面上单选button的代码: <s:iterator value="@com.hljw.cmeav.util.CmeavGlobal@isComMap"> < ...
- Unity中一键创建常用文件夹
Unity中一键创建常用文件夹 说明 项目测试版本Unity5.3. 这个一个小工具:功能非常简单,就是一键给新建工程添加所有文件夹.到此结束. 但是具体咋操作呢? 与把大象装进冰箱一样,三步,下载代 ...
- UML:概要设计,用什么画我的类图?
背景 做过需求之后,很少使用 UML 画概要设计,这几天尝试的用了几个工具,最总还是选择了 VisualStudio. Edraw 详细信息很难编辑,如:签名. Viso 添加成员太麻烦了. Visu ...
- Object类型转换为long或者Long
1.转换为long Object o = new Object();long l = Long.valueOf(String.valueOf(o)).longValue(); 2.转换为Long Ob ...