06月05, 2017

用 JavaScript 充当计算器

有很多具有交互式界面的编程语言常常被我们当做计算器使用,例如 Python、Mathematica。其实 JavaScript 也具备处理常见计算需求的能力,并且 JavaScript 不需要额外的安装(谁的电脑上没有一个浏览器呢),我们可以简单地在浏览器或 VS Code 里打开开发者工具使用,也可以在命令行下使用 node。本文介绍如何处理一些常见的计算场景。

运算符

1+1
1-1
1*1
1/1
1&1
1|1
1^1
1%1
2**3    // 2 * 2 * 2 === 8

进制

JS 支持十进制、十六进制的数字字面量。ES2015(现代浏览器支持)又添加了八进制、二进制的字面量。

0x10    //16 hexadecimal
0b10    //2 binary
0o10    //8 octal
10      //10 decimal heh

进制转换

常见的几个进制转十进制可以通过直接输入字面量的方式。其他的进制转换通常要用到两个函数toString(radix)parseInt(string, radix),JS 支持 radix(基数)的范围是 2 ~ 36 之间。

parseInt(100, 2)    //4
parseInt('3L', 33)    //120 大小写不敏感

对于toString(radix),需要注意一点,以下写法会引起语法错误

错误写法:

233.toString(2)    //SyntaxError

这是因为 JS 引擎在解析.时会认为这是一个小数点。明白这点后,我们可以通过多种方法解决。

正确写法:

233 .toString(2)    //'11101001'
233..toString(2)    //'11101001'
(233).toString(2)    //'11101001'

常量

JS 在 Math 对象下内置了一些常量,命名为全大写,例如 Math.EMath.LN2Math.EMath.PI 等。

常用函数

JS 在 Math 对象下内置了一些常用数学函数。以下为部分实例

Math.acos(x)
Math.cos(x)
Math.tan(x)
Math.sqrt(x)
Math.pow(x, y)
Math.log(x)    //ln
Math.log2(x)
Math.log10(x)

更多常量和函数可以在 MDN 中查看

查看 ASCII 编码

'a'.charCodeAt(0)    \\97

查看 Unicode 编码

ES2015 开始完全支持 Unicode

'笑'.codePointAt(0).toString(16)    \\'7b11'

本文链接:https://sxing.xyz/post/use-javascript-as-a-calculator.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。