By Jackson@ML
JavaScript引擎中包含了一组built-in functions(内建函数)。
本文简要介绍如何通过实践使用这些预定义函数并掌握传递参数和返回值。希望对您有所帮助。
JavaScript的这组函数通常可称为预定义函数(predefined functions)。
为了交互式实现函数功能,我采用Node.js Command Prompt(Node.js命令行)来实现代码,Node.js版本为20.9.0。
parseInt()用来将传递来的任何值(例如字符串)转换成十进制整数,也就是解析为十进制整数;解析失败则返回NaN。
示例如下图:
我们看到,parseInt()函数还有个可选的第二参数,即基数(radix)。基数负责设定函数所期望的数值类型(十进制,十六进制,八进制等)。
以下的例子中,如果试图用十进制数输出十六进制数,结果就会变为NaN;但若改回十六进制数输出十六进制数,就会得到255,14等十进制数。
下面再看几个将字符串转换为八进制数和十进制数的例子。
明确指定第二参数,对编程来说,总是最安全的。如果省略了第二参数,尽管多数情况下仍然能够正常工作,但偶尔在调试过程也会发现问题。
parseFloat()函数仅解析一个参数,将其返回一个浮点数。示例如下图所示:
与parseInt()函数相同的是,遇到参数第一个异常字符时就会放弃,无论该字符串剩余字符串是否可用。示例如下图所示:
此外,parseFloat()函数还可以接受指数形式的参数输入),而parseInt()则不行。示例如下图:
isNaN()函数可确定某个输入值是否为可以参与算数运算的数字,即确定一个值是否为NaN。这样以来,该函数也可以用来检查parseInt()和parseFloat()的调用以及其它算数运算成功与否。
isFinite()函数用来判断传入的参数值是否为一个有限数值(即finite number),也就是检查输入是否为一个既非Infinity,也非NaN的数字。示例如下图:
以上情况均返回false, 以下是返回true的例子。
通常,我们访问一个网站,需要输入网址,例如:https://www.bing.com , 这其实就是一个URL,即统一资源定位符(Uniform Resource Locator)。与URL很像的,还有URI,即统一资源标识符(Uniform Resource Identifier)。
URI是URL的超集,也即更高层次的抽象。JavaScript语言提供了对统一资源标识符(URI)的编码函数,就是encodeURI();通过它能够将特定字符每个实例替换为一个、两个、三个或四个转义序列来对URI进行编码。
encodeURIComponent()函数通过将特定字符的每个实例替换成代表字符的UTF-8编码的一个、两个、三个或四个转义序列来编码URI。
encodeURI()和encodeURIComponent()分别有各自对应的反编码函数,即decodeURI()和decodeURIComponent()。在此不再举例详述。
eval()函数会将传入的字符串当作JavaScript代码(或表达式)执行。示例如下图:
这里eval(‘3 + 2’)与表达式3 + 2执行效果是相同的。当然,尽管eval()在某些情况下有用,但除非必要,还是尽量避免这样使用。在大多数情况下,使代码优雅非常重要,可以有其它的选择,可能使代码更易于编写和维护。
借用有经验的程序员的话,”Eval is eval” (即:Eval是魔鬼),真乃至理名言也。
escape()函数用来生成新的由十六进制转义序列替换的字符串。但该函数已被废弃。该功能由前述的encodeURI()或encodeURIComponent()函数代替。
技术好文陆续推出,敬请关注。
喜欢就点赞哈!您的认可,我的动力。