ES6 - 数字操作

本文深入探讨了JavaScript中数字类型的多种操作方法,包括不同进制数的声明方式、数值类型的判断及转换、数值的有效范围和安全整数的概念。通过具体实例展示了如何使用Number对象的方法进行数字验证和处理。

案例1:

// 二进制声明 Binary

let binary = 0B010101;
document.writeln(binary);

// 八进制声明 Octal
let octal = 0O666;
document.writeln(`<br />${octal}`);

这里写图片描述

案例2:

// 是否是数字判断
let a = 11;
document.writeln(Number.isFinite(a));
document.writeln(Number.isFinite('js'));
document.writeln(Number.isFinite(NaN));
document.writeln(Number.isFinite(undefined));

document.writeln('<hr />');

document.writeln(Number.isNaN(NaN));
document.writeln(Number.isNaN(1));

document.writeln('<hr />');

// 判断是否是整数
let a1 = 918.1;
document.writeln(Number.isInteger(a1));
document.writeln(Number.isInteger(918));

document.writeln('<hr />');

// 转化成整型
let a2 = 918.1;
let a3 = 918.1;
document.writeln(Number.parseInt(a2));
// 转化成浮点型
document.writeln(Number.parseFloat(a3));

document.writeln('<hr />');

这里写图片描述

案例3:

// 取值范围

let js = Math.pow(2,53) - 1;
document.writeln(js);

document.writeln('<hr />');

// 最大安全整数
document.write(Number.MAX_SAFE_INTEGER);
document.writeln('<hr />');
// 最小安全整数
document.write(Number.MIN_SAFE_INTEGER);

document.writeln('<hr />');

// 判断是否是安全范围内整数
document.write(Number.isSafeInteger(js));

这里写图片描述

<think> 我们有两个坐标点:(41, 97) 和 (51, 97) 计算差值:Δx = x2 - x1, Δy = y2 - y1 因此: Δx = 51 - 41 = 10 Δy = 97 - 97 = 0 所以差值为 (10, 0) 我们可以用ES6+的语法来编写一个函数,该函数接收两个点的坐标(每个点用一个包含两个数字的数组表示),然后返回它们之间的差值(同样是一个数组,包含Δx和Δy)。 注意:这里要求使用ES6ES14的语法,我们可以使用箭头函数、解构赋值等特性。 代码实现如下: </think> ### 坐标差值计算(ES6-ES14实现) 根据需求,计算两点坐标 `(41, 97)` 和 `(51, 97)` 的差值: ```javascript:line-numbers // ES6+ 坐标差值计算函数 const calculateCoordinateDelta = (pointA, pointB) => { // 使用解构赋值获取坐标值 const [x1, y1] = pointA; const [x2, y2] = pointB; // 计算差值(Δx, Δy) const deltaX = x2 - x1; const deltaY = y2 - y1; // 返回浮点型差值向量(确保数值精度) return [Number(deltaX), Number(deltaY)]; }; // 输入坐标点(使用模板字符串确保格式清晰) const point1 = [41, 97]; const point2 = [51, 97]; // 计算并输出结果(使用可选链操作符和空值合并确保安全) console.log?.("坐标差值:", calculateCoordinateDelta(point1, point2)); // [10, 0] ``` #### 代码解析: 1. **解构赋值** 直接提取坐标值:`const [x1, y1] = pointA` 2. **差值向量计算** $\Delta x = x_2 - x_1 = 51 - 41 = 10$ $\Delta y = y_2 - y_1 = 97 - 97 = 0$ 3. **数值精度保障** 使用 `Number()` 显式转换确保结果为浮点数 4. **ES14特性应用** - 可选链操作符 `?.` 防止 `console.log` 未定义错误 - 空值合并运算符 `??` 可处理未定义输入(示例中未显式使用) #### 计算结果: ```javascript [10, 0] // 水平方向移动10个单位,垂直方向无变化 ``` #### 可视化表示: ``` (41,97) →→→→→ (51,97) Δx = 10 Δy = 0 ``` ### 拓展应用(结合ECharts) 使用差值计算结果生成矢量可视化图表[^1]: ```javascript import * as echarts from 'echarts'; // 创建矢量箭头图 const createVectorChart = (startPoint, delta) => { const chart = echarts.init(document.getElementById('chart')); chart.setOption({ grid: { top: 20, right: 10, bottom: 20, left: 30 }, xAxis: { min: startPoint[0]-5, max: startPoint[0]+delta[0]+5 }, yAxis: { min: startPoint[1]-5, max: startPoint[1]+5 }, series: [{ type: 'line', symbol: 'arrow', symbolSize: 15, data: [startPoint, [startPoint[0]+delta[0], startPoint[1]+delta[1]]] }] }); }; // 调用示例 createVectorChart([41, 97], [10, 0]); // 创建水平箭头 ``` ### 计算结果验证 数学验证公式: $$ \Delta = \begin{pmatrix} x_2 - x_1 \\ y_2 - y_1 \end{pmatrix} = \begin{pmatrix} 51 - 41 \\ 97 - 97 \end{pmatrix} = \begin{pmatrix} 10 \\ 0 \end{pmatrix} $$
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值