陆续更新--欢迎其它朋友分享自己的面试试题与经历
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兄弟