SF
深入理解ES6
深入理解ES6
注册登录
关注博客
注册登录
主页
关于
RSS
深入理解ES6之《代理和反射》
angelayun
2017-09-10
阅读 13 分钟
3.1k
不可配置属性name用delete操作返回的是false,如果在严格模式下还会抛出错误可以通过deleteProperty陷阱来改变这个行为
深入理解ES6之《改进的数组功能》
angelayun
2017-09-10
阅读 5 分钟
2.3k
Array.of方法不通过Symbol.species属性确定返回值的类型,它使用当前构造函数,也就是of方法中的this值来确定正确的返回数据的类型
CSS揭秘之《边框图像》
angelayun
2017-09-03
阅读 2 分钟
1.9k
可能最容易的方法就是两层标签,外层标签设置背景图片,内层标签设置背景色为白色就达到了效果,可是如果只用一层标签呢,怎么办?其实思路是在背景图片之上, 再叠加一层纯白的实色背景代码如下:
CSS揭秘之《伪随机背景》
angelayun
2017-09-03
阅读 2 分钟
1.9k
之前说的条纹全部都是有规律的条纹,如果实现随机宽度的垂直条纹呢其实原理a)宽度尽量选择质数,因为质数跟任何其它数字都是相对质数b)因为最顶层贴片的重复规律最容易被察觉(它没有被任何东西遮挡),我们应该把平铺间距最大的贴片安排在最顶层
CSS揭秘之《背景图案》
angelayun
2017-09-03
阅读 3 分钟
2.3k
网格 {代码...} 具体效果见链接 波点 可以用如下代码来实现 {代码...} 但如果我想实现如下效果而非上面那样中规中矩 其实原理是一样的 {代码...} 具体效果见链接需要注意的是第二层背景的偏移定位值必须是贴片宽高的一半 棋盘 {代码...} {代码...} 用以上两者中的任何一种都可以,其实实现的原理就类似于 具体效果见链接...
CSS揭秘之《条纹背景》
angelayun
2017-09-03
阅读 3 分钟
3.7k
如果把两个色标合在一起,会怎样呢w3c是这样规定的“如果多个色标具有相同的位置, 它们会产生一个无限小的过渡区域,过渡的起止色分别是第一个和最后一个指定值。 从效果上看, 颜色会在那个位置突然变化, 而不是一个平滑的渐变过程”也就是说假设如下设置的话:
CSS揭秘之《边框内圆角》
angelayun
2017-09-03
阅读 2 分钟
7.1k
因为outline不跟着描边border-radius走的,所以能够实现直角效果,但是显示还缺少点什么才能让白色圆角突兀效果去掉这里需要明白两点:1、box-shadow可以跟着描边效果走2、box-shadow扩展半径公式为
CSS揭秘之《灵活的背景定位》
angelayun
2017-09-03
阅读 2 分钟
1.8k
2、给background-position指定right bottom值备注:因为css3中background-position 属性已经得到扩展, 它允许我们指定背景图片距离任意角的偏移量, 只要我们在偏移量前面指定关键字
CSS揭秘之《多重边框》
angelayun
2017-09-03
阅读 1 分钟
1.5k
1、box-shadow还接受第四个参数(称作“扩张半径”), 通过指定正值或负值, 可以让投影面积加大或者减小2、如果我们想要一道实线边框其实也是可以通过box-shadow来模拟,原理就是一个正值的扩张半径加上两个为零的偏移量以及为零的模糊值eg:
CSS揭秘之《制作半透明边框》
angelayun
2017-09-03
阅读 1 分钟
2k
1、默认状态下,背景会延伸到边框的区域下层2、可以通过 background-clip 属性来调整上述默认行为所带来的不便;这个属性的初始值是 border-box, 意味着背景会被元素的 border box(边框的外沿框) 裁切掉实现半透明边框代码如下:
CSS揭秘之《小技巧》
angelayun
2017-09-03
阅读 3 分钟
1.7k
1、在增强网页设计效果时,应该使用生成性内容,而不是依赖冗余的标签和图片。2、要把表单元素的字体设定为与页面的其他部分相同,你并不需要重复指定字体属性,只需利用 inherit 的特性即可3、利用 CSS 自身的机制来组织回退样式,而不是依赖 CSS hack 来实现
深入理解ES6之《迭代器与生成器》
angelayun
2017-08-30
阅读 4 分钟
2.1k
什么是迭代器 ES5中创建迭代器如下所示: {代码...} 什么是生成器 生成器是一种返回迭代器的函数每当招待完一条yield语句后函数就会自动停止执行 {代码...} yield关键字可返回任何值或表达式 {代码...} yield关键字只可在生成器内部使用,在其它地方使用会导致程序抛出语法错误所以下面例子是有错误的 {代码...} 可迭代...
深入理解ES6之《用模块封装代码》
angelayun
2017-08-27
阅读 1 分钟
3.1k
什么是模块 模块是自动运行在严格模式下并且没有办法退出运行的Javascript代码 在模块的顶部this的值是undefined 其模块不支持html风格的代码注释除非用default关键字,否则不能用这个语法导出匿名函数或类 任何未显示导出的变量、函数或类都是模块私有的,无法从模块外部访问 {代码...} import大括号表示给定模块导入的...
深入理解ES6之《ES6中较小的改动》
angelayun
2017-08-27
阅读 2 分钟
1.5k
识别整数 {代码...} 安全整数 IEEE 754只能准确的表示-2的53次方到2的53次方的整数 {代码...} Unicode标识符 可以将Unicode转义序列用作标识符 {代码...} 可以使用Unicode码位转义序列来作为标识符 {代码...} 正式化__proto__属性 只能在对象字面量中指定一次__proto__,如果指定两个__prpto__属性则会抛出错误,这是唯一...
深入理解ES6之《ES7》
angelayun
2017-08-27
阅读 2 分钟
4k
在ES6中可通过String.prototype.includes方法来检查给定字符串中是否存在某些子字符串Array.prototype.includes接受俩参数
深入理解ES6之《Symbol》
angelayun
2017-08-20
阅读 4 分钟
3.2k
创建Symbol及辨别方法 Symbol是原始值,因此调用new Symbol会导致程序抛出错误 {代码...} 使用typeof来辨别其类型 {代码...} Symbol可用于计算对象字面量属性名、Object.defineProperty、Object.defineProperties 如果想创建一个共享的Symbol,可使用Symbol.for方法 {代码...} Symbol.keyFor方法在Symbol全局注册表中检...
深入理解ES6之《解构》
angelayun
2017-08-20
阅读 2 分钟
6.2k
解构赋值表达式(也就是右侧的表达式)如果为null或undefined会导致程序抛出错误,因为任何尝试读取null或undefined的属性的行为都会触发运行时错误
深入理解ES6之《扩展对象》
angelayun
2017-08-20
阅读 4 分钟
2.7k
这种方式适用于属性名提前已经或可被字符串字面量表示的情况,如果属性名“first name”被包含在一个变量中或者需要通过计算才得到该变量的值ES6支持了可计算属性名比方说上面的代码ES6可简化写成如下:
深入理解ES6之《函数》
angelayun
2017-08-19
阅读 6 分钟
3.8k
默认参数 ES5中要为参数指定默认值,只能如下所示: {代码...} 但是这样有一个问题如果timeout传进来的值为0,则也会赋值变成2000,所以更加完全的做法是检测参数类型 {代码...} ES6中直接 {代码...} 可以为任意参数指定默认值,在已指定默认值的参数后可以继续声明无默认值参数 {代码...} 是否使用函数默认值主要依赖于...
深入理解ES6之《字符串及正则》
angelayun
2017-08-19
阅读 5 分钟
4.2k
字符串中的字符有两种,一种是由一个编码单元16位表示的BMP字符,另一种是由两个编码单元32位表示的辅助平面字符在ES5中,所有字符串的操作都是基于16位编码单元
深入理解ES6之《块级作用域绑定》
angelayun
2017-08-19
阅读 3 分钟
4k
众所周知,js中的var声明存在变量提升机制,因此ESMAScript 6引用了块级作用域来强化对变量生命周期的控制let const 声明不会被提升,有几个需要注意的点1、不能被重复声明