1,nodejs啟動
2,url
[url.parse](url,if,if) url解析
參數依次為:需要解析的url
> url.parse('http://www.lxweimin.com/writer#/notebooks/12532849/notes/18716228')
Url {
protocol: 'http:', //url的協議,沒有返回null
slashes: true,//是否有協議的雙斜線'('//'),沒有返回null
auth: null,
host: 'www.lxweimin.com', //域名
port: null, //端口
hostname: 'www.lxweimin.com',
hash: '#/notebooks/12532849/notes/18716228',//hash值,url的錨點(#注1)
search: null, //查詢參數
query: null, //路由查詢參數,search是字符串,query同時可以通過配置轉成json
pathname: '/writer',//路徑名
path: '/writer',//路徑
href: 'http://www.lxweimin.com/writer#/notebooks/12532849/notes/18716228' }
>
url.parse('www.imooc.com:8080/video/6711?a=1&b=2',true,true)
Url {
protocol: 'www.imooc.com:',
slashes: null,
auth: null,
host: '8080',
port: null,
hostname: '8080',
hash: null,
search: '?a=1&b=2',
query: { a: '1', b: '2' },
pathname: '/video/6711',
path: '/video/6711?a=1&b=2',
href: 'www.imooc.com:8080/video/6711?a=1&b=2' }
>
[url.format]將url對象轉為地址
> url.format({
... protocol: 'www.imooc.com:',
... slashes: null,
... auth: null,
... host: '8080',
... port: null,
... hostname: '8080',
... hash: null,
... search: '?a=1&b=2',
... query: { a: '1', b: '2' },
... pathname: '/video/6711',
... path: '/video/6711?a=1&b=2',
... href: 'www.imooc.com:8080/video/6711?a=1&b=2' })
'www.imooc.com:8080/video/6711?a=1&b=2'
>
3,querystring
[querystring.stringify({})] 對象轉參數字符串
querystring.stringify({name:'zn',age:[1,2,3],weight:''})
'name=zn&age=1&age=2&age=3&weight='
[querystring.stringify({},'')] 對象轉參數字符串,第二個參數為連接符,默認為&
> querystring.stringify({name:'zn',age:[1,2,3],weight:''},'.')
'name=zn.age=1.age=2.age=3.weight='
>
[querystring.stringify({},'')] 對象轉參數字符串,第三個參數為對象屬性連接符,默認為=
> querystring.stringify({name:'zn',age:[1,2,3],weight:''},',',':')
'name:zn,age:1,age:2,age:3,weight:'
>
[querystring.parse()]參數字符串轉jsonobject
> querystring.parse('name=zn,a,b&age=1&weight')
{ name: 'zn,a,b', age: '1', weight: '' }
> querystring.parse('name=zn,a,b&age=1&weight=')
{ name: 'zn,a,b', age: '1', weight: '' }
>
[querystring.parse()]參數字符串轉jsonobject第二個參數是分隔符,默認為&
> querystring.parse('name=zn,a,b@age=1&weight','@')
{ name: 'zn,a,b', age: '1&weight' }
>
[querystring.parse()]參數字符串轉jsonobject第三個參數為對象屬性連接符,默認為=
> querystring.parse('name!zn,a,b@age!1@weight','@','!')
{ name: 'zn,a,b', age: '1', weight: '' }
注1 : 錨點
錨點的定位是通過瀏覽器URL地址的hash觸發的。
頁面之所以能定位到錨點所在位置,都是因為URL地址中的錨鏈的作用,而不是點擊行為。最好的證據就是,
當重新載入帶有錨鏈的頁面時,錨點依然會被定位。
錨點生效條件:
?. 元素可滾動;
?. 錨點元素在內部;
錨點簡圖