2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > JavaScript高级程序设计---学习笔记(四)

JavaScript高级程序设计---学习笔记(四)

时间:2022-07-11 16:19:40

相关推荐

JavaScript高级程序设计---学习笔记(四)

1.全局变量不能通过delete操作符删除,而直接在window对象上定义的属性可以。

var age = 29;window.color = "red";delete age;//无法删除delete color;//可以删除alert(window.age);//29alert(window.color);//undefined

2.尝试访问未声明的变量会抛出错误,但通过查询window对象可以知道某个可能未声明的变量是否存在。

var newValue = oldValue;//会抛错,因为oldValue未定义var newValue = window.oldValue;//不会出错,因为这是一次属性查询,newValue的结果是undefined

3.location对象查询字符串参数

虽然location.search可以返回从问号到URL末尾的所有内容,但却没有办法逐个访问其中的每个查询字符串参数。为此,可以创建下面这样一个函数,用以解析查询字符串,然后返回包含所有参数的一个对象:

function getQueryStringArgs(){//取得查询字符串并去掉开头的问号var qs = (location.search.length > 0 ? location.search.substring(1) : "");//保存数据的对象var args = [];//取得每一项var items = qs.length ? qs.split("&") : [];var item = null;var name = null;var value = null;//逐个将每一项添加到args对象中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;}

//假设查询的字符串是?q=javascript&num=10

var args = getQueryStringArgs();

alert(args["q"]);//javascript

alert(args["num"]);//10

这个函数的第一步是先去掉查询字符串开头的问号,前提是location.search中必须要包含一个或多个字符。然后将所有参数保存在args对象中,该对象以字面量形式创建。接下来根据和号(&)来分割查询字符串,并返回name=value格式的字符串数组。然后for循环会迭代这个数组,再根据等于号分割每一项,从而返回第一项为参数名,第二项为参数值的数组。再使用decodeComponent()分别解码name和value(因为查询字符串应该是被编码过的),最后将name作为args对象的属性,将value作为相应属性的值。最后调用函数,每个查询字符串参数都成了返回对象的属性,方便了对每个参数的访问。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。