前端面试常见问题汇总

陆续更新--欢迎其它朋友分享自己的面试试题与经历

string相关

1.charAt 找索引的字符

2.charCodeAt 找索引的字符的字符编码

3.replace 替换

4.split 字符分隔

5.search 用正则搜匹配值的索引

6.match 用正则搜匹配结果

7.substr 截取字符, 为 (起, 字符长), 起支持负数, 但ie8--有问题

8.substring 截取字符, 为 (起, 止), 不支持负数

9.slice 截取字符, 为 (起, 止), 支持负数

10.indexOf 字符出现位置 (字符, 起的位置?)

11.lastIndexOf 字符出现位置, 从后算 (字符, 起的位置?)

12.toUpperCase 转大写

13.toLowerCase 转小写

array相关

1.sort 排序, 操作原数组, 并返回最新的

2.push 末尾追加, 操作原数组, 并返回最新的length, 支持多个参数

3.pop 末尾去除, 操作原, 返回去的

4.shift 去头, 操作原,返回去的

5.unshift 加头, 操作原, 返回length, 支持多个参数

6.slice 截取数组, (起索引, 止索引), 支持负数,不操作原,返回新

7.splice 截取/插入数组, (起索引, 删除的个数, 追加的1, 追加2, ...)

常用集

1.arguments参数组

2.arguments.callee调用本身, 但在严格模式下会挂

3.函数名.length可获取形参的个数

4.arguments.length可获取实参的个数

5.call(window, param1, param2);

6.apply(window, [param1, param2]);

7.[].slice.apply(arguments);

8.encodeURIComponent(":fdf#") 把字符编码

9.decodeURIComponent("%3Afdf%23") 把字符解码

10.eval("var xl=1;");//alert(xl) => 1, 在严格模式下不能对eval幅值

11.Math.ceil(5/2) //向上取整,有小数就整数部分加1, Math.ceil(recordCount / pageSize); //计算出多少页

12.Math.round(5/2)// 四舍五入.

13.Math.floor(5/2)//向下取整

14.Math.random();//随机0-1之间的数

15.Math.max.apply(Math, [1,2,3,4,5,6,34,23,2,"4444.4000"]); //min也一样, 但会paseFloat

16.new Date-1  // +new Date // new Date().getTime() // new Date().valueOf();  时间戳, 有显式转,隐式转

17.1+"1" => "11", true + "1" => "true1", [1,2,3]+"1" => 1,2,31,"1"+2-2 => 10 因为js比较懒, 能快得算出的绝不会去走远路, 这里的+会被认为 连接符

18.true-1=>0, "11"-1=>10 相应的隐式转换后再计算

19.NaN == NaN => false, []==[]=>false, ({})==({})=>false ,  nan是个特殊, 而[]跟{}, 因为都是不同的对象

20.!true = !1 = !"xxxx" => false, !!true = !!1 = !!"xx" = !false = !0 => true

21.String(true)=>"true", Number("11")=>11, Boolean("0")=>true(因为只要是非空字符都是true)

22.==会进行隐式转换, 而===不用, ===的效率要快

23.parseInt(num, 10);//10要设置

24.parseFloat("3.200");//解析浮点数

25.a && (a=2);

26.b = b || 'xl';

27.xl = xl || a ? 'ok' : 'no';

28.xl+=1; xl = xl+1; xl ++;

29."12331.00001"|0 => 12331, "无可奈何花落去sdf"|0 => 0

30.break退出全循环, continue退出当前循环

31.switch(xl){

   case 'xl':

       break;

   default:

}

32.hasOwnProperty是否包原型值

33.prototype原型

34.constructor 构架函数

35.typeof undefined,object,function,number,string

36.typeof null => object

37.阻止冒泡: stopPropagation,window.event.cancelBubble = true;

38.阻止默认事件: preventDefault, window.event.returnValue = false;

39.触发源: event.target, window.event.srcElement;

40.nodeType: 1元素,2属性,3文本,8注释,9文档,11文档碎片, nodeList没有nodeType

41.addEventListener,attachEvent(IE, 有this指针问题)

42.Capture捕获事件为从根向触发源找,Bubble冒泡为从触发源向根找(可阻止冒泡)

43.createElement创建节点, 父.appendChild(新)追加节点, ele.cloneNode(是否复制子节点)复制节点 但不会复件事件, ele.hasChildNodes(子节点)包含节点, 父.removeChild(节点)删除节点, 父.insertBefore(新ele, 位置参考) 插入到位置前, 如果位置为null则为最后

44.childNodes为子节点,w3c标准, 但在新浏览器里会包含文本节点 ,children无兼容问题

45.success成功, error失败, complete完成, before前, after后, serialize序列化, support支持, trigger触发, triggerHandler只触发句柄(只支持1个且返回undefined),

46.delegate(selector, type, data, fn) => on(type, selector, data, fn);

47.disabled禁用, selected下拉选中, checked复选框选中, first-child第一个子

48.toggle切换, visible可见, filter筛选, closest向上第一个, siblings兄弟


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值