path.join()及path.resolve()区别

path.join只是简单的将路径片段进行拼接,并规范化生成一个路径,而path.resolve则一定会生成一个绝对路径,相当于执行cd操作,与cd操作不同的是,这些路径可以是文件,并且可不必实际存在。

“平台特定的分隔符”:

  1. windows下文件路径分隔符使用的是"\"
  2. Linux下文件路径分隔符使用的是"/"
相同点:
  1. 都是对路径进行拼接。
  2. 注意:如果路径中出现".."或"../",那么它前面的路径片段将被丢失。
不同点: 
  • join是把各个path片段连接在一起, resolve把‘/’当成根目录
path.join('/a', '/b');  // /a/b
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');  //  '/foo/bar/baz/asdf'
path.resolve('/a', '/b'); // C:/b
  • resolve在传入非 / 路径时,会自动加上当前目录形成一个绝对路径,而join仅仅用于路径拼接
//当前路径为 C:/user
path.join('a', 'b', '..', 'd') // a/d

path.resolve('a', 'b', '..', 'd') // C:/Users/a/d

path.resolve('/foo/bar', './baz') // 'C:/foo/bar/baz'

path.resolve('/foo', '/bar', 'baz') // C:/bar/baz

path.resolve('/foo/bar', '/tmp/file/') // 'C:/tmp/file'

path.resolve('d:/b/c','/a.js') // 'd:/a.js' 更改了盘符
  •  对于长度为零的 path 片段:join 会返回 '.',表示当前工作目录;resolve会返回当前工作目录的绝对路径
path.join()  //'.'
path.resolve() // C:/user

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值