🎶 Sym - 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台

📕 思源笔记 - 一款桌面端笔记应用,支持 Windows、Mac 和 Linux

🎸 Solo - B3log 分布式社区的博客端节点,欢迎加入下一代社区网络

♏ Vditor - 一款浏览器端的 Markdown 编辑器

0 篇文章

图片标签中的 alt 有什么作用?

2018-12-14 回答当图片无法加载的时候,alt 的属性值会以文字的形式替代图片显示。alt 属性是用来描述图片内容的,当图片作为背景等装饰时,alt 属性应该为空。加分回答装饰作用的图片 alt 属性应该为空网站爬虫根据其属性值来理解图片的内容,因此 alt 属性对 SEO(搜索引擎优化)来说非常重要 alt 值应以句号结尾,以提高可访问性补充网速过慢导致图片加载需较长一段时间时,在图片加载完成之前,会显示 alt

描述 CSS 盒子模型布局并简要描述其每一个部分

2018-12-29 回答 CSS 盒子模型(BoxModel)布局包含内容(content)、内边距(padding)、边框(border)、外边距(margin)四个部分。content:盒子内部填充元素内容(例如文本、图像或视频播放器等)的区域。他的大小为 content-box 的宽和高。相关 CSS 属性为 width,min-width,max-width,height,min-height,max-h

focus 有什么效果?应该怎么正确处理他们?

2018-12-30 回答像按钮或锚点标记等元素被选中时,该元素的外围就会出现轮廓。不同浏览器会呈现不同的效果,但一般是在元素周围显示蓝色的轮廓来表示他已经被选中。过去,很多人使用 outline:0 来移除元素被选中的效果。但是,这会让键盘侠们感到很不友好,因为选中效果被移除了。但是如果不移除的话,元素外围的蓝色轮廓有时候会让大多数人感觉不够舒适美观。Bootstrap 等 UI 框架一般采用更加美观的 box

`em` 和 `rem` 有什么区别?

2018-12-31 回答 em 和 rem 都是基于 font-size 的 CSS 属性。唯一的区别是他们继承的对象不同。em 继承父元素中的 font-sizerem 继承根元素(html)中的 font-size 在大多数浏览器中,根元素的 font-size 默认值为 16px 加分回答其他单位 vh 和 vw:窗口高度或宽度的 1/100。可脱离父元素的继承规则,如:窗口高 900px,父元素高 1200px,1vh 为 9px。vmin

CSS sprites 的优点及如何使用?

2019-01-01 回答 CSSsprites 将多张图片合并为一张图片,从而减少浏览器对 HTTP 的请求数量,进而减少网页的加载时间。即使在 HTTP/2 协议下,这依旧可以减少网页的加载时间。在 HTTP/1.1 中,每个 TCP 连接只允许一个请求。现代浏览器虽然可以打开多个(2-8)并行的 TCP 连接,但连接数量依旧有限。HTTP/2 允许浏览器和服务器之间的多个请求在一个 TCP 连接上进行复用。这意味着 TCP 连接

`+` 和 `~` 选择器有什么区别?

2019-01-02 回答毗邻兄弟选择器 + 可以选择紧随元素后的所有同级元素。如:div~p 可以选择紧随 div 元素后且与其同级的 p 元素。一般兄弟选择器~可选择元素后的所有同级元素。如:p~span 将会匹配同一父元素下,p 元素后的所有 span 元素。加分回答基本元素选择器*:通用元素选择器,匹配任何元素.footer:匹配 class="footer"的所有元素#comments:匹配 id="comments

CSS 优先级是如何计算的?

