JavaScript 是函数式编程语言,表达式运算的能力比较强大,通过连续运算可以设计敏捷的程序代码。

示例1

最常用的是连续赋值运算。

var a = b = c = 1;

上面代码相当于声明 3 个变量,并全部初始化值为 1。

示例2

条件运算符在连续运算中扮演者重要的角色,它可以把复杂的分支结构浓缩到一个表达式中。例如,在事件处理函数中,经常会用下面表达式处理事件对象兼容问题。

event ? event : window.event;

拆分为分支结构:

if(event){

event = event; //如果支持event参数,则直接使用event

}else{

event = window.event; //否则调用window对象event属性

}

示例3

下面使用条件运算符设计多重分支结构。

var a = ((a == 1) ? console.log(1)) : //如果a等于1,则提示1

(a == 2) ? console.log(2) : //如果a等于2,则提示2

(a == 3) ? console.log(3) : //如果a等于3,则提示3

(a == 4) ? console.log(4) : //如果a等于4,则提示4

console.log(undefined) //否则提示undefined

);

拆分为多重分支结构:

switch(a) {

case 1 :

console.log(1);

break;

case 2 :

console.log(2);

break;

case 3 :

console.log(3);

break;

case 4 :

console.log(4);

break;

default:

console.log(undefined);

示例4

对于复合型数据——对象、数组、函数,都可以作为操作数,参与表达式运算。例如,对于下面的操作:先定义函数,再调用函数。

var f = function(x,y){ //定义匿名函数

return (x+y) / 2;

}

console.log(f(10,20));调用匿名函数

使用表达式表示:

console.log(

(function(x,y){

return (x+y) / 2;

}) (10,20) //直接调用匿名函数

); //返回值15

示例5

通过小括号连续调用,使用表达式可以设计多层嵌套的函数结构。

console.log(

(function() {

return function(x,y) {

return function() {

return (x+y) /2;

}

}

}) () (10,20) () //连续3次运算

); //返回值15

如果转换为命令式语句,则代码如下:

var f = function() {

return function(x,y) {

return function() {

return (x+y) /2;

}

}

}

var f1 = f(); //第一次调用外层函数

var f2 = f1(10,20); //第二次调用中层函数

var f3 = f2(); //第三次调用内层函数

console.log(f3); //返回值15

示例6

下面示例演示如何使用表达式创建对象。

var o = typeof 56; //返回数值56的类型

console.log(

(new ( //根据多条件运算式返回值创建

(o == "string") ? String :

(o == "number") ? Number :

(o == "boolean") ? Boolean :

(o == "array") ? Array:

Object

)

).toString() //把创建的对象转换为字符串返回

);

上面代码使用条件运算符的嵌套,连续判断变量 o 的值,然后使用 new 创建对象,最后通过点运算符调用 toString() 方法把新创建的对象转换为字符串并返回。

如果使用逻辑运算符,可以进一步浓缩表达式。代码如下:

console.log((new ((o == "string") ? String : (o == "number") ? Number : (o == "boolean") ? Boolean : (o == "array") ? Array : Object)).toString();

java 连续运算_JS连续运算相关推荐

  1. php大于等于符号怎么打出来_PHP常用的特殊运算符号(连续小于符号,三个小于符号,eot,eod,echo示例,print示例)...

    最近在写PHP程序的时候发现了一些特殊的PHP符号,例如连续小于符号,三个小于符号,eot,eod,echo示例,print示例等,突然间发现用这么久的PHP了,竟然连PHP的基本符号都没有认全,看到 ...

  2. matlab中连续信号的卷积,连续时间信号卷积运算的MATLAB实现

    . . . .. .. 连续时间信号卷积运算的MATLAB 实现 一.实验目的 (1) 理解掌握卷积的概念及物理意义. (2) 理解单位冲击响应的概念及物理意义. 二.实验原理 根据前述知识,连续信号 ...

  3. Java二进制位运算、移位运算、、

    为什么80%的码农都做不了架构师?>>>    Java二进制位运算.移位运算 思考题 1.请看下面的代码段,回答a,b,c,d,e结果是多少? public static void ...

  4. Java从入门到精通08-二进制、位运算、移位运算

    Java从入门到精通08-二进制.位运算.移位运算 二进制(Binary)数用0和1两个数字及其组合来表示任何数.进位规则是"逢2进1",数字1在不同的位上代表不同的值,按从右到左 ...

  5. java反码算术运算求和,位运算的妙用,运算妙用

    位运算的妙用,运算妙用 最近在学java,其实仅仅是在命令行里写程序跟C语言没有太大的区别,思想都是一样的.遇到了一个比较新鲜(后来知道原来C中也有)的东西--位元算(又叫位操作).多新鲜啊,毕向东老 ...

  6. java if 赋值语句_Java中有一种特殊的赋值运算叫做三元运算,它和if-else语句类似....

    Java中有一种特殊的赋值运算叫做三元运算,它和if-else语句类似. 答:√ 顺序阀在液压系统中起___作用 答:压力开关 断电后,机器人关节轴发生了位移,不需要更新转速计数器 答:× " ...

  7. java char 计算_经典Java面试题之Java中Char类型的运算

    经典Java面试题之Java中Char类型的运算 char在java中称为"字符型",占2个字节.本文是百分网小编搜索整理的关于经典Java面试题之Java中Char类型的运算,有 ...

  8. 复数加减java_用java实现复数的加减乘除运算

    用java实现复数的加减乘除运算 1. 背景 老师在课上布置了几道java编程题,此为其中之一 2. 题目内容 设计一个类Complex,用于封装对复数的下列操作: (1)一个带参数的构造函数,用于初 ...

  9. JAVA计算平方,幂运算,三角函数等

    JAVA中要想计算一个数值的平方根, 可以使用 sqrt 方法: double x = 4; double y = Math.sqrt(x); System.out.println(y); 在 Jav ...

最新文章

  1. matlab 极坐标作图polar
  2. Win10 配置 TensorFlow-gpu 深度学系框架
  3. 【MFC】带组合框的工具栏
  4. IntelliJ IDEA 如何设置编辑窗口的背景图片
  5. 云原生时代来袭 下一代云数据库技术将走向何方?
  6. Android Kernel Features
  7. Tomcat中设置数据源和连接池
  8. vos2009 校验版本超时_开源多云应用平台 Choerodon猪齿鱼发布0.14版本
  9. ABP中module-zero快速集成微信用户认证
  10. PHP搭建留言板,PHP搭建简易留言板
  11. Windows2000系统下载安装,怀念一下
  12. 人脸数据库汇总 (来自网络)
  13. 数字化审图时代批量生成PDF或者DWF利器SmartBatchPlot
  14. 鸡易发呼吸道疾病的原因 鸡打喷嚏甩鼻用什么药
  15. SpringBoot缓存@Cacheable
  16. AR技术与VR技术哪个更能代表未来?
  17. 淘宝商品采集上架拼多多店铺(无货源数据采集接口,拼多多商品详情数据,淘宝商品详情数据,京东商品详情数据)接口代码对接教程
  18. 【武器系统】【2008.06】海军巡航导弹的制导与控制
  19. 利用python目录化整理PPT素材文件
  20. html5游戏偷菜源码,偷菜游戏原码

热门文章

  1. java打印jnibtye[]
  2. OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
  3. 判断一个矩阵是否可对角化
  4. MPLS ×××的三部分CE、PE和P简介
  5. Window server 补丁修复及补丁回滚
  6. 后退键无效 html,javascript – Cordova – window.history.back()不支持iOS 9中的HTML后退按钮...
  7. 创建oracle数据库有哪些方法,oracle11g创建数据库的方法-Oracle
  8. exception java doc,Javadoc和RuntimeException
  9. 语言 上课点名 缺勤_主播日记5 | “云端”传递的C语言程序设计实验课
  10. 域服务器广播消息,广播,组播和UNIX域套接字