无需申请自动送彩金68_白菜送彩金网站大全[无需申请秒送彩金]
做最好的网站
来自 无需申请自动 2019-08-01 11:20 的文章
当前位置: 无需申请自动送彩金68 > 无需申请自动 > 正文

探讨jQuery的ajax使用场景,Javascript中克隆一个数组

08年一家公司JS面试题,职位是javascript工程师(赴google)

一:jQuery.ajax语法基础

Function.prototype的apply和call是在1999年发布的ECMA262 Edition3中才加入的(1998年发布ECMA262 Edition2)。在此前的的浏览器如IE5.01(JScript 5.0)中是没有apply和call的。因此会带来一些兼容性问题,以下是修复方式:

面试官问我如何克隆一个数组,当时想了下js的Object没有clone方法,java的Object有。

jQuery.ajax([options])

复制代码 代码如下:

那怎么得到一个新数组呢?

概述:通过 HTTP 请求加载远程数据。

if(!Function.prototype.apply){
    Function.prototype.apply = function(obj, args){
        obj = obj == undefined ? window : Object(obj);//obj可以是js基本类型
        var i = 0, ary = [], str;
        if(args){
            for( len=args.length; i<len; i ){
                ary[i] = "args[" i "]";
            }
        }
        obj._apply = this;
        str = 'obj._apply(' ary.join(',') ')';
        try{
            return eval(str);
        }catch(e){
        }finally{
            delete obj._apply;
        }   
    };
}
if(!Function.prototype.call){
    Function.prototype.call = function(obj){
        var i = 1, args = [];
        for( len=arguments.length; i<len; i ){
            args[i-1] = arguments[i];
        }
        return this.apply(obj, args);
    };
}

我当时回答:用一个loop将源数组元素依次push到新数组中。这是最简单的方法,但显然不是面试官想要的答案。

jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。使用这个方法可以获得更多的灵活性。

您可能感兴趣的文章:

  • Javascript call和apply区别及使用方法
  • javascript中call和apply方法浅谈
  • Javascript 中的 call 和 apply使用介绍
  • javascript call和apply方法

最后告知我:利用Array的slice方法。示例如下:

数据类型 $.ajax()函数依赖服务器提供的信息来处理返回的数据。通过dataType选项还可以指定其他不同数据处理方式。其中,text和xml类型返回的数据不会经过处理。如果指定为html类型,任何内嵌的JavaScript都会在HTML作为一个字符串返回之前执行。如果指定为json类型,则会把获取到的数据作为一个JavaScript对象来解析,并且把构建好的对象作为结果返回。发送数据到服务器,默认情况下,Ajax请求使用GET方法。如果要使用POST方法,可以设定type参数值。这个选项也会影响data选项中的内容如何发送到服务器。

复制代码 代码如下:

使用场景一: 描述:保存数据到服务器,成功时显示信息。jQuery 代码:
$.ajax({
   type: "POST",
   url: "some.php",
   data: "name=John&location=Boston",
   success: function(msg){
     alert( "Data Saved: " msg );
   }
});

var ary = [1,2,3];//源数组
var ary2 = ary.slice(0);//克隆一个新数组
console.log(ary2);

使用场景二: 描述:装入一个 HTML 网页最新版本。jQuery 代码:
$.ajax({
  url: "test.html",
  cache: false,
  success: function(html){
    $("#results").append(html);
  }
});

/*  改变ary2,不会影响到ary,说明的确是两个数组而非引用
 *  如果是两个引用,则改变其中任何一个都是对同一个数组操作
 */
ary2[0] = 10;
console.log(ary2);
console.log(ary);

load(url, [data], [callback])
概述:载入远程 HTML 文件代码并插入至 DOM 中。
默认使用 GET 方式 - 传递附加参数时自动转换为 POST 方式。

您可能感兴趣的文章:

  • js克隆对象、数组的常用方法介绍
  • js 数组克隆方法 小结
  • JavaScript 克隆数组最简单的方法
  • JavaScript数组的快速克隆(slice()函数)和数组的排序、乱序和搜索(sort()函数)
  • JS克隆,属性,数组,对象,函数实例分析
  • javascript数组克隆简单实现方法

使用场景一: 描述:加载 feeds.html 文件内容。jQuery 代码:
$("#feeds").load("feeds.html");

jQuery.get(url, [data], [callback], [type])和jQuery.post(url, [data], [callback], [type])

概述:通过远程 HTTP GET或POST  请求载入信息。
这是一个简单的 GET或POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。
描述:显示 test.aspx 返回值(HTML 或 XML,取决于返回值),添加一组请求参数。jQuery 代码:
$.get("test.aspx", { name: "John", time: "2pm" },
  function(data){
    alert("Data Loaded: " data);
});
$.post("test.aspx", { name: "John", time: "2pm" },
  function(data){
    alert("Data Loaded: " data);
});

上面是基本的语法,我们只是先做一个了解,要是你已经熟悉,那么我们将开始一步一步对上面的方法和使用场景进行具体讨论。

本文由无需申请自动送彩金68发布于无需申请自动,转载请注明出处:探讨jQuery的ajax使用场景,Javascript中克隆一个数组

关键词: