最新文章

VuePress 博客之 SEO 优化(四) Open Graph protocol

  • VuePress 博客之 SEO 优化(四) Open Graph protocol
  • VuePress 博客之 SEO 优化(四) Open Graph protocol
  • VuePress 博客之 SEO 优化(四) Open Graph protocol
  • VuePress 博客之 SEO 优化(四) Open Graph protocol

本篇讲讲 SEO 优化中的 Open Graph protocol。 meta 标签 如果我们打开思否任意一篇文章,查看 DOM 元素,我们可以在 head 中找到这样一段 meta 标签: 我们可以发现 name 都是以 og: 开头,这是什么意思呢,又是什么作用呢? 其实这是 Facebook 提出的 Open Graph Protocol,官方地址:https://ogp.me/,用来标注页…

树深时见影 8小时以前 浏览 856 评论 0 收藏 0

2015 最佳的 29 本开源书籍

无论你喜欢阅读在线技术书籍还是纸质技术书籍,出版商们都能满足你的要求。下面就是六家出版商们分享的他们选出的2015年度开源好书。 Addison-Wesley Professional Go 程序设计语言(The Go Programming Language) 作者:Alan A. A. Donovan 和 Brian W. Kernighan ISBN:0134190440 400 页 出版日…

心欲静而疯不止 22小时以前 浏览 737 评论 0 收藏 0

JavaScript 深入之头疼的类型转换(上)

在 JavaScript 中,有一部分内容,情况复杂,容易出错,饱受争议但又应用广泛,这便是类型转换。 前言 将值从一种类型转换为另一种类型通常称为类型转换。ES6 前,JavaScript 共有六种数据类型:Undefined、Null、Boolean、Number、String、Object。我们先捋一捋基本类型之间的转换。 原始值转布尔 我们使用 Boolean 函数将类型转换成布尔类型,在…

夜清冷一曲。 23小时以前 浏览 840 评论 20 收藏 0

第 69 题: 如何把一个字符串的大小写取反(大写变小写小写变大写),例如 ’AbC’ 变成 ‘aBc’

function processString (s) { var arr = s.split(''); var new_arr = arr.map((item) => { return item === item.toUpperCase() ? item.toLowerCase() : item.toUpperCase(); }); return new_arr.join(''); } co…

绝不放开 23小时以前 浏览 746 评论 57 收藏 0

第 154 题:弹性盒子中 flex: 0 1 auto 表示什么意思?

flex:0 1 auto 指的是 flex-grow、flex-shrink、flex-basis 3 个属性结合在一起的缩写形式。 flex-grow:定义了项目的放大比例,默认为 0,即使存在剩余空间,也不放大。 flex-shrink:定义了项目的缩小比例,默认为 1,即如果空间不足,该项目将缩小。 flex-basis:定义在分配多余空间之前,项目占据的主轴空间。 盒子的宽度先看 fle…

寄意 1天以前 浏览 866 评论 9 收藏 0

第179题:Promise.allSettled 的作用,如何自己实现 Promise.allSettled?

Promise.allSettled() 方法返回一个在所有给定的 promise 都已经 fulfilled 或 rejected 后的 promise,并带有一个对象数组,每个对象表示对应的 promise 结果。接着,我们来看看 Promise.allSettled() 是如何工作的。 1. Promise.allSettled() Promise.allSettled() 可用于并行执行独…

看轻我的陪伴 1天以前 浏览 728 评论 2 收藏 0

使用 cloudflare 和 nginx 加速任意站点

往往有很多站点,虽然后端速度还可以,但是由于服务器在美帝,导致速度慢的抠脚,用的时候简直崩溃。众所周知,CDN是互联网重要的基础设施,然而,某些站长可能并没有上CDN这艘大船,在这时候,我们就可以用自己的手段来加速自己上网了。 下面将以建立一个简单小站,并进行CDN加速为例子描述。 A. 选一个免费空间,建站 随手搜了一个,选了个免费 PHP 共享空间的站的,不造是什么烂站。 然后,常规操作,开免…

