2020-03-30

1.为什么不能定义1px左右的div容器?
IE6下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:

overflow:hidden | zoom:0.08 | line-height:1px

2.加减运算

alert('5'+3); //53 string
alert('5'+'3'); //53 string
alert('5'-3); //2 number
alert('5'-'3'); //2 number

3.结果是:

    var bool = !!2; alert(bool);//true;

**
技巧:双向非操作可以把字符串和数字转换为布尔值。
**

4.如何在HTML中添加事件,几种方法?

    1、标签之中直接添加 onclick="fun()";
    2、JS添加 Eobj.onclick = method;
    3、现代事件 IE9以前: obj.attachEvent('onclick', method);
          标准浏览器: obj.addEventListener('click', method, false);

5.BOM对象有哪些,列举window对象?
1、window对象 ,是JS的最顶层对象,其他的BOM对象都是window对象的属性;
2、document对象,文档对象;
Window对象的属性:
3、location对象,浏览器当前URL信息;
4、navigator对象,浏览器本身信息;
5、screen对象,客户端屏幕信息;
6、history对象,浏览器访问历史信息;

6.bind(), live(), delegate()的区别
(1)bind: 绑定事件,对新添加的事件不起作用,方法用于将一个处理程序附加到每个匹配元素的事件上并返回jQuery对象。
(2)live: 方法将一个事件处理程序附加到与当前选择器匹配的所有元素(包含现有的或将来添加的)的指定事件上并返回jQuery对象。
(3)delegate: 方法基于一组特定的根元素将处理程序附加到匹配选择器的所有元素(现有的或将来的)的一个或多个事件上。

最佳实现:on() off()

7.看下列代码输出什么?

var foo = "11"+2-"1";
console.log(foo);
console.log(typeof foo);

执行完后foo的值为111,foo的类型为Number。

//已知数组,Alert出”This is Baidu Campus”
var stringArray = ["This”, "is”, "Baidu”, "Campus”]   

alert(stringArray.join(" "))   //

9.你如何优化自己的代码?
(1)代码重用
(2)避免全局变量(命名空间,封闭空间,模块化mvc..)
(3)拆分函数避免函数过于臃肿:单一职责原则
(4)适当的注释,尤其是一些复杂的业务逻辑或者是计算逻辑,都应该写出这个业务逻辑的具体过程
(5)内存管理,尤其是闭包中的变量释放

10.简述readyonly与disabled的区别
(1)readonly只针对input(text / password)和textarea有效,
(2)disabled对于所有的表单元素都有效,当表单元素在使用了disabled后,当我们将表单以POST或GET的方式提交的话,这个元素的值不会被传递出去,而readonly会将该值传递出去

你可能感兴趣的:(2020-03-30)