JavaScript 面试题能否详细解答一下?大家可以一起讨论一下。

1.事件对象在IE与FF中有哪几个共同的属性呢?
2.IE的innerHTML需要注意哪些问题?
3.请指出slice,substr,substring的不同
4.如何判定一个对象是数组(请写出完整的函数)
5.如果动态加载JS文件(请写出完整的函数)
6.用正则取得某个标签里面的innerText
7.请实现javascript 1.8的filter方法
8.将下面URL所带参数全部分解出来,返回一个对象(请写出完整的函数)
%3BS%3Ahttp%3A%2F%2Fwww.cnblogs.com%2F%3BFORID%3A1&hl=zh-CN
9.判定一个字符串是否符合(2012-01-12)这样的日期格式(请写出完整的函数)
10.计算出两个Date对象的相差的日数
按票数排序 按时间排序

4 个回答

3

张轩前端开发工程师 vikingmute.com

收起
知乎用户、曾晟、知乎用户 赞同
我都做了一下 比较长 就不在这里写了 写在我blog里面 想看可以看一下
vikingmute.com/archives
2
收起

匿名用户

周康康李奇 赞同
JavaScript中String 对象的slice()、substring()、substr()方法都能提取字符串的一部分,但使用时有所区别。

  • stringObject.slice(startIndex,endIndex)

返回字符串 stringObject 从 startIndex 开始(包括 startIndex )到 endIndex 结束(不包括 endIndex )为止的所有字符。
1)参数 endIndex 可选,如果没有指定,则默认为字符串的长度 stringObject.length 。
var stringObject = "hello world!";
alert(stringObject.slice(3)); // lo world!
alert(stringObject.slice(3,stringObject.length)); // lo world!
【注1】字符串中第一个字符的位置是从【0】开始的,最后一个字符的位置为【stringObject.length-1】,所以slice()方法返回的字符串不包括endIndex位置的字符。
2)startIndex 、endIndex 可以是负数。如果为负,则表示从字符串尾部开始算起。即-1表示字符串最后一个字符。
var stringObject = "hello world!";
alert(stringObject.slice(-3)); // ld!
alert(stringObject.slice(-3,stringObject.length)); // ld!
alert(stringObject.slice(-3,-1)); // ld
【注2】合理运用负数可以简化代码
3)startIndex、endIndex 都是可选的,如果都不填则返回字符串 stringObject 的全部,等同于slice(0)
var stringObject = "hello world!";
alert(stringObject.slice()); // hello world!
alert(stringObject.slice(0)); // hello world!

4)如果startIndex、endIndex 相等,则返回空串
【注3】String.slice() 与 Array.slice() 相似

  • stringObject.substring(startIndex、endIndex)

返回字符串 stringObject 从 startIndex 开始(包括 startIndex )到 endIndex 结束(不包括 endIndex )为止的所有字符。
1)startIndex 是一个非负的整数,必须填写。endIndex 是一个非负整数,可选。如果没有,则默认为字符串的长度stringObject.length 。
var stringObject = "hello world!";
alert(stringObject.substring(3)); // lo world!
alert(stringObject.substring(3,stringObject.length)); // lo world!
alert(stringObject.substring(3,7)); // lo w,空格也算在内[l][o][ ][w]

2)如 果startIndex、endIndex 相等,则返回空串。如果startIndex 比 endIndex 大,则提取子串之前,调换两个参数。即stringObject.substring(startIndex,endIndex)等同于 stringObject.substring(endIndex,startIndex)
var stringObject = "hello world!";
alert(stringObject.substring(3,3)); // 空串
alert(stringObject.substring(3,7)); // lo w
alert(stringObject.substring(7,3)); // lo w
【注4】与substring()相比,slice()更灵活,可以接收负参数。

  • stringObject.substr(startIndex,length)

返回字符串 stringObject 从 startIndex 开始(包括 startIndex )指定数目(length)的字符字符。
1)startIndex 必须填写,可以是负数。如果为负,则表示从字符串尾部开始算起。即-1表示字符串最后一个字符。
2)参数 length 可选,如果没有指定,则默认为字符串的长度 stringObject.length 。
var stringObject = "hello world!";
alert(stringObject.substr(3)); // lo world!
alert(stringObject.substr(3,stringObject.length)); // lo world!
alert(stringObject.substr(3,4)); // lo w

3)substr()可以代替slice()和substring()来使用,从上面代码看出 stringObject.substr(3,4) 等同于stringObject.substring(3,7)

【注5】ECMAscript 没有对该方法进行标准化,因此尽量少使用该方法。 显示全部
0

姜天意上海浮生ing的前端

收起
.如何判定一个对象是数组(请写出完整的函数)
Object.prototype.toString.call(arr) === "[object Array]";

动态加载js
document.createElement一个script,之后appendchild进去,ie用script.text
判定yyyymmdd
function isDate(str) {
var reg = /^(\d{4})(-)(\d{2})\2(\d{2})$/ //这个正则写的比较简单
// if(typeof str==string)
if(reg.test(str)){return true}
}
IE的innerHTML需要注意哪些问题?
我记得如果弄样式进去有个不生效的bug,必须触发一下repaint?
0

myjunkbox某公司 CEO 、 前端工程师、 苹果产品爱…

收起
第9题是不是这样比较好?

function checkDate(date) {
"use strict";
if (/\d{4}-\d{2}-\d{2}/.test(date)) {
var _date = new Date(date).toString();

if (_date === "NaN" || _date === "Invalid Date") {
return "Invalid Date";
} else {
return true;
}

} else {
return "Wrong Format";
}

}
50 人关注该问题
或者使用
新浪微博帐号登录 QQ 帐号直接登录
  • 一键登录
  • 快速注册
  • 找到好友
登录知乎
30 秒快速注册
如果你已有知乎帐号,请 登录并绑定

欢迎你来到知乎。 这是一个能真正体现你价值的地方。
我们相信,娱乐至上的中国互联网,需要一个与众不同的新世界。

在这里,认真、求知、信任与相互尊重,比肤浅的趣味更有意义;
在这里,真正有价值的信息是绝对的稀缺品,远未得到有效的挖掘和利用;
在这里,人与人之间,可以通过言之有物的分享,建立起真诚而友善的关系。

建立这个新世界并不容易,但你会发现,这也不难,只需要你和我们一样:

  • 认真专业:言之有物,不灌水,为自己的话负责
  • 友善互助:感谢每一个用心的回答,同时尊重与你观点不同的人

独一无二的你,总有见解值得分享;世界那么大,也有等待着你的未知。

欢迎你加入我们,一起创造知乎,发现更大的世界。


找到好友
快速进入知乎