腾讯2013笔试题—web前端笔试题 (老题练手)
问题描述(web前端开发附加题1):
编写一个javascript的函数把url解析为与页面的javascript.location对象相似的实体对象,如:url :'http://www.qq.com/index.html?key1=1&key2=2',最后输出的对象是:
{
    protocol: "http",
    hostname: "www.qq.com",
    pathname: "index.html",
    query: "key1=1&key2=2"
}
我的答案:
     var mylocation = {
         'protocol':'http',
         'hostname':'',
         'pathname':'',
         'query':''
     }
     var url = 'http://www.qq.com/index.html?key1=1&key2=2';
     var str=url.replace(/http\:\/\//,"");
     var a=str.split(/(\/)|(\?)/g);
     mylocation.hostname=a[0];
     var arr=a[1].split("?");
     mylocation.pathname=arr[0];
     mylocation.query=arr[1];
     console.log(mylocation);
发现一个有趣的现象,这里提出与大家分享:
本来打算直接有正则分解字符串:
str.split(/(\/)|(\?)/g);
最后发现怎么搞都是:
["www.qq.com", "/", undefined, "index.html", undefined, "?", "key1=1&key2=2"]
最后查了资料才知道,split方法在用正则分解字符串的时候不会消除正则表达式,为此纠结好久。
作用:
split() 方法用于把一个字符串分割成字符串数组。
语法:
- 
stringObject.split(separator,howmany) 
| 参数 | 描述 | 
|---|---|
| separator | 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。 | 
| howmany | 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 | 
返回值:
一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。
但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。
腾讯2013笔试题—web前端笔试题 (老题练手)的更多相关文章
- 也许你需要点实用的-Web前端笔试题
		之前发的一篇博客里没有附上答案,现在有空整理了下发出来,希望能帮助到正在找工作的你,还是那句话:技术只有自己真正理解了才是自己的东西,共勉. Web前端笔试题 Html+css 1.对WEB标准以及w ... 
- web前端面试试题总结---html篇
		HTML Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于 <html> 标签之前.告知浏览器的解析器 ... 
- web前端面试试题总结---其他
		其他问题 原来公司工作流程是怎么样的,如何与其他人协作的?如何夸部门合作的? 你遇到过比较难的技术问题是?你是如何解决的? 设计模式 知道什么是singleton, factory, strategy ... 
- web前端面试试题总结---css篇
		CSS 介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的? (1)有两种, IE 盒子模型.W3C 盒子模型: (2)盒模型: 内容(content).填充(padding).边界(m ... 
- web前端面试试题总结---javascript篇
		JavaScript 介绍js的基本数据类型. Undefined.Null.Boolean.Number.String. ECMAScript 2015 新增:Symbol(创建后独一无二且不可变的 ... 
- 2015腾讯web前端笔试题
		1 请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性) 2 请指出一下代码的性能问题,并经行优化. var info="腾讯拍拍网(www.paipai.com)是 ... 
- 【理论面试篇】收集整理来自网络上的一些常见的 经典前端、H5面试题 Web前端开发面试题
		##2017.10.30收集 面试技巧 5.1 面试形式 1) 一般而言,小公司做笔试题:大公司面谈项目经验:做地图的一定考算法 2) 面试官喜欢什么样的人 ü 技术好. ... 
- 【编码题篇】收集整理来自网络上的一些常见的 经典前端、H5面试题 Web前端开发面试题
		编写一个方法 求一个字符串的字节长度假设:一个英文字符占用一个字节,一个中文字符占用两个字节 function GetBytes(str){ var len = str.length; var byt ... 
- 响应国家号召 1+X 证书 Web 前端开发考试模拟题
		1+x证书Web前端开发初级理论考试样题2019 http://blog.zh66.club/index.php/archives/149/ 1+x证书Web前端开发初级实操考试样题2019 http ... 
随机推荐
- svg转换工具
			package com.rubekid.springmvc.utils; import java.io.ByteArrayInputStream; import java.io.ByteArrayOu ... 
- 纯 CSS 创建各种不同的图形形状
			使用代码 矩形 .rectangle { width: 250px; height: 150px; background-color: #6DC75F; } <div></div&g ... 
- phpmyadmin设置id自增(AUTO_INCREMENT)(转)
			phpmyadmin设置id自增(AUTO_INCREMENT) 在A_I 前面打勾:如图 AUTO_INCREMENT =A_I 查看效果 
- 第一个androidAPP项目总结—ListView的上拉和下拉
			1.下拉刷新 需继承implements SwipeRefreshLayout.OnRefreshListener @Overridepublic void onRefresh() { new Wea ... 
- gitHub项目框架使用排名
			项目名称 项目简介 使用心得 1. react-native 这 个是 Facebook 在 React ... 
- 怎样成为PHP 方向的一个合格的架构师
			突然看到这篇文章, 值得反省, 乐在其中, 在接下来的发展中不被淘汰的都来看看, 如何成为一个架构师先明确这里所指的PHP工程师,是指主要以PHP进行Web系统的开发,没有使用其的语言工作过.工作经验 ... 
- php魔法常量
			有七个魔术常量它们的值随着它们在代码中的位置改变而改变.例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定.这些特殊的常量不区分大小写,如下: 名称 说明 __LINE__ 文件中的当前行号 ... 
- sql server备份相关
			本文转载自http://dreamfire.blog.51cto.com/418026/152075/ 感谢作者的分享!! 数据库没有备份---应如何还原丢失的数据 环境描述: 某公司装了一台 ... 
- zepto源码研究 - zepto.js-3 (常用的工具)
			pluck: /** * 根据是否存在此属性来获取当前集合,返回一组属性值 * @param property * @returns {*} */ pluck: function(property){ ... 
- oracle单行函数之通用函数
			NVL (a,b) --当a=null时,返回b,否则返回a NVL2 (a, b, c) -- 当a=null时,返回c,否则返回b NULLIF (expr1, expr2) --当a=b时,返回 ... 
