CVTE前端笔试编程题
2024-10-19 00:22:16
这些题目是做完笔试之后,在别的地方找到的,现在附上。
1.(1)这题考察的怎么把参数转换为数组,然后再截取你想要的位数。
function C(){
var a_args=Array.prototype.slice.call(argumens,0,2);
var b_args=Array.prototype.slice.call(arguments,2);
A.apply(this,a_args);
B.apply(this,b_args);
}
在函数内部,arguments和this是两个特殊的对象,其中arguments是一个类数组对象,包含了传入函数中所有参数,可能有的小伙伴会说为何不直接用arguments.slice(0,2);arguments.slice(2).原因是:虽然arguments是个类数组对象,并拥有length属性,但是没有数组的其他方法,它并不是一个真正的数组,可以用(arguments instance of Array )来验证,所以不能直接用slice方法,必须用Array.prototype.slice.call转换成真正的数组。才能调用slice方法,否则会报错的。
(2)另外还可以用到ES6函数扩展中rest参数,
function C(...s){
A.call(this,s[0],s[1]);
B.call(this,s.slice(2));
} function C(...s){
A.apply(this,s.slice(0,2));
B.apply(this,s.slice(2));
} function C(){
A(arguments[0],arguments[1]);
B(Array.prototype.slice.call(arguments,2));
} 这几种方法都是ok的
2.这个可以用正则表达式,也可以定义。
function template(source){
var temp=source;
return function(obj){
for(var prop in obj){
var tpl="<%="+prop+"%>";
temp=temp.replace(tpl,obj[prop]);
}
console.log(temp);
}
}
用for-in循环获取对象的键名,从而获得键值,有意思的是不能直接获取键值。这题后来看到有大神考虑到xss漏洞,模板安全的问题,后来查了查,确实是这样,它的产生与多数模板有关(详情请移入深入浅出node.js,第八章),下面我贴出一些代码。
注:这是别人的代码,仅供参考。
不说了,我要去撸代码去了,还有继续努力,大家加油。
最新文章
- Lucene.net 实现近实时搜索(NRT)和增量索引
- l5如何通过路由走api版本回退查找设置
- Effective C++ -----条款10: 令operator=返回一个reference to *this
- spinner与arrays.xml的使用
- ios图片的压缩
- 【ArcGIS二次开发】CreateFeature报错(HRESULT E_FAIL)
- 详细解析Java中抽象类和接口的区别
- 6.python模块(导入,内置,自定义,开源)
- 使用HTTP访问网络------使用HTTPURLConnection
- App接口设计
- Everything
- druid报异常 “sql injection violation, part alway true condition not allow”的解决方案
- webstorm html碎片整理功能
- linux报错:命令未找到
- Python内置函数(21)——tuple
- apache做反向代理
- linux 安装svn客户端
- (12)Python异常
- 网络编程 -- RPC实现原理 -- NIO单线程
- cocos2d-x C++ (利用定时器自定义屏幕双击事件函数)