我的影子我的梦 1天以前 浏览 841 评论 0 收藏 0

JavaScript 的数据结构与算法(一)——栈和队列

1、栈 栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的末尾。称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都靠近栈底。现在通过数组的方法来实现栈,代码如下: function Stack() { var items = []; this.push = function(element){//添加一个(或几个)新元素到栈顶 items.push(ele…

筱武穆 1天以前 浏览 818 评论 6 收藏 0

chrome from memory cache 与 fiddler

最近项目组阿海,满脸诧异的请教我一个奇怪的问题,情景如下: 他使用 fiddler 代理服务器上 JS 文件,第一次的时候,可以查看到JS请求,再刷新界面,就看不到JS请求了。 在检查确认了他 fiddler 代理是正确配置之后,在 chrome 里面实际操作一下,才想起,新版的 chrome 已经将 http code 为 304 的情形,都处理成了 200,在 network 面板中查看,如下…

冬天旳寂寞 1天以前 浏览 896 评论 0 收藏 0

TypeScript 之 Generics 介绍和使用

TypeScript 的官方文档早已更新,但我能找到的中文文档都还停留在比较老的版本。所以对其中新增以及修订较多的一些章节进行了翻译整理。本篇整理自 TypeScript Handbook 中 「Generics」 章节。本文并不严格按照原文翻译,对部分内容也做了解释补充。 正文 软件工程的一个重要部分就是构建组件,组件不仅需要有定义良好和一致的 API,也需要是可复用的(reusable)。好的…

一直在等你来 2天以前 浏览 912 评论 1 收藏 0

由中间件思想引发出的 JavaScript 异步队列

队列对于任何语言来说都是重要的,io 的串行,请求的并行等等。在 JavaScript 中,又由于单线程的原因,异步编程又是非常重要的,所以,让我们来尝试一下实现 JS 中的异步队列,并发散到 co 与 generator,async/await。 异步队列 很多面试的时候会问一个问题,就是怎么让异步函数可以顺序执行。方法有很多,callback,promise,观察者,generator,asy…

々眼睛长脚气 2天以前 浏览 943 评论 0 收藏 0

乐视云大前端技术架构

乐视云计算大前端,目前团队人数 20+,负责公司全部业务线的前端工作,包括官网、商业平台的前端构建,flash、html5播放器的SDK,以及还处于Alpha阶段的React Native打包App的平台工具——LeVally,包括PC端、移动端的前端项目。 在大量的业务实践中,我们团队的人员,经过各种探索、踩坑,形成了如今的技术架构,并且在不断的更新完善中 前端规范 代码未动,规范先行。可以在上…

网名女生简单气质 2天以前 浏览 865 评论 0 收藏 0

JS 技巧篇 之 观察者模式

观察者模式(又叫发布-订阅者模式)应该是最常用的模式之一,在很多语言里都得到大量应用。包括我们平时接触的 dom 事件,也是 js 和 dom 之间实现的一种观察者模式。 document.body.addEventListener("click", function() { alert("Hello World"); }); document.body.click(); 在这里需要监控用户点击 …

妞丶爷亲个 3天以前 浏览 948 评论 0 收藏 0

第 155 题:求最终 left、right 的宽度

<div class="container"> <div class="left"></div> <div class="right"></div> </div> <style> * { padding: 0; margin: 0; } .container { width: 600px; height: 300p…

素年丶 3天以前 浏览 867 评论 27 收藏 0

模拟实现 eval 函数

实现原理:iife + new Function eval() 是一个危险的函数, 它使用与调用者相同的权限执行代码。如果你用 eval() 运行的字符串代码被恶意方(不怀好意的人)修改,您最终可能会在您的网页/扩展程序的权限下,在用户计算机上运行恶意代码。更重要的是,第三方代码可以看到某一个 eval() 被调用时的作用域,这也有可能导致一些不同方式的攻击。相似的 Function 就不容易被攻…

心意如水 3天以前 浏览 681 评论 0 收藏 0