知识点记录

1. 函数构造器

   new Function(arg1,arg2, ... argN,functionBody);

  方法主体是字符串,定义在最后一个参数。这种通过使用文本访问javascript解析引擎的方式,性能低下。相似使用如eval,setTimeout,setInterval。

2. with语句,强制变量寻找优先在指定的对象作用域。当未找到时会向上级作用域链搜寻。在ES5严格模式下此语句已禁止

3. location.replace()方法,替换上次浏览器历史记录,不产生新的记录。

   在重定向时比较有意义

4. 尤其是移动端,可以考虑在第一次访问页面时,只加载主要内容。然后引导用户做更多的加载资源操作,这样体验可能较好。

  • 如果待加载的页面不存在于缓存中,会触发 onload ,再触发 pageShow
  • 如果待加载的页面存在于缓存中,不触发 onload,只触发 pageShow

   pageShow 事件对象 event 中有一个属性值,叫做 persisted,如果这个值为 true,则为缓存数据,false,则为第一次加载

5. 无障碍访问

  a. 焦点聚焦在A区块,当ajax重新渲染A区块时,保持A区块的焦点;

    b. 从导航栏跳转到某个锚点位置时,焦点跟随指向锚点区域的第一个元素;

  c. 可操作元素不可聚焦,考虑将元素加个tabIndex属性

6.  ['1', '2', '3'].map(parseInt); // While one could expect [1, 2, 3] // The actual result is [1, NaN, NaN]

     遍历函数接受三个参数(currentValue,index,array),所以调用时应该是这样的形式:

   parseInt("1", 0, theArray)parseInt("2", 1, theArray)

    参考:http://www.wirfs-brock.com/allen/posts/166

  

 7.  表达式2 < 5 < 2  结果为true。

    形式合法,连续比较,是前一次的布尔结果值转换后再与后面的值比较。

 

 8. Number有安全数值。安全表示的数值范围为-(2-53 -1) -- 253 - 1

 9. [10] == 10 //true

     objec转换为数值时,会经过三个步骤

  a.调用valueOf() 。如果结果是原始值(不是一个对象),则将其转换为一个数字

  b.否则,调用toString()方法。如果结果是原始值,则将其转换为一个数字

  c.否则,抛出一个类型错误

[10].valueOf(); //[10]
[10].toString();  //'10'
Number('10'); //10

    ** parseInt函数调用时,首先将第一个参数转换成字符串,然后再通过函数调用转换成数值

 10. input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill {}

   定义了输入框自动填充后的样式,一般为记住密码时有效

posted on 2015-04-29 10:03  果之因  阅读(178)  评论(0)    收藏  举报

导航