02 2017 档案

摘要:1、has方法用来拦截HasProperty操作,即判断对象是否具有某个属性时,这个方法会生效。典型的操作就是in运算符。 上面代码中,如果原对象的属性名的第一个字符是下划线,proxy.has就会返回false,从而不会被in运算符发现。 2、如果原对象不可配置或者禁止扩展,这时has拦截会报错。 阅读全文
posted @ 2017-02-28 21:49 ZhangCui 阅读(646) 评论(0) 推荐(0) 编辑
摘要:1、Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。 2、Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤 阅读全文
posted @ 2017-02-27 22:17 ZhangCui 阅读(7920) 评论(0) 推荐(0) 编辑
摘要:1、ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set 本身是一个构造函数,用来生成 Set 数据结构。 2、Set 函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化。 3、Set.prototype.size:返回Set实例的成员总数。 四 阅读全文
posted @ 2017-02-25 11:38 ZhangCui 阅读(6336) 评论(0) 推荐(1) 编辑
摘要:来自JavaScript秘密花园 1、转换为字符串 将一个值加上空字符串可以轻松转换为字符串类型。 2、字符串转换为数字 3、转换为布尔值 通过使用 否 操作符两次,可以把一个值转换为布尔型。 阅读全文
posted @ 2017-02-24 13:07 ZhangCui 阅读(12444) 评论(0) 推荐(0) 编辑
摘要:1、ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是JavaScript语言的第七种数据类型,前六种是:Undefined、Null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。 2、Symbol值通过Symbol函数生成。这就是 阅读全文
posted @ 2017-02-23 21:56 ZhangCui 阅读(17626) 评论(1) 推荐(3) 编辑
摘要:从几个月前开始接触前端,我就听到一句话:保持内容、样式、行为的分离是一个良好并且必要的习惯。所以我一直以来的模式是:HTML=>CSS=>JavaScript,也就是先把内容填充好了,然后写CSS,一看大概页面差不多了,用JS写一些行为,比如点击啦滚动啦什么的,然后万事大吉! 然而早就听说了webp 阅读全文
posted @ 2017-02-22 22:48 ZhangCui 阅读(3404) 评论(0) 推荐(1) 编辑
摘要:1、ES6允许直接写入变量和函数,作为对象的属性和方法。这种写法用于函数的返回值,将会非常方便。CommonJS模块输出变量,就非常合适使用简洁写法。 2、ES6 允许字面量定义对象时,用表达式作为对象的属性名,即把表达式放在方括号内。 3、ES5比较两个值是否相等,只有两个运算符:相等运算符(== 阅读全文
posted @ 2017-02-21 21:33 ZhangCui 阅读(5331) 评论(0) 推荐(0) 编辑
摘要:1、ES6函数参数的默认值,直接写在参数定义的后面。参数变量是默认声明的,所以不能用let或const再次声明。 2、通常情况下,定义了默认值的参数,应该是函数的尾参数。因为这样比较容易看出来,到底省略了哪些参数。如果非尾部的参数设置默认值,实际上这个参数是没法省略的。除非显式输入undefined 阅读全文
posted @ 2017-02-20 20:30 ZhangCui 阅读(2058) 评论(0) 推荐(0) 编辑
摘要:1、Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)。 实际应用中,常见的类似数组的对象是DOM操作返回的NodeList集合,以及函数内部的arguments对象。 阅读全文
posted @ 2017-02-19 15:00 ZhangCui 阅读(707) 评论(0) 推荐(0) 编辑
摘要:1、ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。 2、如果要将0b和0o前缀的字符串数值转为十进制,要使用Number方法。 3、ES6在Number对象上,新提供了Number.isFinite()和Number.isNaN()两个方法。它们与传统的全 阅读全文
posted @ 2017-02-18 22:14 ZhangCui 阅读(527) 评论(0) 推荐(0) 编辑
摘要:1、在ES5中,RegExp构造函数的参数有两种情况。第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag)。第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。但是,ES5不允许此时使用第二个参数,添加修饰符,否则会报错。 ES6改变了这种行为。如果Reg 阅读全文
posted @ 2017-02-17 18:04 ZhangCui 阅读(1182) 评论(0) 推荐(0) 编辑
摘要:函数可以将先前操作的结果记录在某个对象里,从而避免无谓的重复运算。这种优化方式被称为记忆(memoization)。JavaScript的对象和数组要实现这种优化是非常方便的。 比如说,我们想要一个递归函数来计算Fibonacci数列。一个Fib数字是之前两个Fib数字的和。最前面的两个数字是0和1 阅读全文
posted @ 2017-02-17 15:43 ZhangCui 阅读(2345) 评论(0) 推荐(0) 编辑
摘要:1、codePointAt方法是测试一个字符由两个字节还是由四个字节组成的最简单方法。codePointAt方法会正确返回32位的UTF-16字符的码点。 2、ES5提供String.fromCharCode方法,用于从码点返回对应字符,但是这个方法不能识别32位的UTF-16字符(Unicode编 阅读全文
posted @ 2017-02-16 14:13 ZhangCui 阅读(2969) 评论(0) 推荐(1) 编辑
摘要:1、ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 2、ES6允许写成:let [a,b,c] = [1,2,3];上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边 阅读全文
posted @ 2017-02-15 15:41 ZhangCui 阅读(4123) 评论(1) 推荐(0) 编辑
摘要:1、const声明一个只读的常量。一旦声明,常量的值就不能改变。 2、const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。 3、const的作用域与let命令相同:只在声明所在的块级作用域内有效。 4、const命令声明的常量也是不提升,同样存在暂时 阅读全文
posted @ 2017-02-14 10:33 ZhangCui 阅读(6557) 评论(0) 推荐(0) 编辑
摘要:学习收藏。 1、来自http://www.cnblogs.com/yxz-turing/p/4784861.html 2、 阅读全文
posted @ 2017-02-13 12:22 ZhangCui 阅读(6759) 评论(0) 推荐(0) 编辑
摘要:JPEG/PNG/GIF是Web浏览器广泛支持的3种图片格式。 1、JPEG格式最适合保存照片和其他复杂图像。 2、GIF和PNG格式最适合保存logo和其他包含单色、线条、文本的简单图形。 3、JPEG图像可以按不同质量压缩,所以可以很好地权衡图像质量和文件大小来满足需要。 4、GIF和PNG图像 阅读全文
posted @ 2017-02-12 22:07 ZhangCui 阅读(830) 评论(0) 推荐(0) 编辑
摘要:1、通过Object构造函数或对象字面量创建单个对象 这些方式有明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码。为了解决这个问题,出现了工厂模式。 2、工厂模式 考虑在ES中无法创建类(ES6前),开发人员发明了一种函数,用函数来封装以特定接口创建对象的细节。(实现起来是在一个函数内创 阅读全文
posted @ 2017-02-11 13:05 ZhangCui 阅读(21294) 评论(1) 推荐(0) 编辑
摘要:1、let命令 ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 for循环的计数器,就很合适使用let命令。 下面的代码如果使用var,最后输出的是10。 上面代码中,变量i是var声明的,在全局范围内都有效。所以每一次循环,新的i值 阅读全文
posted @ 2017-02-10 18:49 ZhangCui 阅读(4089) 评论(2) 推荐(0) 编辑
摘要:第二十一章 多媒体和图形编程 1、为了强制让图片缓存起来,首先利用Image()构造函数来创建一个屏幕外的图片对象,之后将该对象的src属性设置成期望的URL。 2、由于各家浏览器制造商未能在对标准音频和视频编解码器支持上达成一致,因此通常都需要使用<source>元素来指定不同格式的媒体源。 3、 阅读全文
posted @ 2017-02-09 12:36 ZhangCui 阅读(228) 评论(0) 推荐(0) 编辑
摘要:5、数组方式使用jQuery对象 使用jQuery选择器获取结果是一个jQuery对象。然而,jQuery类库会让你感觉正在使用一个定义了索引和长度的数组。在性能方面,建议使用简单的for或者while循环来处理,而不是$.each(),这样能使你的代码更快。 6、事件代理 常用的JS事件如clic 阅读全文
posted @ 2017-02-08 13:00 ZhangCui 阅读(293) 评论(0) 推荐(0) 编辑
摘要:来自于《锋利的jQuery》 1、使用最新版本的jQuery类库 jQuery每一个新的版本都会较上一版本进行BUG修复和一些优化,同时也会包含一些创新,所以建议使用最新版本的jQuery来提高性能。 2、使用合适的选择器 ①、$("#id") 使用id来定位DOM元素无疑是最佳提高性能的方式,因为 阅读全文
posted @ 2017-02-07 20:01 ZhangCui 阅读(380) 评论(0) 推荐(0) 编辑
摘要:第二十章 客户端存储 1、客户端存储有一下几种形式:Web存储、cookie、IE userData、离线Web应用、Web数据库、文件系统API。 2、Web存储标准所描述的API包含localStorage对象和sessionStorage对象。这两个对象实际上是持久化关联数组,是名值对的映射表 阅读全文
posted @ 2017-02-06 16:08 ZhangCui 阅读(190) 评论(0) 推荐(0) 编辑
摘要:1、jQuery动画是异步的,会立刻返回,但动画会在后台执行,可传入函数作为动画完成的回调函数。 2、jQuery动画默认是队列化的。 3、stop()方法接受两个可选的布尔值参数,如果第一个参数是true,会清除该选中元素上的动画队列:除了停止当前动画,还会取消任何等待执行的动画,默认值为fals 阅读全文
posted @ 2017-02-05 20:51 ZhangCui 阅读(195) 评论(0) 推荐(0) 编辑
摘要:第十九章 jQuery类库 1、传递HTML文本字符串给$()方法,jQuery会根据传入的文本创建好HTML元素并封装为jQuery对象返回。 2、想要遍历jQuery对象中的所有元素时,可以调用each()方法来代替for循环。回调函数里this关键字指代Element对象。each()方法还会 阅读全文
posted @ 2017-02-04 10:26 ZhangCui 阅读(172) 评论(0) 推荐(0) 编辑
摘要:根据freeyiyi1993的思路做了细微修改,原文有bug。 阅读全文
posted @ 2017-02-03 10:14 ZhangCui 阅读(2217) 评论(0) 推荐(0) 编辑
摘要:1、除mouseenter和mouseleave外的所有鼠标事件都能冒泡。 2、传递给鼠标事件处理程序的事件对象有clientX和clientY属性,它们制订了鼠标指针相对于包含窗口的坐标。 3、一个keypress事件表示输入的单个字符,事件对象以Unicode编码的形式指定字符,所以必须用Str 阅读全文
posted @ 2017-02-02 09:59 ZhangCui 阅读(201) 评论(0) 推荐(0) 编辑
摘要:第十七章 事件处理 1、事件处理程序或事件监听程序是处理或响应事件的函数。 2、事件对象是与特定事件相关且包含有关该事件详细信息的对象。 3、响应通过键盘改变焦点的表单元素在得到和失去焦点时会分别出发focus和blur事件。 4、focus和blur事件不会冒泡,但其他所有表单事件都可以。IE定义 阅读全文
posted @ 2017-02-01 10:32 ZhangCui 阅读(226) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示