javascript是弱类型语言,一个函数参数可以接收不同类型的变量作为它的该参数

简介: javascript是弱类型语言,一个函数参数可以接收不同类型的变量作为它的该参数

javascript是弱类型语言,一个函数参数可以接收不同类型的变量作为它的该参数。

如:noticeEstateSales的week参数可以是空,数字类型(4),字符串(‘登记’, ‘4’)类型。

这在强类型语言(如:Object c,java)中是无法理解的。

当然弱类型语言好处也有,就是因为它不太讲究,健壮性很高,不用crash。缺点是:当出现问题时,不容易定位。如:一个地方调用是正常的,另一个地方调用就有可能是异常的。

下面是一个例子函数:

erp_notice_saler.noticeEstateSales = async function (week, estate_id) {
    logger.debug('noticeEstateSales timer: start');
    let wordsMap = {
        '1': '快',
        '2': '上',
        '3': '上',
        '4': '快来',
        '登记': '您',
    };
    let words = wordsMap[week];
}

传递不同的参数调用:

        const date = new Date();
        const week = date.getDay();
        erp_notice_saler.noticeEstateSales(week);
        erp_notice_saler.noticeEstateSales(4);
        erp_notice_saler.noticeEstateSales(5);
        erp_notice_saler.noticeEstateSales('4');

打印日志:

[2024-05-13T12:00:25.151] [DEBUG] app - noticeEstateSales timer: week: 1
[2024-05-13T12:00:25.151] [DEBUG] app - noticeEstateSales timer: wordsMap[week] 快来更新预计开盘信息,能同时获得积分和展位,先到先审先得!~ week: 1
[2024-05-13T12:00:25.151] [DEBUG] app - noticeEstateSales timer: start
[2024-05-13T12:00:25.151] [DEBUG] app - noticeEstateSales timer: week: 4
[2024-05-13T12:00:25.151] [DEBUG] app - noticeEstateSales timer: wordsMap[week] 快来 week: 4
[2024-05-13T12:00:25.151] [DEBUG] app - noticeEstateSales timer: start
[2024-05-13T12:00:25.151] [DEBUG] app - noticeEstateSales timer: week: 5
[2024-05-13T12:00:25.151] [DEBUG] app - noticeEstateSales timer: wordsMap[week] undefined week: 5
[2024-05-13T12:00:25.151] [DEBUG] app - noticeEstateSales timer: start
[2024-05-13T12:00:25.151] [DEBUG] app - noticeEstateSales timer: week: 4
[2024-05-13T12:00:25.151] [DEBUG] app - noticeEstateSales timer: wordsMap[week] 快来 week: 4
目录
相关文章
|
5月前
|
前端开发 JavaScript 开发者
JavaScript:无处不在的Web语言
JavaScript:无处不在的Web语言
|
11月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
598 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
8月前
|
机器学习/深度学习 JavaScript 前端开发
JS进阶教程:递归函数原理与篇例解析
通过对这些代码示例的学习,我们已经了解了递归的原理以及递归在JS中的应用方法。递归虽然有着理论升华,但弄清它的核心思想并不难。举个随手可见的例子,火影鸣人做的影分身,你看到的都是同一个鸣人,但他们的行为却能在全局产生影响,这不就是递归吗?雾里看花,透过其间你或许已经深入了递归的魅力之中。
344 19
|
10月前
|
JavaScript
JS实现多条件搜索函数
JS封装的多条件搜索
|
JavaScript 前端开发
JavaWeb JavaScript ③ JS的流程控制和函数
通过本文的详细介绍,您可以深入理解JavaScript的流程控制和函数的使用,进而编写出高效、可维护的代码。
271 32
|
11月前
|
JavaScript 前端开发 开发者
JavaScript基础——JavaScript变量名称命名规范
JavaScript变量命名规范是编写高质量代码的重要部分。通过遵循基本规则、使用常见命名约定并应用最佳实践,可以提高代码的可读性和可维护性。希望本文能帮助开发者在日常编程中更好地理解和应用JavaScript变量命名规范,从而编写出更清晰、更可靠的代码。
775 11
|
JavaScript 前端开发 容器
盘点JavaScript中所有声明变量的方式及特性
本文详细介绍了JavaScript中变量定义的多种方式,包括传统的`var`、`let`和`const`,以及通过`this`、`window`、`top`等对象定义变量的方法。每种方式都有其独特的语法和特性,并附有代码示例说明。推荐使用`let`和`const`以避免作用域和提升问题,谨慎使用`window`和`top`定义全局变量,不建议使用隐式全局变量。掌握这些定义方式有助于编写更健壮的JS代码。
354 11
|
11月前
|
JavaScript 前端开发 Java
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
柯里化是一种强大的函数式编程技术,它通过将函数分解为单参数形式,实现了灵活性与可复用性的统一。无论是参数复用、延迟执行,还是函数组合,柯里化都为现代编程提供了极大的便利。 从 Redux 的选择器优化到复杂的数据流处理,再到深度嵌套的函数优化,柯里化在实际开发中展现出了非凡的价值。如果你希望编写更简洁、更优雅的代码,柯里化无疑是一个值得深入学习和实践的工具。从简单的实现到复杂的应用,希望这篇博客能为你揭开柯里化的奥秘,助力你的开发之旅! 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一
|
JavaScript 前端开发
JavaScript基础知识-函数的参数
关于JavaScript函数参数基础知识的介绍。
160 4
JavaScript基础知识-函数的参数
|
JavaScript 前端开发
JavaScript 函数参数
JavaScript 函数参数
135 3

热门文章

最新文章