path.resolve([arg1,arg2,...])返回值有兩種情況: 1.每個參數都不帶'/',比如path.resolve(),或者path.resolve('path1','path2'),或者path.resolve('./path'); 2.一個或多個參數最開頭帶'/'符號 path ...
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'