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
目录
相关文章
|
23小时前
|
SQL 自然语言处理 前端开发
【JavaScript】ECMAS6(ES6)新特性概览(一):变量声明let与const、箭头函数、模板字面量全面解析
【JavaScript】ECMAS6(ES6)新特性概览(一):变量声明let与const、箭头函数、模板字面量全面解析
7 2
|
1天前
|
JavaScript 前端开发
JavaScript 数组的函数 map/forEach/reduce/filter
JavaScript 数组的函数 map/forEach/reduce/filter
|
1天前
|
JavaScript 前端开发 索引
JS中的substr()和substring()函数有什么区别
JS中的substr()和substring()函数有什么区别
|
2天前
|
SQL 自然语言处理 JavaScript
【JavaScript】ECMAS6(ES6)新特性概览(一):变量声明let与const、箭头函数、模板字面量全面解析
ES6,作为ECMAScript 2015的简称,标志着JavaScript编程语言的一个重要进化节点。它不是渐进的变化,而是一次飞跃式的更新,为开发者带来了一系列强大的新特性与语法糖,极大提升了代码的简洁性、可读性和运行效率。从新的变量声明方式let与const,到优雅的箭头函数、模板字符串,再到让对象操作更为灵活的解构赋值与增强的对象字面量,ES6的每项改进都旨在让JavaScript适应日益复杂的应用场景,同时保持其作为脚本语言的活力与魅力。本文是深入探索这些核心特性的起点,为你铺开一条通向高效、现代JavaScript编程实践
19 0
|
3天前
|
自然语言处理 JavaScript 前端开发
在JavaScript中,this关键字的行为可能会因函数的调用方式而异
【6月更文挑战第15天】JavaScript的`this`根据调用方式变化:非严格模式下直接调用时指向全局对象(浏览器为window),严格模式下为undefined。作为对象方法时,`this`指对象本身。用`new`调用构造函数时,`this`指新实例。`call`,`apply`,`bind`可显式设定`this`值。箭头函数和绑定方法有助于管理复杂场景中的`this`行为。
19 3
|
1月前
|
JavaScript 前端开发
js变量的作用域、作用域链、数据类型和转换应用案例
【4月更文挑战第27天】JavaScript 中变量有全局和局部作用域,全局变量在所有地方可访问,局部变量只限其定义的代码块。作用域链允许变量在当前块未定义时向上搜索父级作用域。语言支持多种数据类型,如字符串、数字、布尔值,可通过 `typeof` 检查类型。转换数据类型用 `parseInt` 或 `parseFloat`,将字符串转为数值。
20 1
|
1月前
|
JavaScript 前端开发
JavaScript变量、数据类型、运算符及类型转换
JavaScript变量、数据类型、运算符及类型转换
45 0
|
8月前
|
JavaScript 前端开发
JavaScript 语法:变量、数据类型及数据类型转换
JavaScript 语法 之 变量、数据类型及数据类型转换
40 0
JavaScript 语法:变量、数据类型及数据类型转换
|
1月前
|
存储 JavaScript 前端开发
【JavaScript技术专栏】JavaScript基础入门:变量、数据类型与运算符
【4月更文挑战第30天】本文介绍了JavaScript的基础知识,包括变量(var、let、const)、数据类型(Number、String、Boolean、Undefined、Null及Object、Array)和运算符(算术、赋值、比较、逻辑)。通过实例展示了如何声明变量、操作数据类型以及使用运算符执行数学和逻辑运算。了解这些基础知识对初学者至关重要,是进阶学习JavaScript的关键。
|
9月前
|
存储 JavaScript 前端开发
JavaScript 基础1:变量与数据类型及其转换
JavaScript 基础1:变量与数据类型及其转换
23 0