zoukankan      html  css  js  c++  java
  • js-notebook

    1. 注意DOM和BOM的区别,ECMAScript只针对js的语法核心,实际大部分浏览器里的js = ECMAScript + DOM + BOM, 而nodejs里就只包括core js

    2. 隐性的toString、字符串转数字,有坑!

    var a = [4];
    console.log(a > 3); //true, 因为a.toString()是"4"
    console.log(a > 5); //false
    //原因在于:与数字比较时,js会隐性的将字符串转成数字。而单个元素的数组Array.toString()时,只输出单个元素的toString()。
    var b = [4, 2];
    console.log(b > 3); //false, 因为a.toString()是"4,2"
    console.log(b > 5); //false
    
    1. 所有js放body的最后,先解析html显示页面,再加载js,提高页面响应速度

    2. 尽可能启用严格模式"use strict";

    3. 没有块级作用域,for循环里的i外部可见

    for (var i = 0; i < 10; i++) {
        console.log("in loop: " + i);
    }
    console.log("out loop: " + i);
    
    1. gc: 标记清除 优于 引用计数(没有循环引用的问题)

    2. Array.length是可写的,小技巧:可用来方便的删除、添加

    var arr = [1, 2, 3];
    console.log(Object.getOwnPropertyDescriptor(arr, 'length'));
    arr.length = 2; // delete 3, [1, 2]
    arr[arr.length] = 4; // add 4, [1, 2, 4]
    
    1. Array可以是Stack栈,可以是List队列,也可以是Dict(但不推荐作为Dict使用)
    Array.push + pop = stack
    Array.push + shift = list
    
    1. Array.sort是按toString()之后再排序的,即使全是数字,这里有坑!可能是因为能放不同的数据类型吧~
    var arr = [1, 2, 3, 10, 15];
    arr.sort(); // [1, 10, 15, 2, 3]
    
    1. Array.splice特别有用,可以操作原数组:删除、插入、替换。slice只是切片,并且返回副本,一般不用。

    2. Array.indexOf里比较用的是全等===,只对基本类型有效,查找对象和特定属性之类的用underscore

    3. 5.4 RegEx

    参考

    1. 《Javascript高级程序设计》
    2. 关于node.js的误会
  • 相关阅读:
    C#解压或压缩文件夹
    C#文件帮助类FoderHelper
    C#数据库帮助类SqlHelper
    非常有意思的程序猿数据比較
    hdu1066
    【SICP练习】149 练习4.5
    【spring+websocket的使用】
    Android Studio 使用正式签名进行调试
    基于空间直方图meanshift跟踪
    Intel为Google的物联网平台Brillo推出开发板Edison
  • 原文地址:https://www.cnblogs.com/AlexanderYao/p/6645756.html
Copyright © 2011-2022 走看看