path.resolve([arg1,arg2,…])根據引數的不同,返回值存在兩種情況。
以下為引數的兩種情況:
1.每個引數都不帶`/`,比如path.resolve(),或者path.resolve(`path1`,`path2`),或者path.resolve(`./path`);
2.一個或多個引數最開頭帶`/`符號 path.resolve(`/path`);
返回值分別為:
1.絕對路徑
2.相對路徑
下面具體分析:
1.引數為空:
*path.resolve()或者paht.resolve(“)
輸出:當前檔案所在資料夾路徑 === __dirname
2.引數為資料夾名字(引數>=1):
*path.resolve(`path`)
輸出:當前檔案所在資料夾絕對路徑/path
*或者 path.resolve(`path1`,`path2`)
輸出:當前檔案所在資料夾絕對路徑/path1/path2
*或者 path.resolve(`path1`,`path2`…….`pathX`)
輸出:當前檔案所在資料夾絕對路徑/path1/path2...../pathX
3. 某個引數為`./`+檔名
*path.resolve(`./path`)
輸出:當前檔案所在資料夾絕對路徑/path
*或者path.resolve(`path1`,`./path2`)
輸出:當前檔案所在資料夾絕對路徑/path1/path2
4.資料夾名字前加了`/`
注意,無論是第幾個檔案前加了/!!!最終路徑都為:/+‘最後一個前面加/的檔案檔名’+‘剩下資料夾’
好的,我知道上面那句話很難懂,那就看例子
4.1.path.resolve(`/path`)
輸出: /path
4.2.
4.2.1path.resolve(`path1`,`path2`,`/path3`)
*前兩個path前沒有斜槓,只最後一個有
輸出: /path2
4.2.2.path.resolve(`path1`,`/path2`,`/path3`)
*後面兩個path都有斜槓
輸出:/path2
看到沒,跟path1,path2,根本沒有任何關係,因為最後一個path2前面有斜槓/,所以地址為path2
4.3.path.resolve(`path1`,`/path2`,`path3`)
*path2有斜槓,後面的path3沒有斜槓
輸出: /path2/path3
總結:
if(當path.resolve引數中不存在最開頭帶/的引數時)
return 絕對路徑
else
return /+‘最後一個前面加/的檔案檔名’+‘剩下資料夾’
帶/的引數:舉個例子來解釋就是 `/path`。 注:不包括`./path`