JS Q&A小记录

原创 2017年05月03日 15:50:38
  • 变量、函数–声明与表达式

      变量声明和函数声明会提升到该函数或外部函数作用域的顶部,函数声明优先级高于变量声明。但是变量的赋值会留在原位。所以函数声明的函数可以被提前引用,但是变量提前引用会被判定为undefined。
      注意ES6标准,用let声明的变量只在所在代码块中有效而且不会被提升。
      而函数定义表达式中,函数的声明虽然也会提前,但是赋值并不能提前,所以该函数无法在表达式定义之前被引用。
       函数与变量同名,且函数声明在先时,如果变量有赋值,则函数声明被覆盖,若没有赋值,则变量声明被忽略。

  • 算术运算符 

      +:字符串优先
       -:数值优先

  • Event Loop

      js的一大特点是单线程,这意味着所有的任务都需要排队执行。任务分为同步和异步两种类型。
       js中的同步不同于其他语言的同步(多线程),是指按照代码顺序执行任务。
       1.同步任务执行时生成一个执行栈。
       2.异步任务是不进入主线程的。只要异步任务有了运行结果,就在”任务队列”之中放置一个事件。
       3.一旦”执行栈”中的所有同步任务执行完毕,系统就会读取”任务队列”,看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。
       “任务队列”是一个事件的队列,IO设备和用户产生事件都会在“任务队列”中添加一个事件。只要指定过回调函数,这些事件发生时就会进入”任务队列”,等待主线程读取。异步任务必须指定回调函数,当主线程开始执行异步任务,就是执行对应的回调函数。
      除了放置异步任务的事件,”任务队列”还可以放置定时事件,即指定某些代码在多少时间之后执行。这叫做”定时器”(timer)功能,也就是定时执行的代码。
      定时器功能主要由setTimeout()和setInterval()这两个函数来完成。setTimeout()接受两个参数,第一个是回调函数,第二个是推迟执行的毫秒数。如果将setTimeout()的第二个参数设为0,就表示当前代码执行完(执行栈清空)以后,立即执行(0毫秒间隔)指定的回调函数。
      总之,setTimeout(fn,0)的含义是,指定某个任务在主线程最早可得的空闲时间执行,也就是说,尽可能早得执行。它在”任务队列”的尾部添加一个事件,因此要等到同步任务和”任务队列”现有的事件都处理完,才会得到执行。HTML5标准规定了setTimeout()的第二个参数的最小值(最短间隔),不得低于4毫秒,如果低于这个值,就会自动增加。
      以上内容参考阮一峰大大写的博客

    http://www.ruanyifeng.com/blog/2014/10/event-loop.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

[学习笔记] 微信公众平台 · 小程序 ·Q&A

Q&A:问与答1、怎么获取用户输入 var inputContent = {}Page({ data: { inputContent: {} }, bindChange: f...
  • u013316615
  • u013316615
  • 2016年10月08日 10:17
  • 269

小程序开发Q&A

本文总结小程序开发中常见的错误问题。 请开发者利用浏览器的搜索功能来检索关键字,快速定位到相关问题。快捷键Ctrl+F打开搜索框。 Q1:为什么会出现“脚本错误或者未正确调用Page(...
  • wtdask
  • wtdask
  • 2017年04月20日 16:08
  • 410

关于对日项目中的Q&A---Q&A的模板

希望日方对障害详细说明: 日本語:Lxxで/障害xx番目、「○○○」について、具体的に説明していただけませんか。中国語:在第xx行/障碍号xx,关于「○○○」,是否能具体说明一下呢。  日方所...
  • dhy270498872
  • dhy270498872
  • 2012年11月23日 10:37
  • 1726

设计模式简介Q&A

2007年10月06日 21:37:00 设计模式简介(第5章)复习题简答题1) 设计模式思想应该归功于谁?建筑师Christopher Alexander在20世纪70年代末期...
  • softart
  • softart
  • 2007年10月27日 09:31
  • 579

[6] Word Q&A

Q&A 保存错了怎么办,恢复之前的版本 没有退出的时候,可以撤销ctrl+z,退出则要设置,文件-选项-高级,始终创建备份副本,文件-选项-保存,时间和位置以及保存频率如何显示所有字符? 文件...
  • yangfeng2014
  • yangfeng2014
  • 2016年04月13日 08:04
  • 245

Q&A——性能

性能 Q1:在整体的性能消耗上,CPU和GPU各占一半合理吗?如果不是,各占多少为好?还是说需要根据机型来看?其次,我如何知道游戏在手机上的GPU消耗?Profiler是看不到的,有工具推荐吗?...
  • e295166319
  • e295166319
  • 2017年04月01日 14:24
  • 237

在Ubuntu下编程出现的Q&A

Q1. libgsl error while loading shared libraries: libgsl.so.19: cannot open shared object file: No s...
  • ziqian0512
  • ziqian0512
  • 2016年03月10日 17:08
  • 537

数据库基础问答Q&A

三范式 1NF:原子性,字段不可分; 2NF:唯一性,有主键,非主键字段依赖主键; 3NF:每列都与主键有直接关系,不存在传递依赖,非主键字段不能相互依赖; 例子: 1NF:(关系数据库中crea...
  • textboy
  • textboy
  • 2015年10月10日 11:45
  • 331

微信小程序精品demo:电影推荐:位置,浏览记录历史,相册

本demo已经设计较为完善,所以单独发布一贴;http://www.wxapp-union.com/thread-1753-1-1.html 作者:yesifeng 文件结构:   预览图...
  • sinat_17775997
  • sinat_17775997
  • 2017年01月09日 09:47
  • 1031

CVS-个人Q&A记录

1,如何解决commit时出现被提交文件被锁而导致的无法提交的错误?环境:windows server 2000, wincvs1.3中文版问题出现前状况记述:最近由于电不稳定,常常停电,有时在使用C...
  • yeyuboy
  • yeyuboy
  • 2005年08月05日 15:24
  • 1365
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JS Q&A小记录
举报原因:
原因补充:

(最多只允许输入30个字)