常见的技术分享

1.null和undefined的区别?
null是一个表示"无"的对象,转为数值时为0;undefined是一个表示无的原始值,转为数值时为NaN。
undefined:
(1)变量被声明了,但没有赋值时,就等于undefined。
(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。
(3)对象没有赋值的属性,该属性的值为undefined。
(4)函数没有返回值时,默认返回undefined。
null:
(1) 做为函数的参数,表示该函数的参数不是对象。
(2) 做为对象原型链的终点。
2.new操做符具体干了什么呢?
(1)建立一个空对象,而且 this 变量引用该对象,同时还继承了该函数的原型。
(2)属性和方法被加入到 this 引用的对象中。
(3)新建立的对象由 this 所引用,而且最后隐式的返回 this 。
3.call() 和 apply() 的区别和做用?
apply()函数有两个参数:第一个参数是上下文,第二个参数是参数组成的数组。若是上下文是null,则使用全局对象代替。
如:function.apply(this,[1,2,3]);
call()的第一个参数是上下文,后续是实例传入的参数序列。
如:function.call(this,1,2,3);
4.有哪些性能优化的方法?
(1) 减小http请求次数:CSS Sprites, JS、CSS源码压缩、图片大小控制合适
(2) 减小因为HTML标签致使的带宽浪费
(3) 用innerHTML代替DOM操做,减小DOM操做次数,优化javascript性能
(4) 当须要设置的样式不少时设置className而不是直接操做style
(5) 少用全局变量、缓存DOM节点查找的结果。减小IO读取操做
(6) 图片预加载,将样式表放在顶部,将脚本放在底部 加上时间戳
5.清除浮动有哪些方式?比较好的方式是哪种?
(1)父级div定义height。
(2)结尾处加空div标签clear:both。
(3)父级div定义伪类:after和zoom(good)
(4)父级div定义overflow:hidden。
(5)父级div定义overflow:auto。
(6)父级div也浮动,须要定义宽度。
(7)父级div定义display:table。
(8)结尾处加br标签clear:both。
6.box-sizing经常使用的属性有哪些?分别有什么做用?
(1)box-sizing: content-box|border-box|inherit;
(2)content-box:宽度和高度分别应用到元素的内容框。在宽度和高度以外绘制元素的内边距和边框(元素默认效果)。
border-box:元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。经过从已设定的宽度和高度分别减去边框和内边距才能获得内容的宽度和高度。
7.简述一下你对HTML语义化的理解?
(1)用正确的标签作正确的事情。
(2)html语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;
(3)即便在没有样式CSS状况下也以一种文档格式显示,而且是容易阅读的;
(4)搜索引擎的爬虫也依赖于HTML标记来肯定上下文和各个关键字的权重,利于SEO;
(5)使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。
8.this对象的理解
(1)this老是指向函数的直接调用者(而非间接调用者);
(2)若是有new关键字,this指向new出来的那个对象;
(3)在事件中,this指向触发这个事件的对象,特殊的是,IE中的attachEvent中的this老是指向全局对象Window;
9.js中的true和false
若是逻辑对象无初始值或者其值为 0、-0、null、”“、false、undefined 或者 NaN,那么对象的值为 false。不然,其值为 true(即便当自变量为字符串 “false” 时)!9.js中的true和false
10.cookies,sessionStorage 和 localStorage 的区别?
(1)cookie是网站为了标示用户身份而储存在用户本地终端上的数据
(2)cookie数据始终在同源的http请求中携带,记会在浏览器和服务器间来回传递javascript

相关文章
相关标签/搜索