Javascript编程进阶 – 预定义函数

news2024/12/29 10:00:43

Javascript编程进阶 – 预定义函数

JavaScript Programming Advanced – Predefined Functions

By Jackson@ML

JavaScript引擎中包含了一组built-in functions(内建函数)。

本文简要介绍如何通过实践使用这些预定义函数并掌握传递参数和返回值。希望对您有所帮助。

JavaScript的这组函数通常可称为预定义函数(predefined functions)。

为了交互式实现函数功能,我采用Node.js Command Prompt(Node.js命令行)来实现代码,Node.js版本为20.9.0。

以下就是Node.js命令行窗口:
在这里插入图片描述
现在,我们依次介绍。

1. parseInt()

parseInt()用来将传递来的任何值(例如字符串)转换成十进制整数,也就是解析为十进制整数;解析失败则返回NaN。
示例如下图:
在这里插入图片描述
我们看到,parseInt()函数还有个可选的第二参数,即基数(radix)。基数负责设定函数所期望的数值类型(十进制,十六进制,八进制等)。

以下的例子中,如果试图用十进制数输出十六进制数,结果就会变为NaN;但若改回十六进制数输出十六进制数,就会得到255,14等十进制数。
在这里插入图片描述
下面再看几个将字符串转换为八进制数和十进制数的例子。

在这里插入图片描述
假如没有指定第二参数,那么函数就会默认为转换到十进制数。

明确指定第二参数,对编程来说,总是最安全的。如果省略了第二参数,尽管多数情况下仍然能够正常工作,但偶尔在调试过程也会发现问题。

2. parseFloat()

parseFloat()函数仅解析一个参数,将其返回一个浮点数。示例如下图所示:
在这里插入图片描述
与parseInt()函数相同的是,遇到参数第一个异常字符时就会放弃,无论该字符串剩余字符串是否可用。示例如下图所示:

在这里插入图片描述此外,parseFloat()函数还可以接受指数形式的参数输入),而parseInt()则不行。示例如下图:

在这里插入图片描述

3. isNaN()

isNaN()函数可确定某个输入值是否为可以参与算数运算的数字,即确定一个值是否为NaN。这样以来,该函数也可以用来检查parseInt()和parseFloat()的调用以及其它算数运算成功与否。

示例如下图所示:
在这里插入图片描述

4. isFinite()

isFinite()函数用来判断传入的参数值是否为一个有限数值(即finite number),也就是检查输入是否为一个既非Infinity,也非NaN的数字。示例如下图:
在这里插入图片描述
以上情况均返回false, 以下是返回true的例子。
在这里插入图片描述

5. encodeURI()

通常,我们访问一个网站,需要输入网址,例如:https://www.bing.com , 这其实就是一个URL,即统一资源定位符(Uniform Resource Locator)。与URL很像的,还有URI,即统一资源标识符(Uniform Resource Identifier)。

URI是URL的超集,也即更高层次的抽象。JavaScript语言提供了对统一资源标识符(URI)的编码函数,就是encodeURI();通过它能够将特定字符每个实例替换为一个、两个、三个或四个转义序列来对URI进行编码。

示例如下图:
在这里插入图片描述

6. encodeURIComponent()

encodeURIComponent()函数通过将特定字符的每个实例替换成代表字符的UTF-8编码的一个、两个、三个或四个转义序列来编码URI。

在这里插入图片描述
encodeURI()和encodeURIComponent()分别有各自对应的反编码函数,即decodeURI()和decodeURIComponent()。在此不再举例详述。

7. eval()

eval()函数会将传入的字符串当作JavaScript代码(或表达式)执行。示例如下图:
在这里插入图片描述

这里eval(‘3 + 2’)与表达式3 + 2执行效果是相同的。当然,尽管eval()在某些情况下有用,但除非必要,还是尽量避免这样使用。在大多数情况下,使代码优雅非常重要,可以有其它的选择,可能使代码更易于编写和维护。