2019-01-03 回答浏览器通过优先级权重来判断 CSS 属性值与元素之间的关系:权重越高关系越密切,高权重的 CSS 属性值就会赋予到元素上。我们可以把 CSS 分为四类,每类的矩阵权重从高到底排列如下:内联样式(如:style="font-weight:bold"):[1,0,0,0]ID 选择器(如:#comments):[0,1,0,0]类选择器(如:.footer),属性选择器(如:[src$=".p

等于操作符 `==` 和 `===` 有什么区别

2019-01-04 回答三个等号===表示严格相等,也就是说类型和值都必须相同。两个等号==会使其中一边的类型进行强制转换,使等号两边的类型都相等后再对数值进行比较。加分回答尽量使用全等操作符。因为其没有隐式转换,这样结果会比较容易预测、计算也会比较快除了等于操作符,还可以使用 Object.is 进行同值比较。他有着自己的特殊用途,不应说他更宽松或更严格于其他等于操作符附表一张 xy=====Objec

`Promise` 有哪些状态?

2019-01-06 回答 Promise 对象用于表示一个异步操作的最终状态(完成或失败)及其返回值。他有以下几种状态:pending:初始状态,完成或失败状态的前一个状态 fulfilled:操作成功完成 rejected:操作失败 pending 状态的 Promise 对象会触发 fulfilled/rejected 状态,在其状态处理方法中可以传入参数/失败信息。当操作成功完成时,Promise 对象的 then 方

根据食谱和已有食材计算可烹饪的最大次数

2019-01-07 题目/**请按要求实现 `batches(recipe,available)` 函数:1.含有 2 个参数,第一个为食谱对象,第二个为已有食材对象 2.返回可烹饪的最大次数 3.以下代码执行时,需返回正确结果且运行过程中无异常*///return0batches({milk:100,butter:50,flour:5},{milk:132,butter:48,flour:51})batche

请举例说明什么是回调?

2019-01-09 回答回调函数作为实参传入另一个函数内,当某种事件被触发或某些任务被完成时会在外部函数内被调用,通常用于异步编程。由于回调函数会被后来的代码所调用,因此在初始化的时候应注意先声明但不调用。当特定的事件发生时,事件监听器的异步回调才会被执行。如:document.addEventListener("click",()=>{console.log("Theuserclickedonth

如何克隆一个 JavaScript 对象?

2019-01-10 回答使用扩展运算符...可将对象自身的枚举属性复制到新对象中。但这只能进行浅拷贝,如:constobj={a:1,b:2}constshallowClone={...obj}使用这种技术将会忽略原型链。此外,嵌套对象并不会被克隆,只是复制了他们的引用,因此浅拷贝后嵌套对象和原始对象仍然指向同一个对象。加分回答克隆还可以使用以下几种方法:JSON.parse(JSON.string

JavaScript 中如何对比两个对象?

2019-01-11 回答使用==或===对两个不同却具有相同属性及属性值的对象进行比较,他们的结果却不会相等。这是因为等号比较的是他们的引用(内存地址),而不是基本类型。为了测试两个对象在结构上是否相等,需要一个辅助函数。他将遍历每个对象的所有属性,然后测试他们是否具有相同的值,嵌套对象也需如此。当然,也可以使用参数来控制是否对原型链进行比较。注意:此代码只对普通对象、数组、函数、日期和基本类型的数

CORS 是什么?

2019-01-12 回答 CORS(Cross-OriginResourceSharing)跨域资源共享使用额外的 HTTP 头来告诉浏览器,此站点已被授权可以访问来自服务器指定的不同域的资源。从 http://mydomain.comWeb 应用程序中使用 Ajax 请求 http://yourdomain.com 资源就是一个跨域请求的例子。出于安全考虑,浏览器会阻止 JavaScript 发起的 HTTP 跨源请求。X

介绍事件委托及其优点,并说明如何使用?

2019-01-13 回答事件委托是将事件委托给单个共同祖先的技术,这和事件冒泡相关。事件能在 DOM 树上进行冒泡是由于每一个祖先元素依次向上直至根节点所执行的回调都可能被监听到。DOM 事件提供了关于元素的有用信息:通过 Event.target 可以获取触发事件的元素。这允许父元素像目标元素监听事件一样去处理事件,而不是去监听处理父元素的所有子元素或单独处理父元素本身。事件委托有如下优点:不仅能提高性能,

JavaScript 的表达式和语句有什么区别?

2019-01-14 回答 JavaScript 有两种主要的语法:表达式和语句。还有一种是表达式语句,即在语句中写入表达式。可表述为:表达式:产生一个值语句:执行一个操作表达式语句:产生一个值并执行一个操作一般的经验法则:如果他有输出值或者可以把他赋值给一个变量,那么他就是一个表达式。否则就是一个声明。语句 letx=0functiondeclaration(){}if(true){}语句作为指令可以显示

JavaScript 中的真值和假值是什么?

2019-01-15 回答一个值是真值(truthy)还是假值(falsy)具体取决于他在布尔上下文中的计算方式。假值意味着布尔上下文中转换后为假的值,真值意味着布尔上下文中转换后为真的值。本质上,当他们在执行某些操作时他们就会被强制转换为 true 或 false。JavaScript 中有以下 6 个假值:falseundefinednull"":空字符串 NaN0:包含-0 和 +0 除上面以外的其他所有值都被认为

生成一个包含 n 项的斐波那契数列

2019-01-16 回答初始化一个长度为 n 的空数组。使用 Array.prototype.reduce()将计算结果添加到数组中。计算结果为最后两个值相加之和,应注意前两个值除外。constfibonacci=n=>[...Array(n)].reduce((acc,val,i)=>acc.concat(i>1?acc[i-1]+acc[i-2]:i),[])返回总目录每天 30 秒