每日进步一点点

js拓展  https://github.com/mqyqingfeng/Blog

JavaScript专题系列预计写二十篇左右,主要研究日常开发中一些功能点的实现,比如防抖、节流、去重、类型判断、拷贝、最值、扁平、柯里、递归、乱序、排序等,特点是研(chao)究(xi) underscore 和 jQuery 的实现方式。

1.  答案:1,undefined,2

2.

3.统计‘aaabbbdddddd'中字符出现最多的或者字母个数

function distinction(str){
var obj={};
return (function(){
 for(var i=0;i<str.length;i++){
 var v=str.charAt(i);
if(obj[v]&&obj[v].value==v){
   obj[v].count=++obj[v].count;
}else{
obj[v]=[];
obj[v].count=1;
obj[v].value=v;
}
}
return obj;
})()

}
var str='aaabbbdddddd';
console.log(distinction(str));

4.移除数组arr中所有值与item值相等的元素,不直接修改数组arr,结果返回新的数组

5. 

outer func:this foo=bar
 outer func:self.foo=bar
inner func:this.foo=undefined
inner fucn:self.foo=bar

 6.

基底相当于索引

 

 7.

 Array.protptype.slice.call(arraylike);

Array.protptype.slice表示数组中的原型中的slice 方法,slice方法返回的是Array类型的对象。

8.

 9.描述一下cookies,sessionStorage,和localstorage的区别?

相同点:都是缓存在客户端

不同点:  1.大小   cookie数据大小不能超过4k。sessionStorage和localStorage.虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。               

                 2.有效时间  localStorage存储持久数据,浏览器关闭后数据不丢失除非主动删除数据   sessionStorage数据在当前浏览器窗口关闭后自动删除。cookie设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭

                 3.数据与服务器之间的交互方式

                   cookie的数据会自动的传递到服务器,服务器端也可以写cookie到客户端     sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。

                   

 10.元素中的IFC值的是啥

            IFC ( inline formatting context) :行内格式化上下文。  Ro与块级元素形成对比,当元素的CSS属性display的计算值为inline,inline- block, inline -table, intine-flex或intine-grid时,它是行内级元素。视觉上它将内容与其它行内级元素排列为一行,直到该行被占满然后换行。典型的如段落内容,文本或图片,都是行内级元素。

         行内级元素生成行内级盒,参与行内格式化上下文( inline format-ting context),被渲染为水平排列,直到当行被占满然后换行。行内级盒分为行内盒( inline boxes )和原子行内级盒(atomic in-line -level boxes)。前者由非置换元素且display值为inline的元素生成;后者由行内级置换元素,或display值 为inline-block, in-line-table, inline-flex, inline-grid的元素生成。

          BFC     块格式化上下文             使 BFC 内部的浮动元素不会到处乱跑。 和浮动元素产生边界            https://www.jianshu.com/p/0d713b32cd0d

   

 11.js   

var a=1;
if(function b(){}){
a+=typeof (b);
}
console.log(a); //1undefined

 12.js中的arguments,克隆

function fn(arg1,arg2){
    console.log(arg1,arg2);
    arg1[0]="duyi";
    arg2="Web";
    console.log(arg1);
    console.log(arguments[1]);
}
fn("html","css");

//结果
html css
html
web

13.arguments,this用法

var length=1000;
var obj={
    length:10,
    fn:function(fn){
    fn();
    arguments[0]();

    }
}
function fn(){
    console.log(this.length);
}
obj.fn(fn, 1,2,3)
//结果
1000
4

 14.js中的包装类

var a={};
var b={n:1};
var c={m:2};
a[b]=3;
a[c]=4;
console.log(a[b]);
//4

 15.js中的伪数组

var arr=[1,2,3];
arr[9]=10;
console.log(arr.length);
//10

  

猜你喜欢

转载自www.cnblogs.com/cyhsmile/p/11671081.html