借用有经验的程序员的话,”Eval is eval” (即:Eval是魔鬼),真乃至理名言也。

*8. escape()

escape()函数用来生成新的由十六进制转义序列替换的字符串。但该函数已被废弃。该功能由前述的encodeURI()或encodeURIComponent()函数代替。

技术好文陆续推出,敬请关注。

喜欢就点赞哈!您的认可,我的动力。😊

相关阅读:

  1. Javascript编程进阶 - Return语句
  2. Javascript编程基础 - For循环
  3. Javascript编程基础 - 闭包(Closure)
  4. Javascript编程基础 - 布尔值(Booleans)
  5. Javascript编程基础 - 对象
  6. Javascript编程基础 - 函数进阶
  7. Javascript编程基础 - 条件语句
  8. Javascript编程基础 - 函数入门
  9. Javascript编程基础 - 关键字Let, Const和Var的区别
  10. Javascript编程基础 - 变量
  11. Javascript编程基础 - 输出
  12. 安装最新版WebStorm来开发Javascript应用程序
  13. 用CodePen实现JavaScript在线开发
  14. Javascript编程基础 - 用Visual Studio Code搭建JavaScript开发环境

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1292743.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用HadSky搭配内网穿透工具搭建个人论坛并发布至公网随时随地可访问

文章目录 前言1. 网站搭建1.1 网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道(云端设置)2.3 Cpolar稳定隧道(本地设置)2.4 公网访问测试 总结 前言 经过多年的基础…

【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)三种strlen模拟实现

🌈write in front :🔍个人主页 : 啊森要自信的主页 ✏️真正相信奇迹的家伙,本身和奇迹一样了不起啊! 欢迎大家关注🔍点赞👍收藏⭐️留言📝>希望看完我的文章对你有小小的帮助&am…

使用Python实现轮盘赌选择法Roulette Wheel Selection Method in Python

一、引言 最近在手写遗传算法,想尝试解决一些优化问题。然而,在编码的过程中,自己发现了很多都不懂的问题。比如,交叉的操作,有单点交叉、两点交叉和多点交叉,具体选哪一种会更好呢?未知。还有交…

异常检测 | 基于孤立森林(Isolation Forest)的数据异常数据检测(结合t-SNE降维可视化)

