1、JQ宽度
$(element).width()
$(element).innerWidth()
$(element).outerWidth()
2、==会进行隐式转换
undefined, null, 空字符串, 数字0, 数字NaN
3、DNS
A:DNS就是将域名翻译成IP地址。
B:主要用UDP,但是当请求字节过长超过512字节时用TCP协议,将其分割成多个片段传输。
C:DNS协议默认端口号是53。
D:操作系统的DNS缓存:windows DNS缓存的默认值是 MaxCacheTTL,它的默认值是86400s,也就是一天。macOS 严格遵循DNS协议中的TTL。
游览器的DNS缓存:chrome对每个域名会默认缓存60s;IE将DNS缓存30min;Firefox默认缓存时间只有1分钟;Safari约为10S。
4、NG:
优点:1、MVC模型
2、$scope, controller, 双向绑定,$watch,
3 指令编写、自定义过滤器
4、服务和自定义服务(Factory,Service,Provider)
5、垃圾回收机制:
找出不再使用的变量,然后释放其占用的内存。但是因为这样会开销会比较大,所以垃圾回收机制会按照固定的时间间隔,周期地进行。
如何找出不再使用的变量,主要有两种方法。一个是标记清除、另一个是引用计数。
标记清除:当变量进入环境后,浏览器会标记为“进入环境”,当变量离开函数,也就是函数执行完毕后,将其标记为“离开环境”,经过一定的时间间隔后,浏览器释放“离开环境”的变量内存。这些变量不包括“闭包的变量”。
引用计数:是跟踪记录每个变量的使用次数。如果该变量声明并被另外一个变量引用,那么次数就+1,如果该引用没有了,那就-1。到了一定的时间间隔,浏览器就把计数为0的变量清除。但是会有相互引用的问题出现,所以会造成内存泄漏。
6、call和apply的区别:
他们都是用来修改上下文环境的。Fn.apply(this, arguments);
call的参数从第二个开始,是一个列表。
apply是一个集合。