千家信息网

JavaScript中不用if写代码有哪些特点

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要讲解了"不用if写代码有哪些特点",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"不用if写代码有哪些特点"吧!示例1: 统计数组中的奇数假设
千家信息网最后更新 2026年11月01日JavaScript中不用if写代码有哪些特点

这篇文章主要讲解了"不用if写代码有哪些特点",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"不用if写代码有哪些特点"吧!

示例1: 统计数组中的奇数

假设我们有一个整数数组arrayOfIntegers,现在需要统计其中奇数的个数:

const arrayOfIntegers = [1, 4, 5, 9, 0, -1, 5];

使用if

let counter = 0; arrayOfIntegers.forEach((integer) => {   const remainder = Math.abs(integer % 2);   if (remainder === 1) {     counter++;   } });  console.log(counter);

console.log(counter);

不用if

let counter = 0;  arrayOfIntegers.forEach((integer) => {   const remainder = Math.abs(integer % 2);   counter += remainder; });  console.log(counter);

不用if时,我们巧妙地利用了奇数与偶数的特性,它们除以2的余数分别是0和1。

示例2: 判断工作日和周末

给定一个日期(比如new Date()),判断它是工作日还是周末,分别返回"weekend"和"weekday"。

使用if

const weekendOrWeekday = (inputDate) => {   const day = inputDate.getDay();    if (day === 0 || day === 6) {     return 'weekend';   }       return 'weekday';    // Or, for ternary fans:   // return (day === 0 || day === 6) ? 'weekend' : 'weekday'; };  console.log(weekendOrWeekday(new Date()));

不用if

const weekendOrWeekday = (inputDate) => {   const day = inputDate.getDay();    return weekendOrWeekday.labels[day] ||           weekendOrWeekday.labels['default']; };  weekendOrWeekday.labels = {    0: 'weekend',    6: 'weekend',    default: 'weekday'  };  console.log(weekendOrWeekday(new Date()));

你是否发现if语句中其实隐含着一些信息呢?它告诉我们哪一天是周末,哪一天是工作日。因此,要去掉if语句的话,我们只需要把这些信息写入weekendOrWeekday.labels对象,然后直接使用它就好了。

示例3: doubler函数

写一个doubler函数,它会根据参数的类型,进行不同的操作:

  1. 如果参数是数字,则乘以2(i.e. 5 => 10, -10 => -20);

  2. 如果参数是字符串,则每个字符重复2次 (i.e. 'hello' => 'hheelloo');

  3. 如果参数是函数,则调用2次;

  4. 如果参数是数组,则将每一个元素作为参数,调用doubler函数

  5. 如果参数是对象,则将每个属性值作为参数,调用doubler函数

使用switch

const doubler = (input) => {   switch (typeof input) {     case 'number':       return input + input;     case 'string':       return input         .split('')         .map((letter) => letter + letter)         .join('');     case 'object':       Object.keys(input)             .map((key) => (input[key] = doubler(input[key])));       return input;     case 'function':       input();       input();   } };  console.log(doubler(-10)); console.log(doubler('hey')); console.log(doubler([5, 'hello'])); console.log(doubler({ a: 5, b: 'hello' })); console.log(   doubler(function() {     console.log('call-me');   }), );

不用switch

const doubler = (input) => {   return doubler.operationsByType[typeof input](input); };  doubler.operationsByType = {   number: (input) => input + input,   string: (input) =>     input       .split('')       .map((letter) => letter + letter)       .join(''),   function: (input) => {     input();     input();   },   object: (input) => {     Object.keys(input)           .map((key) => (input[key] = doubler(input[key])));     return input;   }, };

可知,我将每一种参数类型对应的操作绑定到了doubler.operationsByType,这样不需要switch语句,就可以实现doubler函数了。

感谢各位的阅读,以上就是"不用if写代码有哪些特点"的内容了,经过本文的学习后,相信大家对不用if写代码有哪些特点这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

参数 不用 函数 代码 特点 奇数 工作日 数组 示例 语句 学习 工作 信息 内容 字符 对象 类型 i.e. 统计 不同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 鸠鸠互联网科技 百单互联网科技有限公司 西安互联网科技公司 互联网科技的未来发展 上海亿帐通互联网科技 隆华科技工业互联网 哈尔滨新华互联网科技学院 科技互联网的估值 互联网科技中介 成都铂石互联网科技做什么的 赶超互联网科技 微信多开 互联网5g黑科技有哪些 亳州好赞互联网科技有限公司 本届互联网博览会上的黑科技 互联网新科技动漫ppt素材 互联网第三次科技革命特征 深圳无忧互联网科技 卡尔迅互联网科技有限公司 互联网与数字科技关系 西安左小互联网科技有限公司 南京欣网互联网络科技有限公司 互联网科技公司起名 互联网科技视频 互联网科技公司有哪些 开一家科技互联网公司需要多少钱 佛山市拉法互联网科技有限公司 产业互联网科技服务公司 互联网风格科技公司名称 互联网科技手机排行榜 武汉亿视互联网科技有限公司
0