2017_12-第二周
Javascript 面向对象编程(一):封装
Javascript 面向对象编程(一):封装
最近一直在用百度的echarts做图表什么的,在配置项中的option
是一个对象,,like this var option = {}
,,有时需要多个option
对象,复制来复制去,也只是复制的变量,指向的还是同一个引用。。得好好学习下,翻来覆去还是阮一峰老师的总结最友好~
原文链接:Javascript 面向对象编程(一):封装 - by 阮一峰
学习Javascript,最难的地方是什么?
我觉得,Object(对象)最难。因为Javascript的Object模型很独特,和其他语言都不一样,初学者不容易掌握。
下面就是我的学习笔记,希望对大家学习这个部分有所帮助。我主要参考了以下两本书籍:
2017_12—第一周
2017-12-04
幂等:idempotent idempotence 是一个数学与计算机学概念,常见于抽象代数中。
在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“setTrue()”函数就是一个幂等函数,无论多次执行,其结果都是一样的.更复杂的操作幂等保证是利用唯一交易号(流水号)实现.scaffold 英[ˈskæfəʊld] 美[ˈskæfoʊld]
n. 脚手架; <史>断头台;
[例句]Moore ascended the scaffold and addressed the executioner.
穆尔走上断头台,和刽子手说话。
2017-12-05
stumbled 英 [ˈstʌmbl] 美 [ˈstʌmbəl]
v. (不顺畅地) 说( stumble的过去式和过去分词 ); 跌跌撞撞地走; 绊脚; (说话、演奏等) 出错;
[例句]She stumbled and fell, scraping her palms and knees.
她绊了一下摔倒了,手掌和膝盖都蹭破了。*reserved 英[rɪˈzɜ:vd] 美[rɪˈzɜ:rvd]
adj. 预订的; 矜持的; 储藏着的;
v. 保留[储备]某物( reserve的过去式);
[例句]He was unemotional, quite quiet, and reserved
他感情淡漠,沉默寡言,性格内敛。keyword 关键字
reserved word 保留字literal 英[ˈlɪtərəl] 美[ˈlɪtərəl]
adj. 照字面的; 原义的; 逐字的; 平实的,避免夸张;
n. [印] 错排,文字上的错误;
[例句]In many cases, the people there are fighting, in a literal sense, for their homes.
很多情况下,那里的人们是真刀真枪地在为家园而抗争。anonymous 英[əˈnɒnɪməs] 美[əˈnɑ:nɪməs]
adj. 匿名的; 无名的; 假名的; 没有特色的;
[例句]You can remain anonymous if you wish
你愿意的话可以不透露姓名。
2017-12-07
立即执行函数表达式(IIFE)
立即执行函数表达式(IIFE)
原文:Immediately-Invoked Function Expression (IIFE) by Ben Alman
以防你没有注意到,(事先声明)我是一个对于专业术语有些坚持的人。所以,当我多次听到流行却易产生误解的术语「自执行匿名函数」,最终决定将的想法总结到这篇文章中。
除此之外,为了提供一些更深入更彻底的关于这种模式是如何工作的,事实上我还建议了我们应该怎样称呼这种模式。另外,如果你想跳过这里,你可以直接阅读立即调用函数表达式,但是我建议你读完整篇文章。
你需要知道的是,这篇文章不是想说「我是对了,你是错的」之类的。我发自真心地想帮助人们理解这有点儿复杂的概念,并且我认为使用前后一致的精确术语是有助于人们理解的最简单的方式之一。
理解与使用Javascript中的回调函数
理解与使用Javascript中的回调函数
有点小感慨
在这不得不提一下Python,在人工智能火起来之前就在断断续续的看教程。现在因为人工智能的原因,更要好好学习一下,,在学习的过程中了,第一次好像明白『函数式编程』到底是怎么一回事儿了。放张图,各位体会下,,👇
因为最近工作的原因,先后遇到了几个关于js的问题,没想到需要阅读的Tab页越来越多,需要总结的页是越来越多。这个过程中,没想到朝夕相处的js中也有类似的特性,,比如闭包,之前特地去了解,可还是半知半解,,如今从Python反观js,一下子通透了~哈哈,下面进入正文
Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用。既然函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回。
孔雀为什么开屏呢?
彻底理解JavaScript同步|异步|事件循环(EventLoop)
JavaScript:彻底理解同步、异步和事件循环(Event Loop)
为什么JavaScript是单线程?
JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?
JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?所以,渲染DOM的线程和JavaScript执行的线程一定是互斥的。
所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核心特征,将来也不会改变。
为了利用多核CPU的计算能力,HTML5提出Web Worker标准,允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制,且不得操作DOM。所以,这个新标准并没有改变JavaScript单线程的本质。
虽然JS是单线程的但是浏览器的内核是多线程的,在浏览器的内核中不同的异步操作由不同的浏览器内核模块调度执行,异步操作会将相关回调添加到任务队列中。而不同的异步操作添加到任务队列的时机也不同,如 onclick, setTimeout, ajax 处理的方式都不同,这些异步操作是由浏览器内核的 webcore 来执行的,webcore 包含上图中的3种 webAPI,分别是 DOM Binding、network、timer模块。
JavaScript执行顺序
JavaScript执行顺序
JavaScript(以下简称js) 是一种描述型脚本语言,由浏览器进行动态的解析与执行。由于js编写位置比较灵活,所以处在不同位置的js代码执行顺序也是不同的。js和其他编程语言相比比较随意,所以js代码中充满各种奇葩的写法。苦逼的公司造就苦逼程序员全栈工程师,工作中总是经常自己写些简单的前端页面,经常被js的执行顺序袭扰,索性找个大块儿时间好好学习总结下,理解各型各色的写法,希望能对js的语言特性有深入的理解。
函数的声明和调用
函数的定义方式大体有以下两种,浏览器对于不同的方式有不同的解析顺序。
- 使用
function
关键字声明一个函数,再指定一个函数名,叫函数声明。1
2
3function Fn1(){
alert("Hello World!");
} - 使用
function
关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式,这是最常见的函数表达式语法形式。如果遇到函数声明,则进行预处理(类似C语言的编译);如果遇到函数表达式,则只是将函数赋值给一个变量,不进行预处理,待调用的时候再进行处理。1
2
3var Fn2 = function(){
alert("Hello World!");
}
@(#函数声明)👆↑ 这段代码()可以正常运行,弹出”Hello World!”警告对话框。浏览器对Fn1()进行了预处理,再从Fn1();开始运行。1
2
3
4Fn1();
function Fn1(){
alert("Hello World!");
}