JAVASCRIPT中经典面试题
//1、try catch finally中的return
var n=1;
function fun(){
try{
n++;
m++;//报错
return n;
}catch(err){
n++;
return n;
}finally{
n++;
//return n;
}
}
console.log(fun());//
console.log(n);//
/*作用域和作用域链*/
var n=10;
function fun(n){
n--;
console.log(n);
}
console.log(fun(n)); //9
console.log(n); //10
/*new Function*/
var i=5;
function fun(){
var i=4;
//var f1=new Function("console.log(i)");
var f1=function(){console.log(i);};
console.log(f1);
f1();
}
fun();//
/*callback 与 this*/
var o={
n:1,
fun:function(){
var self=this;//留住this
console.log(self.n++);
setTimeout(function(){
self.fun();
},1000);
}
}
o.fun();//this-->o
/*DOM中的闭包问题*/
function fun(){
var li=document.getXX...;
btn.onclick=function(){
li.xx=xx;
}//li将永远无法释放,即使刷新页面也不行
}
/*引用类型的共有属性*/
function Student(){}
Student.prototype.arr=[];
var lilei=new Student();
var hmm=new Student();
lilei.arr.push(1);//this[this.length]=1
hmm.arr[1]=2;
console.log(lilei.arr);//[1,2]
console.log(hmm.arr);//[1,2]
/*继承父类型共有方法*/
function Student(){}
Student.prototype=[];
var lilei=new Student();
lilei.push(1);//this[this.length]=value;
var hmm=new Student();
hmm.push(2);
console.log(lilei);
console.log(hmm);
/*私有属性,公有属性*/
function Student(){
var prop="私有属性";//私有属性
this.prop="公有属性"; //公有属性
var fun=function(){//私有方法
console.log("调用私有方法");
console.log(prop);
}
this.fun=function(){//公有方法
console.log("调用公有方法");
fun();//this-->window
console.log(prop);
console.log(this.prop);
}
}
var lilei=new Student();
lilei.fun();//公有
//阻碍事件
for(var i=0;i<3;i++){
setTimeout(function(){
console.log(i);
},10)
}
alert("hello");
function MyObj(){
this.p.pid++;
}
MyObj.prototype.p={"pid":0};
MyObj.prototype.getNum=function(num){
return this.p.pid+num;
}
var obj1=new MyObj();
var obj2=new MyObj(); //p.pid=2
console.log(obj1.getNum(1)+obj2.getNum(2));//
/**/
function fun(n,o){
console.log(o);
return {fun:function(m){
return fun(m,n);
}
}
}
var a=fun(0);//undefined
//a-->{fun:function(m){return fun(m,n)}}
a.fun(1); a.fun(2); a.fun(3); //0 0 0
var b=fun(0).fun(1).fun(2).fun(3); //0 1 2
var c=fun(0).fun(1); c.fun(2);c.fun(3); //0 1 1
JAVASCRIPT中经典面试题的更多相关文章
- JavaScript之经典面试题
1.作用域经典面试题 var num = 123; // f1函数写好了,作用域就定下来了,也就是作用域链定下来了 // f1函数作用域链: f1函数作用域 ==> 全局作用域 function ...
- JavaScript中经典方法
jQuery()通过name名称获取当前name中value数组 /** 获取input中name属性相同的 value数组 */ function my_array_name(m){ var val ...
- javascript中经典继承的兼容写法
function create(obj) { // 2.1 判断浏览器支持不支持 Object.create // 如果支持,直接使用 Object.create // 如果不支持,自己实现 if(O ...
- JavaScript经典面试题(二)
前言: 近年来T行业就业者越来越多,有关于编程行业的高薪工作也变得越来越难找,竞争力越来越大,想要在众多的应聘者当中脱颖而出,面试题和笔试题一定要多加研究和琢磨,以下记录的是自己的面试过程之中遇到的一 ...
- 学习Javascript闭包(Closure)及几个经典面试题理解
今天遇到一个面试题,结果让我百思不得其解.后来在查阅了各种文档后,理清了来龙去脉.让我们先来看看这道题: function Foo( ){ var i = 0; return function( ){ ...
- 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 3
备注: 因为文章太长,所以将它分为三部分,本文是第三部分. 第一部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1 第二部分:深入浅出经典面试题:从浏览器中输入URL ...
- 【ASP.NET Core】EF Core - “影子属性” 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1
[ASP.NET Core]EF Core - “影子属性” 有朋友说老周近来博客更新较慢,确实有些慢,因为有些 bug 要研究,另外就是老周把部分内容转到直播上面,所以写博客的内容减少了一点. ...
- JavaScript设计模式经典-面向对象中六大原则
作者 | Jeskson来源 | 达达前端小酒馆 1 主要学习JavaScript中的六大原则.那么六大原则还记得是什么了吗?六大原则指:单一职责原则(SRP),开放封闭原则(OCP),里氏替换原则( ...
- 20道JavaScript经典面试题
该篇文章整理了一些前端经典面试题,附带详解,涉及到JavaScript多方面知识点,满满都是干货-建议收藏阅读 前言 如果这篇文章有帮助到你,️关注+点赞️鼓励一下作者,文章公众号首发,关注 前端南玖 ...
随机推荐
- 给 Web 前端开发人员推荐20款 CSS 编辑器
CSS 和 HTML,JavaScript 是网页的基础,作为前端开发人员,对这三者都要很熟悉.特别是未来流行全栈开发的时代,每项技术都是你知识结构中必要的一个节点. 在开发中,选择好工具是非常重要的 ...
- js正则中的贪婪和非贪婪模式问题总结
var b="abeeee:eeeee:eeeeeab"; console.log(b.match(/e+\:e+/g));//["eeee:eeeee"]贪婪 ...
- HashSet 与TreeSet和LinkedHashSet的区别
Set接口 Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false. Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就 ...
- STL : map函数的运用 --- hdu 4941 : Magical Forest
Magical Forest Time Limit: 24000/12000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Other ...
- C#协变和逆变
我们知道在C#中,是可以将派生类的实例赋值给基类对象的.
- jquery_layout
http://layout.jquery-dev.com/documentation.cfm
- jquery层级原则器(匹配后代元素div)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Eclipse统计代码行数
开发过程中,经常需要统计代码行数,这时可以通过Eclipse的Search功能来实现. 步骤: 1.在Package Explorer中选中需要统计的包: 2.单击菜单Search-->File ...
- MySQL: LEAVE Statement
https://www.techonthenet.com/mysql/loops/leave.php This MySQL tutorial explains how to use the LEAVE ...
- Firemonkey Bitmap 设定像素颜色 Pixel
VCL 和 Firemonkey 的 Bitmap 处理像素的方式不相同,下例为将图片内不是「白色」的像素全部改成「黑色」: procedure TForm1.Button1Click(Sender: ...