前端常见小问题(5.11)

1.下列代码存在几个变量没有被回收

var i = 1;
var i = 2;
var add = function() {
    var i = 0;
    return function()
{
        i++;
        console.log(i);
    }
}();
add();

代码回收规则如下:

1.全局变量不会被回收。

2.局部变量会被回收,也就是函数一旦运行完以后,函数内部的东西都会被销毁。

3.只要被另外一个作用域所引用就不会被回收

有3个变量没有被回收,首先是全局变量中的i,第二行会覆盖掉第一行,因此只有1个。第二个是var add,这个变量也没有回收,他定义了一个匿名函数,并将它赋给了add。第三个就是闭包中的变量i,闭包中的局部变量是不会被回收的,因此是3个变量没有被回收。我是这样理解的

2.哪些技术可用于优化 CSS 图片加载

CSSSprite 减少对服务器请求

SVGSprite 体积小,矢量

Iconfont 体积小,矢量,集成度高

Base64 减少对服务器请求

图片懒加载

3.Audio/Video

audio 标签属性:
src:音乐的URL
preload:预加载
autoplay:自动播放
loop:循环播放
controls:浏览器自带的控制条

video 标签属性:
src:视频的URL
poster:视频封面,没有播放时显示的图片
preload:预加载
autoplay:自动播放
loop:循环播放
controls:浏览器自带的控制条
width:视频宽度
height:视频高度

4.JavaScript中document.getElementById()的返回值的类型为链接:

oElement = document . getElementById ( sID )
参数: sID : 必选项。字符串 (String)
返回值: oElement : 对象 (Element) 。

说明: 根据指定的 id 属性值得到对象。返回 id 属性值等于 sID 的第一个对象的引用。假如对应的为一组对象,则返回该组对象中的第一个。
如果无符合条件的对象,则返回 null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值