迅雷前端笔试题
来源:互联网 发布:某路口车流量数据 编辑:程序博客网 时间:2024/05/22 04:56
1.代码
function bar(){ return foo; foo = 10; function foo(){} var foo = 11;}console.log(typeof bar());//函数声明的优先级高于变量
function fun1(){ var n=167; nAdd=function(){n+=1;} function fun2(){ return n; } return fun2;}var result = fun1(); var a = result();nAdd();var b=result();a,b的值
var foo = 1;function bar(){ foo=10; return; function foo(){}}bar();console.log(foo);//bar()
我们可以看到,函数声明被提升至作用域最顶端,然后被赋值为5,而外层的变量并没有被覆盖,经过预编译之后,上面代码的逻辑是这样的:
var foo = 1;function bar(){ var foo; foo = function foo() {}; foo=10; return; }bar();console.log(foo);
所以,函数的优先权是最高的,它永远被提升至作用域最顶部,然后才是函数表达式和变量按顺序执行,这一点要牢记
var x=3; var foo={ x:2, baz:{ x:1, bar:function(){ return this.x; } }}var go = foo.baz.bar;console.log(go());console.log(foo.baz.bar());//考察this的指向问题
x={};function bar(){ this.x=2; return x;//关键代码}var foo = new bar(); console.log(foo.x); //return 如何更改了x的值
var obj1={x:5};var obj2=obj1;obj1.a=obj1={x:6};console.log(obj1.a);console.log(obj2.a);
Boolean(null)
Boolean(0’)
Boolean(undefined)
Boolean(0)
(function(){
var b=a=1;
})();
console.log(a);
console.log(b);
(function(){
var x=foo();
var foo = function foo=function(){
return “foobar”;
};
return x;
})();
function show(){};
delete show.length;
console.log(typeof show.length);
str = “this “+50.5
[3,2,1].reduce(Math.pow);
[].reduce(Math.pow);
var a = Array(3);
a[0]=8;
a.map(function(elem){return “2”});
var x=[0];
if([0]){
console.log(x==true);
}else{
console.log(“false”);
if(!!foo){}
if(typeof foo!==’undefined’){}
if(‘foo’ in window){}
foo &&foo();
foo为定义,哪种写法不会报错
new Promise((resolve,reject)=>{
resolve(1);
reject(2);
resolve(3);
return Promise.resolve(4);
}).then(console.log,console.log);
true == ‘true’
Boolean(‘false’);
!NaN
”==0
/[^\d]{2}/g.exec(“1234abcd”);
a[-1]=0
function Foo(){
bar = function(){console.log(1);}
return this;
}
Foo.bar = function(){console.log(2);}
Foo.prototype.bar=function(){console.log(3);}
var bar = function(){console.log(4);}
function bar(){console.log(5);};
Foo.bar();
bar();
Foo.bar();
bar();
Foo.bar();
bar();Foo.bar();
bar();
new Foo.bar();
new Foo().bar();
var obj={};
obj.log=console.log;
obj.log.call(console,this);
0 == NaN
0!=NaN
https://www.nowcoder.com/questionTerminal/46f3dcec50404c51804609bed5b13529?toCommentId=378284
js的内置对象
http://blog.csdn.net/ssisse/article/details/52335693
一些面试题:
http://www.educity.cn/develop/1120912.html
http://www.jb51.net/article/23127.htm
- 要动态改变层中内容可以使用的方法有(AB )
a) innerHTML
b) innerText
c) 通过设置层的隐藏和显示来实现
d) 通过设置层的样式属性的display属性
http://www.educity.cn/develop/1120912.html
https://zhidao.baidu.com/question/358146458.html
https://wenku.baidu.com/view/b314932ccfc789eb172dc81f.html
捕获(IE8及以下版本不支持)
下列选项中关于JavaScript浏览器对象的说法错误的是c
a) history 对象记录了用户在意个浏览器中已经访问过的URL。
b) location 对象相当于IE浏览器中的地址栏,包含关于当前URL地址的信息
c) location 对象是history对象的父对象
d) location 对象是window对象的子对象
只有构造器才有prototype属性
构造器的prototype.constructor指向它自身(错)
https://www.nowcoder.com/questionTerminal/46f3dcec50404c51804609bed5b13529?toCommentId=378284
- 制作级联菜单功能时调用的是下拉列表框的(A )事件。 a)onChange b)onFocus c)selected d)onClick
http://www.cnblogs.com/cindy-hmy/p/5781969.html
TIME_WAIT的状态
http头部age
JavaScript 注释有几种
dp是css单位吗
js全局函数
http://www.cnblogs.com/lzhl/p/5238919.html
HTML 标签
块级元素只能在Body中
js可以通过修改数组的Length属性删除超出的变量
js中数组元素可以是任意值
HTTP2协议的新特性
下面关于IE、FF下面脚本的区别描述错误的是?(D)
innerText IE支持,FIREFOX不支持
document.createElement FIREFOX支持,IE不支持
setAttribute(‘class’,’styleClass’) FIREFOX支持,IE不支持
用setAttribute设置事件 FIREFOX不支持,IE支持
下面关于HTTP协议的说法正确的是:
HTTP是基于TCP协议之上的应用层协议
HTTP是一个普通用在浏览器和web服务器之间进行数据交换的流式二进制协议
HTTP协议的ETAG响应头主要用于信息的过期验证
HTTP1.0中的cache-control响应头主要用于控制信息在浏览器的缓存
https://www.nowcoder.com/questionTerminal/b70358c391d54b75a2139b66c13a4527?toCommentId=217695
以下哪个是并选择器
jQuery(三)4.从DOM中删除所有匹配的元素
http://blog.csdn.net/u014345282/article/details/49074361
hover facus active 顺序
http://www.cnblogs.com/jelly7723/p/5620929.html
使用jQuery,找到id位selector的select标签中有用data-target属性为isme的option的值?
https://segmentfault.com/q/1010000008058984/a-1020000008059134
dd 块级标签
jQuery - css() 方法
window.open(URL,name,features,replace)
http://www.w3school.com.cn/jsref/met_win_open.asp
大题:后缀
作者:莫回首
链接:https://www.nowcoder.com/discuss/44541
来源:牛客网
String.prototype.getSuffixList = function (suffix) { var result = "", strs = this.split(" "), LEN = strs.length, map = {}, tmp = [], res; for (var i = LEN - 1; i >= 0; i--) { res = strs[i].indexOf(suffix); if (res != -1) { if (strs[i] in map) { map[strs[i]]++ } else { map[strs[i]] = 1 } } } var keys = Object.keys(map).sort(function (a, b) { return map[b] - map[a] //降序}); for (var j = 0; j < keys.length; j++) { result += keys[j] + "=" + map[keys[j]] + "," } return result.substring(0, result.length - 1);//字符串};
调试时:里面不能输出,否则0%
Object.keys(map)获取对象的所有键值,返回的是键值组成的数组
substring返回所截取的字符串,第二个参数指定位置字符不包含
多次bind重写
var self = null;Function.prototype.bind = function() { if (self == null){ self = this } //console.log(self); var context = [].shift.call(arguments), args = [].slice.call(arguments); return function() { return self.apply(context, [].concat.call(args, [].slice.call(arguments))); }};function foo() { return this.bar;}foo1 = foo.bind({bar:1});foo2 = foo.bind({bar:2});console.log(foo2());
实现一个map,参数为函数
Array.prototype.map = function(){ console.log(arguments[0]); var fn = arguments[0];//函数 var res = []; for(var i=0;i<this.length;i++){ res.push(fn(this[i])); } return res;}var res = [1,2,3];var r1 = res.map(function(item,index,array){ return item*2;})console.log(r1);
注意:arguments为类数组对象,如果要取第一个参数为arguments[0],而不是arguments
- 迅雷前端笔试题
- 迅雷笔试 + 笔试题收集
- 一道迅雷笔试题
- 迅雷笔试题
- 迅雷笔试题
- 迅雷 笔试题 多线程
- 迅雷笔试题
- 迅雷笔试题
- 迅雷笔试题
- 迅雷笔试题
- 迅雷笔试题
- 迅雷笔试题
- 2012迅雷笔试题
- 迅雷笔试题
- 一道迅雷远程笔试题
- 迅雷C++笔试题(转)
- \t\t迅雷笔试题
- 迅雷笔试
- 3.字符串反转
- 输入两个整数n和m,从0-n中随意取几个数,使其和等于m
- 手势识别(业余知识 )2017/9/19
- 共享锁和排它锁
- 整数求和
- 迅雷前端笔试题
- ceshi
- js 原型继承 Prototype
- 操作系统(一)协作进程临界区一些代码理解--Peterson’s Solution
- mybatis的一级缓存————7
- oracle sql语句创建表空间、用户、并给用户赋予权限
- Java 如何创建线程
- win 10 用VMware workstation Pro 安装 黑苹果
- Linux下使用 tc 模拟网络延迟和丢包