加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

JavaScript面试题

发布时间:2021-07-12 11:35:58 所属栏目:运营 来源:网络整理
导读:h1 id="js相关问题"JS相关问题 h3 id="数组去重"数组去重 function uniq(array){ var temp = []; //一个新的临时数组 for(var i = 0; i var aa = [1,2,4,9,6,7,5,3,5]; console.log(aa) console.log(uniq(aa)) h3 id="谈一谈javascript作用域链"1、谈一谈Jav

JSON对象转换为JSON字符串

  var last=obj.toJSONString();
  var last=JSON.stringify(obj);

  • 1、apply()函数有两个参数:第一个参数是上下文,第二个参数是参数组成的数组。如果上下文是null,则使用全局对象代替。
  • 如:function.apply(thi是,[1,3]);
  • 2、call()的第一个参数是上下文,后续是实例传入的参数序列。
  • 如:function.call(this,3);

Array.prototype.unique1 = function () {
  var n = []; //一个新的临时数组
  for (var i = 0; i < this.length; i++) //遍历当前数组
  {
    //如果当前数组的第i已经保存进了临时数组,那么跳过,
    //否则把当前项push到临时数组里面
    if (n.indexOf(this[i]) == -1) n.push(this[i]);
  }
  return n;
}

Array.prototype.unique2 = function()
{
var n = {},r=[]; //n为hash表,r为临时数组
for(var i = 0; i < this.length; i++) //遍历当前数组
{
if (!n[this[i]]) //如果hash表中没有当前项
{
n[this[i]] = true; //存入hash表
r.push(this[i]); //把当前数组的当前项push到临时数组里面
}
}
return r;
}

Array.prototype.unique3 = function()
{
var n = [this[0]]; //结果数组
for(var i = 1; i < this.length; i++) //从第二项开始遍历
{
//如果当前数组的第i项在当前数组中第一次出现的位置不是i,
//那么表示第i项是重复的,忽略掉。否则存入结果数组
if (this.indexOf(this[i]) == i) n.push(this[i]);
}
return n;
}


<h3 id="js操作获取和设置cookie">33、js操作获取和设置cookie

//创建cookie
function setCookie(name,value,expires,path,domain,secure) {
    var cookieText = encodeURIComponent(name) + '=' + encodeURIComponent(value);
    if (expires instanceof Date) {
        cookieText += '; expires=' + expires;
    }
    if (path) {
        cookieText += '; expires=' + expires;
    }
    if (domain) {
        cookieText += '; domain=' + domain;
    }
    if (secure) {
        cookieText += '; secure';
    }
    document.cookie = cookieText;
}

//获取cookie
function getCookie(name) {
var cookieName = encodeURIComponent(name) + '=';
var cookieStart = document.cookie.indexOf(cookieName);
var cookieValue = null;
if (cookieStart > -1) {
var cookieEnd = document.cookie.indexOf(';',cookieStart);
if (cookieEnd == -1) {
cookieEnd = document.cookie.length;
}
cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length,cookieEnd));
}
return cookieValue;
}

//删除cookie
function unsetCookie(name) {
document.cookie = name + "= ; expires=" + new Date(0);
}


<h3 id="get和post的区别何时使用post">34、GET和POST的区别,何时使用POST?

  • GET:一般用于信息获取,使用URL传递参数,对发送信息的数量也有限制,一般在2000个字符
  • POST:一般用于修改服务器上的资源,对发送的信息没有限制
  • GET方式需要使用Request.QueryString来获取变量的值,而POST方式通过R额quest.Form来获取变量的值,也就是说GET是通过地址栏传值,而Post是通过提交表单来传值。
  • 然而,在以下情况中,请使用POST请求:
  • 无法使用缓存文件(更新服务器上的文件或数据库)
  • 向服务器发送大量数据(POST没有数据量限制)
  • 发送包含未知字符的用户输入时,POST比GET更稳定也更可靠

  • Falsh适合处理多媒体,矢量图形、访问机器;对css、处理文本上不足,不容易被搜索。
  • Ajax对css、文本支持很好、支持搜索;多媒体、矢量图形、机器访问不足。
  • 共同点:与服务器的无刷新传递消息、用户离线和在线状态,操作DOM

  • 1、创建XMLHttpRequest对象,也就是创建一个异步调用对象。
  • 2、创建一个新的HTTP请求,并指想向该HTTP请求的方法、URL及验证信息。
  • 3、设置响应HTTP请求状态变化的函数。
  • 4、发送HTTP请求。
  • 5、获取异步调用返回的数据。
  • 6、使用JavaScript和DOM实现局部刷新。

  • defer和async,动态创建DOM方式(用得最多),按需异步载入js

  • jsonp,iframe,window.name,window.postMessage

  • 1.创建了一个空对象,并且this变量引用该对象,同时还继承了该函数的原型。
  • 2.属性和方法被加入到this引用的对象中。
  • (编辑:核心网)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读