7-28

1、设计一个算法,用原生JS实现数组反转。

var a=[1,2,3];
var b=[];
for(var i=a.length-1,j=0;i>=0,j<a.length;i--,j++){
   b[j]=a[i];
}

2、如何解决跨域。

3、git、代码合并、

4、npm遇到的问题

5、说说项目

下面是答题卷:

1、代码执行的结果

(function(){
    var a=b=5;
})();
console.log(b);
console.log(a)
答案:5 ; 报错。

var a属于局部变量,b=5属于全局变量。

JS中变量声明分显式申明和隐式声明。
  var num=100;//显式
  num=100;//隐式
在函数中使用var关键字进行显式声明的变量是做为局部变量,而没有用var关键字,使用直接赋值方式声明的是全局变量。
当我们使用访问一个没有声明的变量时,JS会报错。而当我们给一个没有声明的变量赋值时,JS不会报错,相反它会认为我们是要隐式申明一个全局变量,这一点一定要注意。
不加var的写法是不推荐的。
a.  语义不清楚。 
b.  团队开发时,容易覆盖掉其它作用域内的变量,引发异常。
c.  给window对象添加不必要成员


2、创建原生(N ative)方法给String对象添加一个repeatify函数,这个函数接受一个整数参数,来明确字符串需要重复几次,这个函数要求字符串重复指定的次数。

例如:console.log('hello'.repeatify(3));

应该打印:hellohellohello

答:

String.prototype.repeatify=function(num){
		console.log(this);
		var str='';
		for(var i=0;i<num;i++){
			str+=this;
		}
		return str;
	}
"hello".repeatify(3);

3、变量提升(hoisting)
执行以下代码的结果是什么?为什么?

function test(){
    console.log(a);
    console.log(foo());
    var a=1;
    function foo(){
        return 2;
  }
}
答:undefined

       2   

function test(){ var a; function foo(){
          return 2;
      }
console.log(a); console.log(foo()); a=1;}

 

4、在JavaScript中,this是如何工作的,执行一下代码的结果是什么?

var fullname='john Doe';
var obj={
    fullname:'colin Ihrig',
    prop:{
        fullname:'Aurelio De rosa' ,
       getFullname:function(){
           return:this.fullname;       
        }   
   }
}
console.log(obj.prop.getFullname());
var test=obj.prop.getFullname;
console.log(test());

答:this 永远指向函数运行时所在的对象,而不是函数被创建时所在的对象。

匿名函数或不处于任何对象中的函数指向 window 。

Aurelio De rosa

john Doe

5、call()和apply()修复前一个问题,让最后一个cosole.log()打野输出Aurelio De rosa。
答: test.call(obj.prop);test.apply(obj.prop);

6、闭包(closures)

var nodes=document.getElementsByTagName('button');
for(var i=0;i<nodes.length;i++){
    nodes[i].addEventListener('click',function(){
       console.log('You clicked element:' +i);
    });
}

请问:如果点击第一个和第四个按钮的时候,控制台分别打印输出什么结果?为什么?

答:You clicked element:4

  You clicked element:4


7、数据类型,请问依次输出什么?

typeof null    :object

typeof {}     :object

typeof []     :object

typeof undefined        :undefined

附:typeof操作符返回一个字符串,指示未计算的操作数的类型

typeof null "object"

typeof {} "object"

typeof [] "object"
typeof undefined "undefined"


8、事件循环

请问:下面代码运行结果是什么?请解释

function printing(){
	console.log(1);
    setTimeout(function(){console.log(2)},5000);
    setTimeout(function(){console.log(3)},2000);
    console.log(4);
}
答:1432


9、算法

写一个isPrime()函数,当其为质数时返回true,否则返回false

答:质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。

var isPrime=function(num){
            console.log("2");
            if(num >= 1){
                console.log("3");
                if(num == 1){
                    alert('true');
                }else{
                    for (var i = num - 1; i >= 1; i--) {
                        if(num%i == 0){
                            alert("true");
                            break
                        }else{
                            alert('false');
                            break
                        }
                    }
                }
            }
        };
        isPrime(num);

10、web优化

如何对网站的文件和资源进行优化


11、请描述cookies、sessionStorage和localStorage的区别

区别:cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。

12、CSS

经常遇到的CSS兼容性问题有哪些?解决方法是什么?


13、设计模式

对MVC、MVVM的理解











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值