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
目录
相关文章
|
21天前
|
JavaScript 前端开发 安全
深入理解TypeScript:增强JavaScript的类型安全性
【10月更文挑战第8天】深入理解TypeScript:增强JavaScript的类型安全性
35 0
|
12天前
|
JavaScript 前端开发
JavaScript 函数语法
JavaScript 函数是使用 `function` 关键词定义的代码块,可在调用时执行特定任务。函数可以无参或带参,参数用于传递值并在函数内部使用。函数调用可在事件触发时进行,如用户点击按钮。JavaScript 对大小写敏感,函数名和关键词必须严格匹配。示例中展示了如何通过不同参数调用函数以生成不同的输出。
|
14天前
|
存储 JavaScript 前端开发
JS函数提升 变量提升
【10月更文挑战第6天】函数提升和变量提升是 JavaScript 语言的重要特性,但它们也可能带来一些困惑和潜在的问题。通过深入理解和掌握它们的原理和表现,开发者可以更好地编写和维护 JavaScript 代码,避免因不了解这些机制而导致的错误和不一致。同时,不断提高对执行上下文等相关概念的认识,将有助于提升对 JavaScript 语言的整体理解和运用能力。
|
22天前
|
存储 JavaScript 前端开发
js中函数、方法、对象的区别
js中函数、方法、对象的区别
14 2
|
12天前
|
JavaScript 前端开发
局部 JavaScript 变量
JavaScript 中,函数内部使用 `var` 声明的变量为局部变量,仅在函数内可见,函数执行完毕后被删除。全局变量则在函数外部声明,整个页面的脚本和函数均可访问,页面关闭后才被删除。未声明的变量赋值会自动成为 `window` 对象的属性,且在非严格模式下可被删除。
|
17天前
|
存储 JavaScript 前端开发
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
14 0
|
21天前
|
JavaScript 前端开发
JavaScript返回判断类型有哪些?
JavaScript返回判断类型有哪些?
25 0
|
JavaScript 前端开发
JavaScript语言基础知识点图示
原文:JavaScript语言基础知识点图示 一位牛人归纳的JavaScript 语言基础知识点图示。 1.JavaScript 数据类型     2.JavaScript 变量     3.
1317 0
|
前端开发 JavaScript
JavaScript语言基础知识点图示(转)
一位牛人归纳的JavaScript 语言基础知识点图示。 1.JavaScript 数据类型     2.JavaScript 变量     3.Javascript 运算符     4.
1092 0
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
85 2