星空网 > 软件开发 > Java

Javascript面试题浅析

分享几道JavaScript相关的面试题.

字符串反转

这这里提供了两种解题思路。如果各位读者还有其他的思路,可以分享交流!

第一方法:

function reverse(str){  var sp = str.split(',');  //保存反转之后的字符串  var new_str = '';  /*从后往前取,用逗号分隔*/  for(var i = sp.length-1;i>=0;i--){    new_str += sp[i]+',';  }  /*取到length-1,否则会取到最后一个逗号。*/  new_str = new_str.substring(0,new_str.length-1);  return new_str;}

第二种方法:

function reverse(str){    return str.split(',').reverse().join(',');}

编写一个JavaScript函数 parseQueryString,它的用途是把URL参数解析为一个对象,如:var url = “http://witmax.cn/index.php?key0=0&key1=1&key2=2″

1.用?将url拆成两部分,第一部分为:http://witmax.cn/index.php,第二部分为:key0=0&key1=1&key2=2。也就是将地址和参数分开,保存在一个数组中

var arr = url.split('?');

2.在1的基础上将之前的部分,即参数部分用&拆成多个部分,如key0=0,key1=1。然后用=号将键值对拆开。

var arr = arr[1].split("&");for(var i = 0; i < arr.length; i++){  var a = arr[i].split('=');  params[a[0]] = a[1];}

完整代码

function parseQueryString(url){  //如果url为空或url没有参数则直接返回  if(url === null || url.indexOf('?') < 0) return ;  var params = [];  //将url拆成2部分  var arr = url.split('?');  if(arr.length <= 1){    return params;  }  //用&拆成多个部分,每个部分是一个键值对  //然后用=将键值对拆分  arr = arr[1].split('&');  for(var i = 0; i < arr.length; i++){    var a = arr[i].split('=');    params[a[0]] = ar[1];  }  return params;}

点击页面上的任意元素,弹出元素的标签名

这里涉及到浏览器的兼容性问题。简单的说明一下target和srcElement以及event的区别。

在IE浏览器中,event对象是作为window.event全局对象存在的。在Firefox中是作为事件参数存在的。

srcElement是IE中的用法,target是非IE浏览器中的用法。为了兼容可以用如下方式获取:

target = event.srcElement ? event.srcElement : event.target;

要获取标签名可以通过tagName属性。

function getTarget(event){  event = window.event || event;  return event.srcElement || event.target;}document.onclick = function(event){  var tag = getTarget(event);  alert(tag.tagName);}

编写一个方法,求一个字符串的字节长度

假设,一英文字符占用一个字节,一个中文字符占用两个字节。

主要用到的方法是charCodeAt()。charCodeAt()方法返回的是指定位置字符的unicode码,而大于255的编码值为非常规字符,如中文、英文等。

function getBytes(str){  //没传参  if(arguments.length === 0 || !str) return null;  if(str.length <= 0 || str === '') return 0;  var len = str.length;  //字节数  var bytes = 0;  for(var i = 0; i < len; i++){    if(str.charCodeAt(i) > 255){      bytes += 2;    }else{      bytes += 1;    }  }  return bytes;}console.log(getBytes('代码之美,beautiful code'));//24




原标题:Javascript面试题浅析

关键词:JavaScript

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

第三方海外仓地址:https://www.goluckyvip.com/tag/95732.html
福冈海外仓:https://www.goluckyvip.com/tag/95734.html
巴西海外仓推荐:https://www.goluckyvip.com/tag/95737.html
云顶海外仓:https://www.goluckyvip.com/tag/95738.html
求一个美国海外仓的地址:https://www.goluckyvip.com/tag/95740.html
谷仓美国海外仓的地址:https://www.goluckyvip.com/tag/95742.html
下周开始,安徽人免费游九华山,带上身份证就:https://www.vstour.cn/a/408234.html
上海滑雪场门票价格?:https://www.vstour.cn/a/408235.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流