javascript
JavaScript高级程序设计---学习笔记(四)
1.全局變量不能通過(guò)delete操作符刪除,而直接在window對(duì)象上定義的屬性可以。
var age = 29;window.color = "red";delete age;//無(wú)法刪除delete color;//可以刪除 alert(window.age);//29alert(window.color);//undefined2.嘗試訪問(wèn)未聲明的變量會(huì)拋出錯(cuò)誤,但通過(guò)查詢window對(duì)象可以知道某個(gè)可能未聲明的變量是否存在。
var newValue = oldValue;//會(huì)拋錯(cuò),因?yàn)閛ldValue未定義var newValue = window.oldValue;//不會(huì)出錯(cuò),因?yàn)檫@是一次屬性查詢,newValue的結(jié)果是undefined3.location對(duì)象查詢字符串參數(shù)
雖然location.search可以返回從問(wèn)號(hào)到URL末尾的所有內(nèi)容,但卻沒(méi)有辦法逐個(gè)訪問(wèn)其中的每個(gè)查詢字符串參數(shù)。為此,可以創(chuàng)建下面這樣一個(gè)函數(shù),用以解析查詢字符串,然后返回包含所有參數(shù)的一個(gè)對(duì)象:
function getQueryStringArgs(){//取得查詢字符串并去掉開(kāi)頭的問(wèn)號(hào)var qs = (location.search.length > 0 ? location.search.substring(1) : "");//保存數(shù)據(jù)的對(duì)象var args = [];//取得每一項(xiàng)var items = qs.length ? qs.split("&") : [];var item = null;var name = null;var value = null;//逐個(gè)將每一項(xiàng)添加到args對(duì)象中for(var i=0;i< items.length;i++){item = items[i].split("=");name = decodeURIComponent(item[0]);value = decodeURIComponent(item[1]);if(name.length){args[name] = value;}}return args; }//假設(shè)查詢的字符串是?q=javascript&num=10
var args = getQueryStringArgs();
alert(args["q"]);//javascript
alert(args["num"]);//10
這個(gè)函數(shù)的第一步是先去掉查詢字符串開(kāi)頭的問(wèn)號(hào),前提是location.search中必須要包含一個(gè)或多個(gè)字符。然后將所有參數(shù)保存在args對(duì)象中,該對(duì)象以字面量形式創(chuàng)建。接下來(lái)根據(jù)和號(hào)(&)來(lái)分割查詢字符串,并返回name=value格式的字符串?dāng)?shù)組。然后for循環(huán)會(huì)迭代這個(gè)數(shù)組,再根據(jù)等于號(hào)分割每一項(xiàng),從而返回第一項(xiàng)為參數(shù)名,第二項(xiàng)為參數(shù)值的數(shù)組。再使用decodeComponent()分別解碼name和value(因?yàn)椴樵冏址畱?yīng)該是被編碼過(guò)的),最后將name作為args對(duì)象的屬性,將value作為相應(yīng)屬性的值。最后調(diào)用函數(shù),每個(gè)查詢字符串參數(shù)都成了返回對(duì)象的屬性,方便了對(duì)每個(gè)參數(shù)的訪問(wèn)。
?
轉(zhuǎn)載于:https://www.cnblogs.com/Lovebugs/p/6684945.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的JavaScript高级程序设计---学习笔记(四)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ffmpeg下载视频
- 下一篇: 非线性系统基于干扰观测器的抗干扰控制