前言
随着使用node.js越来越多,在对path的两个方法:join
和 resolve
越来越迷惑了。
所以,有必要彻底搞懂他们两个的差别。
定义
说到区别,我们先看定义:
path.join
The path.join() method joins all given path segments together using the platform specific separator as a delimiter, then normalizes the resulting path.
翻译过来就是:
这个path.join()方法是使用平台具体分隔符把所有给定的路径片段值连接起来,然后得到一个标准路径。
关键字:路径片段、分隔符、连接
path.resolve
The path.resolve() method resolves a sequence of paths or path segments into an absolute path.
翻译过来就是:
这个path.resolve方式解析一串路径或路径片段到一个绝对路径。
关键字:路径、路径片段、绝对路径
差异
join相当于把路径字符串按照规则连接起来。并不关心路径本身是否是绝对路径。
resolve本意是解析,就是尝试搜索,并且返回的是绝对地址。path.resolve(a, b, c)等价于cd $a && cd $b && cd $c
。
例子:
path.join('/a', '/b'); // /a/b
path.resolve('/a', '/b'); // /b <=> cd /a && cd /b