1. 首页
  2. web前端

JS连续运算

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();

原文始发于:JS连续运算

主题测试文章,只做测试使用。发布者:程序员,转转请注明出处:http://www.cxybcw.com/2015.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code