• JavaScript 获取地址栏参数


    1.

    function a() {
        console.log(this);
    }
    a.call(null);

    window

    如果第一个参数传入的对象调用者是null或者undefined的话,call方法将把全局对象(也就是window)作为this的值。所以,不管你什么时候传入null,其this都是全局对象window,

    所以该题目可以理解成如下代码:

    function a() {
        console.log(this);
    }
    a.call(window);

    获取地址栏参数,并将其转换成一个对象

    function getArgs() {
        var args = new Object();
        var query = location.search.substring(1);
        query = query.replace(/+/g, " ");
        var pairs = query.split("&"); // Break at ampersand
        for (var i = 0; i < pairs.length; i++) {
            var pos = pairs[i].indexOf('='); // Look for "name=value"
            if (pos == -1) continue; // If not found, skip
            var argname = pairs[i].substring(0, pos); // Extract the name
            var value = pairs[i].substring(pos + 1); // Extract the value
            value = decodeURIComponent(value); // Decode it, if needed
            args[argname] = value; // Store as a property
        }
        return args;
    }
    var data=getArgs();

     一个地址获取域名数组

    var getHost = function (url) {
        var prev = "";
        var result = [];
        var index = url.indexOf('https');
        if (index > -1) { url = url.replace("https://", ""); prev = "https://"; }
        var index2 = url.indexOf("http");
        if (index2 > -1) { url = url.replace("http://", ""); prev = "http://"; }
        var index3 = url.indexOf('/');
        var host = url.substring(0, index3);
        result.push(host);
        result.push(prev + host);
        return result;
    }

    var url="https://pgw.grapay.net/Test/index.htm";

    var result=getHost(url);

    result[0]:pgw.grapay.net

    result[1]:https://pgw.grapay.net

    3.方法的声明

            console.log(add);
            function add(x) { return x + 1; }
            console.log(add);
            function add(x) { return x + 3; }
            console.log(add);
    
            console.log(fun);
            var fun = function (x) { return x + 1; }
            console.log(fun);
            var fun = function (x) { return x + 3; }
            console.log(fun);

     

     function add(x) { return x + 1; }
            console.log(add(1));
            function add(x) { return x + 3; }
            console.log(add(1));
    
            var fun = function (x) { return x + 1; }
            console.log(fun(1));
            var fun = function (x) { return x + 3; }
            console.log(fun(1));

    可以看出这两种声明的不同

     4.关于(,,,,,,)这样的返回结果

    var f = (function f(){ return "1"; }, function g(){ return 2; })(); 
    typeof f;
     "number"
    
    逗号操作符的使用可以很混淆,但这段说明它的行为:
    var x = (1, 2, 3); 
    x; 
    
    x的值是3,这表明,当你有一系列的组合在一起,并由逗号分隔的表达式,它们从左到右进行计算,但只有最后一个表达式的结果保存。由于同样的原因,这个问题可以改写为减少混乱:
    
    var f = (function g(){ return 2; })(); 
    typeof f; 
    
    关于逗号表达式:
    原文:
    http://www.2ality.com/2012/09/expressions-vs-statements.html
    译文:
    http://www.cnblogs.com/ziyunfei/archive/2012/09/16/2687589.html

     5.delete

    http://www.cnblogs.com/aaronjs/p/3172112.html#2832944

  • 相关阅读:
    ubuntu16.04下安装Wineqq+Firefox flash安装+搜狗输入法+截图软件ksnatshot
    集合数据类型
    hadoop2.7ubuntu伪分布式搭建
    广播变量&累加变量
    第一行代码----服务的最佳实践(体会,问题,解决)
    c语言中产生随机数
    如何把StringBuilder类型字符串中的字符换位置
    判断字母的大小写方法(3种)
    方法的参数个数讨论。
    中缀表达式->后缀表达式
  • 原文地址:https://www.cnblogs.com/hongdada/p/3309849.html
Copyright © 2020-2023  润新知