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的误会

js-notebook的更多相关文章

  1. uwsgi+nginx部署django项目

    1. 概念解析(wsgi协议,uwsgi协议,uWSGI) 参考:https://www.cnblogs.com/wspblog/p/8575101.html 1.1 现实世界的web请求: 1.2  ...

  2. Jupyter notbook& REVEAL.JS& nbconvert 使用jupyter notebook制作slides

    使用Jupyter notebook作为slide主要有两个方面: 在运行notebook 的时候可以幻灯片播放 这样幻灯片就有了notebook可交互的功能,而notebook就有了幻灯片全屏容易分 ...

  3. 1. web前端开发分享-css,js入门篇

    关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人与人的教育背景与成长环境心理活动都有差别,但就别人的心得再结合自己的特点,然后探索适合自己的学 ...

  4. 4. web前端开发分享-css,js工具篇

    web前端开发乃及其它的相关开发,推荐sublime text, webstorm(jetbrains公司系列产品)这两个的原因在于,有个技术叫emmet, http://docs.emmet.io, ...

  5. web前端开发分享-css,js工具篇

    web前端开发乃及其它的相关开发,推荐sublime text, webstorm(jetbrains公司系列产品)这两个的原因在于,有个技术叫emmet, http://docs.emmet.io, ...

  6. jupyter notebook + pyspark 环境搭建

    安装并启动jupyter 安装 Anaconda 后, 再安装 jupyter pip install jupyter 设置环境 ipython --ipython-dir= # override t ...

  7. js实现网站导航的二级下拉菜单

    http://www.codesky.net/article/201109/1200js/%E5%AE%9E%E7%94%A8%E5%AF%BC%E8%88%AA%E8%8F%9C%E5%8D%95. ...

  8. web前端开发分享-css,js入门篇(转)

    转自:http://www.cnblogs.com/jikey/p/3600308.html 关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人 ...

  9. 27个Jupyter Notebook使用技巧及快捷键(翻译版)

    Jupyter Notebook Jupyter Notebook 以前被称为IPython notebook.Jupyter Notebook是一款能集各种分析包括代码.图片.注释.公式及自己画的图 ...

  10. css,js工具篇

    4. web前端开发分享-css,js工具篇   web前端开发乃及其它的相关开发,推荐sublime text, webstorm(jetbrains公司系列产品)这两个的原因在于,有个技术叫emm ...

随机推荐

  1. python第一天2.28

    2019年2月28日 今日内容大纲: 01 cpu 内存 硬盘 操作系统 CPU:中央处理器,相当于人大脑.   运行速度:飞机 内存:临时存储数据. 8g,16g,      运行速度:高铁 1,成 ...

  2. 2019-4-23 plan

    需要制作springcloud es6的技术文档和demo

  3. [java] 软工实践WordCount-Plus

    整体思路 模块化 对于任何一个小模块,例如:输入.输出.计算都独立开来,降低耦合. 插件化 对于任何一个模块均作成插件,可拔插,可更换,而不会导致其他的插件出现故障. 事件驱动 使用观察者模式,用事件 ...

  4. Spring循环依赖问题

    什么是循环依赖? 循环依赖就是循环引用,指两个或多个bean互相持有对方,比如说TestA引用TestB.TestB引用TestA,最终形成一个闭环. 注意:循环依赖不是指循环调用. 循环调用:指方法 ...

  5. JedisPubSub

    MsgListener extends JedisPubSub notify-keyspace-events "KEA"

  6. 《Java8实战》读书笔记

    个人感悟: 1.lambda表达式,补充了JAVA在面向对象之外,面向过程的一面.在写面向过程代码的时候更方面了,甚至可以利用代码来做类似数学公式的运算(P64) 2.流,对集合的操作,就像用SQL对 ...

  7. java 枚举使用教程

    转载:https://blog.csdn.net/newbie_907486852/article/details/81027512 一.枚举型常量 首先枚举是一个特殊的class,这个class相当 ...

  8. canvas 经典播放器图标

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  9. 了解Activity生命周期

    当用户浏览,退出和返回您的应用时,您应用中的activity实例会在其生命周期中的不同状态中进行转换. Activity类提供了许多回调,允许activity知道状态已更改:系统正在创建,停止或恢复a ...

  10. Docker生态会重蹈Hadoop的覆辙吗?

    Docker生态会重蹈Hadoop的覆辙吗? http://mp.weixin.qq.com/s?__biz=MzA5NDg3ODMxNw==&mid=2649535024&idx=1 ...