• 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#的ACCESS操作类
    ASP.NET常用的三十三种实用代码
    在ASP.NET中使用MD5和SHA1加密
    一个比较漂亮的DataGrid样式表
    微软的面试题
    打印自定义纸张大小
    ASP.Net(C#)连接Oracle数据库的方法
    C#正则表达式应用范例
    matlab 字符串处理函数
    centos语言设置
  • 原文地址:https://www.cnblogs.com/AlexanderYao/p/6645756.html
Copyright © 2020-2023  润新知