当前标签

JavaScript

JavaScript 是一种跨平台、面向对象的脚本语言。它是一种小巧轻量级的语言。在主机环境(例如,Web 浏览器)中,JavaScript 可以连接到其环境的对象,以提供对它们的编程控制。 -MDN

如何在JavaScript中解析Cookie

2022-06-15大约3分钟

在浏览器中,Cookie是以包含键值对的字符串格式存储。那么,如何解析浏览器Cookie字符串并返回所有cookie键值对的对象? 方式1:自己写代码来解析 自己用代码解析的话,要考虑这几点: 以 为分隔符,将每个键值对分开; 以 为分隔符,将每个键和值分开; 对于键和值,用 来解码。 具体代码: 方式2: 使用开源的npm包。 这里推荐一个包: cookie ,使用很广泛。 一般情况下,建议使用...

如何用代码生成PDF文档

2022-06-15大约21分钟

PDF格式是一个很常见的格式,有时候我们需要把一些内容生成PDF文件供用户使用。 如果是现成的Word等文档,我们可以直接用Wor的“另存为”功能来将其转换成PDF,或者使用一些其他类似Adobe Acrobat的工具来转换。这个我们不在这里多说。 如果是用代码来生成PDF文档,有一些办法。但是自己研究PDF格式的思路就不提了,重复造轮子,太慢,我们只考虑能重用开源代码的几种方式。 根据需求,我们...

JavaScript的String.replace()函数遇到$符合的时候不好使?

2022-03-25大约3分钟

在JavaScript里编程的时候,字符串替换最常用的方式就是用 了。 比如: 但是,如果上面的代码替换成这样,结果会是怎样呢? 是不是很出乎意料?原始字符串里面的 竟然没有被替换掉, 也消失了。 是不是JavaScript的bug? 其实不是的,原因是 符号在字符串替换的时候是一个特殊字符,所以在替换字符串的时候,如果有$符号,需要转义一下。 符号的转义,要用 符号。即一个 要变成 ,是不是很绕...

JavaScript里如何将数字转成两位小数的百分数?

2022-03-03大约2分钟

有时候,我们会遇到需要把数字按照格式转成百分数。比如 转成更易读的 来展示。 这个实际涉及两个步骤: 1. 把数字转成百分数 答案很简单,原来的数字乘以100,然后带上 即可。 2. 把数字转成小数点后n位小数的字符串 这里,我们用数值类型的 方法。 上面的例子里,我们保留了小数点后的3位,因此输出是 。 结论 综合以上的两个步骤,结果是:...

如何在JavaScript和Node.js里解析URL及参数?

2022-01-20大约7分钟

在编程的时候,我们有时候需要拿到URL并解析里面的参数,这种情况下,需要有个简单的办法来解析URL。 在以往,我们可能习惯用第三方的库来做这件事情,比如jquery或者 parse-url 之类的库,好处是这类库大家都熟悉,很容易找到使用的文档,能够快速地解决问题。 不过随着大而全的库(如jquery, AngularJS )日趋弱势,像React、Vue等专注于解决某一方面问题的库日益更加流行...

如何在JavaScript里拼接字符串?

2022-01-06大约11分钟

如果你有Java或其他语言的编程经验,那么可能会疑惑,在JavaScript里,没有StringBuilder之类的类或对象可以用,那么如何拼接字符串才是高效的呢? 一般来讲,JavaScript里拼接字符串有4种方式: 1. 使用 运算符来拼接 这种方式比较常见,用+将字符串连起来,得到一个新的字符串。 这种方法,可能许多编程老手会说有性能问题,理由是字符串是不可变的,因此每次拼接操作都会重新创...

如何解决Node.js里“Cannot find module”的错误?

2022-01-05大约9分钟

这个错是在写Node.js代码时一个很常见的错误,可以按照下面的思路来解决。 分三种情况,可以直接按自己的情况来看: 1. 自己的代码文件找不到。 比如下面的错误: 按照以下的思路来逐步排查原因: 确认文件 存在 如果第1步没问题,确定require栈里最后一个文件 里面require的路径没问题。这里所说的问题,通常是指:文件名没错,大小写完全一致。通常由于Windows系统的路径不区分大小写...

JavaScript里面如何快速生成乘法口诀练习题?

2022-01-02大约6分钟

问题的背景是这样的:我希望每天能够给小孩出一份乘法口诀的练习题,题目的顺序每天都不重复。作为程序员,肯定是不愿意手动去一道道出题的,那么写程序去生成这些题目是必须的。生成题目简单,二重循环就可以,但是把题目随机排序,有没有简单的办法? 在JavaScript里面,对于数组里面的元素,我们可以使用 来对数组的内容进行排序。使用这个方法,我们可以按照数据的值或属性按照某个规则进行升序或降序来排序。但是...

escape/encodeURI/encodeURIComponent的区别?

2021-12-10大约7分钟

JavaScirpt里有三个用来转义字符串的函数: 、 和 。记住这几个函数的区别不是那么容易,因此这篇文章来总结一下: 能够把大多数英文标点符号替换成对应的十六进制字符,但是面对UNICODE字符的时候,就不是那么够用了,这时候要考虑用 。 是 的一个扩展,区别是前者还会对这些符号进行转义: 。当URL里的参数有特殊字符或者包含中文等非ASCII字符的时候,就需...

JavaScript里如何根据条件为对象赋值

2021-09-20大约6分钟

在JavaScript里,我们有时候需要根据一些条件给一个变量赋值,比如,当value是有值的时候,要显示这个值,没有值的时候,显示" "。 勤快人的做法: 代码写的好长啊,看起来有点累,有没有简单点的写法?让我们看看懒人的写法吧。 懒人的做法: 在这里,用三目运算符(ternary operator),可以只用一行代码就达到上面多行代码就能达到的效果,太好了! 不过,上面的这个场景,三目运算符的...