zoukankan      html  css  js  c++  java
  • JavaScript高级程序设计---学习笔记(四)

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

        var age = 29;
        window.color = "red";
    
        delete age;//无法删除
        delete color;//可以删除
    
        alert(window.age);//29
        alert(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作为相应属性的值。最后调用函数,每个查询字符串参数都成了返回对象的属性,方便了对每个参数的访问。

  • 相关阅读:
    论面向服务架构(SOA)设计及其应用
    论MVC架构设计模式分析
    软件架构理论与实践读后感(一)
    视频全量分析规划书
    架构实战—软件架构设计的过程读后感(三)
    架构实战—软件架构设计的过程读后感(二)
    第8周周总结
    Refined Architecture阶段阅读笔记
    visual studio2010编译过程中出现COFF文件损坏的原因和方法总结
    解决visual studio 2013编译过程中存在的无法打开kernel.lib问题
  • 原文地址:https://www.cnblogs.com/Lovebugs/p/6684945.html
Copyright © 2011-2022 走看看