异常检测 | MATLAB实现基于孤立森林的数据异常检测 目录 异常检测 | MATLAB实现基于孤立森林的数据异常检测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现基于孤立森林(Isolation Forest)的数据异常数据检测可视化(完整源码和数据) 基于孤立森林(…

好用免费的AI换脸5个工具

在当今社会的发展中,人工智能(Artificial Intelligence, AI)扮演着关键的角色,其应用领域不断扩展。作为AI的一个分支,换脸技术近年来备受欢迎。这项技术使得将一个人的面部特征迁移到另一个人的照片或视频成为可能。除…

【React】路由的基础使用

react-router-dom6的基础使用 1、安装依赖 npm i react-router-dom默认安装最新版本的 2、在src/router/index.js import { createBrowserRouter } from "react-router-dom"/* createBrowserRouter:[/home]--h5路由createHashRouter:[/#/ho…

各种滤波算法的比较(GF、KF、EKF、UKF、PF),内附简单实现代码

目录 一、前言 二、滤波算法介绍 1、GF(高斯滤波) 2、KF(卡尔曼滤波) 3、EKF(可扩展卡尔曼滤波) 4、UKF(无迹卡尔曼滤波) 5、PF(粒子滤波) 三、不同滤…

zabbix配置snmp trap--使用snmptrapd和Bash接收器--图文教程

1.前言 我的zabbix的版本是5.0版本,5.0的官方文档没有使用bash接收器的示例,6.0的官方文档有使用bash接收器的示例,但是,下载文件的链接失效?! 这里讲解zabbix-server端配置和zabbix web端配置 2.zabbix-…

Day04 Liunx高级系统设计4-信号

进程间通讯 引入 如何将 A 进程中的数据传入 B 进程呢 ? 我们要使用进程间通讯 概述 中文名 : 进程间通讯 英文名 :IPC 英文全称 :Inter Processes Communication 作用: 数据传输:一个进程需要将他的数据发送给另一个进程】 资源共享:多个进程可以…

排序:直接选择排序

直接选择排序: 本质: 直接选择排序的本质就是在数组中进行遍历挑选出最大的元素,讲最大的元素放到对应的位置后,再次选出次大的位置,而后又放到对应的位置..........................直到数组成为一个有序序列。 优…

二叉树的层平均值[中等]

优质博文:IT-BLOG-CN 一、题目 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[3.00000,14.50000,1…

解决:AttributeError: module ‘copy’ has no attribute ‘copy’

解决:AttributeError: module ‘copy’ has no attribute ‘copy’ 文章目录 解决:AttributeError: module copy has no attribute copy背景报错问题报错翻译报错位置代码报错原因解决方法方法一方法二方法三今天的分享就到此结束了 背景 在使用之前的代…

C语言指针详解上

1 野指针 int main01(){//野指针就是没有初始化的指针,指针的指向是随机的,不可以 操作野指针//int a 0;//指针p保存的地址一定是定义过的(向系统申请过的)int *p;//野指针*p 200;printf("%d\n",*p);system("pause");return 0;}2 空指针 空指针的作用…

Unity 关于Ray、RaycastHit、Raycast及其使用

Unity中,我们要进行物理模拟和碰撞检测时,有三个重要的概念Ray、RaycastHit、Raycast。 其中,Ray可以理解为射线,它是一条从起点沿着特定方向延伸的无限长线段。 它的语法是: Ray(Vector3 origin, Vector3 directio…

使用阿里巴巴同步工具DataX实现Mysql与ElasticSearch(ES)数据同步

一、Linux环境要求 二、准备工作 2.1 Linux安装jdk 2.2 linux安装python 2.3 下载DataX: 三、DataX压缩包导入,解压缩 四、编写同步Job 五、执行Job 六、定时更新 6.1 创建定时任务 6.2 提交定时任务 6.3 查看定时任务 七、增量更新思路 一、Linux环境要…

el-table操作栏按钮过多 增加展开/收起功能

是的 如图所示有那么一条数据 列表操作栏的按钮七八个 小屏笔记本啥数据项也别看了 就剩下个固定列大刺刺的占着整个页面 解决方法&#xff1a; <el-table-column :width"tableToggle ? 600 : 300" label"操作栏" align"center" header-ali…

类和对象,this指针

一、类的引入&#xff1a; 如下&#xff0c;在C中&#xff0c;我们可以在结构体中定义函数&#xff0c;如下&#xff0c;之前我们学习C中中一直是在结构体中定义变量。 struct student{void studentinfo(const char* name,const char* gener,int age){ strcpy(_name,name);st…

前端css面试题(四)

文章目录 对一些 CSS 默认值的考察css选择器说一下z-indexz-index的值大的dom一定能覆盖z-index值小的dom吗如果一个第三方组件的z-index与我们现有业务的页面有冲突&#xff0c;怎么处理关于浮动元素样式引入权重问题链接引入&#xff08;Link&#xff09;和 import注入的区别…

理解输出电压纹波和噪声:来源与抑制

医疗设备、测试测量仪器等很多应用对电源的纹波和噪声极其敏感。理解输出电压纹波和噪声的产生机制以及测量技术是优化改进电路性能的基础。 1&#xff1a;输出电压纹波 以Buck电路为例&#xff0c;由于寄生参数的影响&#xff0c;实际Buck电路的输出电压并非是稳定干净的直流…

【wvp】测试记录

ffmpeg 这是个莫名其妙的报错&#xff0c;通过排查&#xff0c;应该是zlm哪个进程引起的 会议室的性能 网络IO也就20M