js 读书笔记

合集下载

js高级程序设计读书笔记

js高级程序设计读书笔记

js高级程序设计读书笔记《JavaScript高级程序设计(第四版)》读书笔记一、概述《JavaScript高级程序设计(第四版)》是一本全面深入介绍JavaScript 语言的书。

这本书由Mozilla的布道师、Web标准之父Zakas编写,他以平易近人的语言,对JavaScript语言进行了全面的剖析,让读者在享受阅读的同时掌握JavaScript的精髓。

二、主要内容1. JavaScript基础:书中首先介绍了JavaScript的基本语法,包括变量、数据类型、运算符、函数等。

此外,还深入讲解了JavaScript的作用域和闭包,这是JavaScript中非常重要的概念。

2. DOM编程:书中详细介绍了如何使用JavaScript操作DOM(文档对象模型),包括如何获取和修改元素、如何处理事件等。

此外,还介绍了如何使用JavaScript创建和操作CSS样式。

3. 浏览器与服务器:书中介绍了如何在浏览器中使用JavaScript,包括AJAX、Fetch API、WebSockets等。

此外,还介绍了如何在中使用JavaScript,包括文件系统访问、数据库操作等。

4. ES6及更高版本的新特性:书中详细介绍了ES6及更高版本中新增的特性,包括箭头函数、模板字符串、模块化、Promises等。

此外,还介绍了ES7和ES8中新增的特性,如async/await、解构赋值等。

5. 性能优化:书中介绍了如何优化JavaScript代码的性能,包括减少重绘和回流、使用事件代理、懒加载等。

此外,还介绍了如何使用工具进行性能分析和优化,如Chrome DevTools、等。

6. JavaScript库和框架:书中介绍了常见的JavaScript库和框架,如jQuery、React、Vue等。

此外,还介绍了如何使用这些库和框架进行开发,以及它们的设计思想和实现原理。

三、感悟与思考通过阅读这本书,我深入理解了JavaScript语言及其应用场景,掌握了许多实用的技巧和方法。

js权威指南 读书笔记

js权威指南 读书笔记

第一章词法结构Js是用Unicode字符集编写的;js区分大小写,而html不区分;直接量;标志符合保留字;分号可选,注意良好的编程习惯。

第二章类型、值和变量1.数字Js不区分整数值和浮点数值,所有值都用浮点数值表示。

整型直接量有十六进制(ox或Ox前缀),八进制(0开始,可能不支持),还有十进制。

Infinity :无穷大-Infinity :负无穷大NaN != NaN(返回true)0 === -0Js采用一种二进制表示法,不能精确到类似0.1这样的数字,应避免小数,使用大整数,如10分而非0.1元2.文本字符串直接量转义字符:\.....字符串:js中字符串是固定不变的,使用方法后都返回新字符串,字符串本身不改变。

3.布尔值任意字符串都可以转换为布尔值,如下列都转换为falseundefinednull-0NaN“”布尔值包含toString()方法4.null和undefinedtypeof(null) //返回object,可以认为null是一个特殊的对象值,即“非对象”。

typeof(undefined) //返回undefine,表明这个值是这个类型的唯一成员。

两者都不包含任何属性和方法。

5.全局对象比如Math和JSON,全局对象的属性是全局定义的符号,js程序可以直接使用。

在代码最顶级,this可以直接引用全局对象。

如果代码声明了一个全局变量,这个全局变量就是全局对象的一个属性。

6.包装对象Js对象是属性或已命名值得集合,通过(.)引用属性值,属性值是函数时,称其为方法。

存取字符串、数字、布尔值的属性时创建的临时对象,它只是偶尔用来区分原始类型和对象,即它们三者并不是对象,但表现出有属性。

可通过String(),Number()或Boollen()显式创建包装对象:var s = new String();== 视原始值和包装对象相等,=== 不等。

7.原始值(undefined、null、布尔值、数字和字符串)是不可改变的,修改字符串实际上返回了一个新的字符串,原字符串并不改变。

JavaScript_笔记

JavaScript_笔记

1.实践,实践还是实践实践出来的东西是,是从自己骨子里生长出来的东西。

学习犹如散种子,在实践中种子才会发芽、生长、成熟和消亡。

没有发芽的种子还会像蒲公英一样,飘呀飘呀随念飘走,学习就成了一种消磨时间和锻炼思维的方式。

1.1.点滴心得1.1.1.js语言的构成结构基础:词法结构,首先是该语言的字符集,UTF-8,随后是其他的词法规则,包括:大小写敏感,对空格、换行和制表符的处理,对分号的定义(即语句结束规则),注释规则,直接量规则(所谓的直接量,即对内存单元中数据进行读取,而不用通过地址二次引用进行读取,和指针相对),标识符,,关键字。

数据类型和值。

【数据结构,相互之间有联系的元素的集合,数据之间的联系,我们称为逻辑结构。

练联系即结构。

数据类型,一个值的集合,和定义在该值集上的一组操作的统称。

抽象数据模型(Abstract Data Type),是指一个数据模型和定义在该模型上的一组操作。

ADT的形式化是三元组,ADT=(D,S,P)其中,D是数据对象,S是D 上关系的集合,P是对D的基本操作集。

】变量(有了类型,自然就有了变量)。

表达式和运算符(有类型,就有了该类型允许的运算,运算用运算符表示,运算符和变量的集合就是表达式)。

表达式是不能执行的,只有语句才能执行,语句是有动态行为的(function语句除外)。

语句包括:表达式语句,复合语句(语句块),var语句,function语句,if语句,循环语句,return语句,throw语句,trycath语句,空语句,标签语句,with语句,break语句,continue语句。

【function语句的作用是定义函数,而不是执行,因此没有动态行为,发生在函数被解析或者被编译时。

函数的定义和函数的运行并不在同一时刻。

】1.1.2.new对象new 为变量操作符分配一块内存,因此对象类型是引用类型,对象的类型是Object。

Object类型允许的操作是获取属性,通过“.”操作符,允许对变量执行操作,执行的具体操作依据变量类型决定。

JAVASCRIPT读书笔记[基础+多实例]

JAVASCRIPT读书笔记[基础+多实例]

JavaScript应该了解哪些1.何为JavaScript2.JavaScript的功能3.JavaScript的形态4.在HTML中嵌入JavaScript[3]显示日期和时间1、告知日期和时间2、每天都有问候3、能每个小时呈现不同信息的Script4、制作漂亮的图像时钟(field)5、制作精美的日历6、D-day功能(日期倒数)[4]生成帅气的文本效果1、生成键入效果的Script12、生成键入效果的Script23、使信息在显示框内来回移动的Script4、当鼠标移上文字时,显示框内会显示说明文字的Script6、新闻或公告事项中使用的Script27、生成跃然而出的欢迎语的Script8、使访问者在芳名录上留名的Script[5]制作动感十足的图片1、鼠标一碰,图片就变。

2、每次打开网页,图片都会变化。

3、图片自然会动。

4、时而清晰,时而模糊的图片。

5、图片四处闪现最终消失。

6、零碎图片滑动拼凑成完整图片。

[field]7、利用转换滤镜变换图片[6]与鼠标相关的各类效果1、鼠标移上时菜单发生变化2、禁止使用鼠标右键3、随鼠标移动的图片4、随鼠标移动的块状图片5、文本随鼠标滴溜溜的转6、单击鼠标右键,弹出“添加入收藏夹”窗口[7]状态栏也可以吸引眼球1、状态栏上的闪动信息2、在状态栏上显示当前信息3、在状态栏上显示动态文本4、在信息栏上只显示信息而不显示链接地址5、信息一个字一个字的显示6、信息在状态栏上来回移动[8]为背景添加多样效果1、鼠标移上文本时,背景色发生变化2、背景添加Fade效果3、生成随鼠标移动的十字线效果[failed]4、利用META标签转换画面5、雪花簌簌落下的效果[待定]6、水泡噗噗向上冒的效果[9]想了解与窗口相关的迷人效果吗?1、访问时自动弹出公告窗2、公告窗只出现一次3、生成无边框窗口field4、单击即打开新窗口、如同按F11一样5、生成多个弹出窗口6、关闭某网页自动链接到另一网站[10]制作风格各异的菜单1、鼠标上移时会产生变化的菜单2、鼠标移上时会自行展开菜单4、单一即会生成向下滑动(slide)菜单5、利用Iframe制作滑动菜单(sliding menu)[11]还有哪些实用的源代码1、制作多样的网络功能按钮2、制作“收藏夹”按钮3、制作“设为首页”按钮4、打印当前页5、制作“查看源代码”按钮【failed】6、禁用鼠标右键和键盘7、告知一切信息8、制作背景音乐的播放、停止按钮JavaScript应该了解哪些1.何为JavaScript2.JavaScript的功能3.JavaScript的形态4.在HTML中嵌入JavaScript(add)5.JavaScript的缺陷(在不同浏览器中表现有的存在差异)1.何谓JavaScript2.JavaScript的功能(1)JavaScript能使页面产生动感效果(2)JavaScript能根据使用者的操作执行相应的任务(3)JavaScript能获取用户和网页的信息(4)JavaScript可改变属性(5)JavaScript可控制各种表单(form)JavaScript可在传送表单之前对其格式进行检查。

深入浅出nodejs 读书笔记

深入浅出nodejs 读书笔记

《深入浅出 nodejs》读书笔记本书购于 2015.9.30 ,至今快两年半的时间了。

购书当时已经看完,但是现在再回头翻看,依然觉得很有收获。

因为本书讲解的内容较为底层、原理,并且 nodejs 的基础的 API 一直也没有变过,因此就不过时。

正好近期想写一篇关于 nodejs 的系列博客,正好拿本书做参考,重读并做读书笔记。

本书作者是阿里资深工程师朴灵,nodejs 步道师。

书中前言部分就提到,作者作为一名 FE 转型成为nodejs 后端工程师,所具有的优势仅仅是对 JS 语法熟悉而已,但是对后端开发的其他知识并不擅长,需要重新学习。

我想这也是我等 FE 对 nodejs 的一个看不透彻的地方,总以为会了 JS 就很容易学会 nodejs 。

第一章 nodejs 介绍为什么叫node?因为整个 server 端涵盖范围很大,由很多节点构成,而它可以作为 server 端的一个节点存在,因此叫node。

另外,前两天曾经有这么一段分歧,有人 fork 除了 nodejs 的源码,新建了一个IO.js,和 nodejs 形成竞争。

虽然现在没有了,但是可以看出 nodejs 的核心竞争力在异步 IO。

第二章 Module本章从原理上介绍 nodejs 如何实现 CommonJS 规范的。

CommonJS 语法不在赘述,此处总结一些比较重要的(或者有趣的)地方requireCommonJS 中require('....')是 nodejs 启动的时候同步加载,会阻塞执行。

加载过程会分为以下步骤:尝试加载核心模块,如http fs等尝试加载 npm 安装的第三方模块,名称都在 package.json 文件中尝试通过相对路径或者绝对路径加载文件,此时 nodejs 会按照 .js .json .node的次序不足扩展名,依次尝试exports下面是一个比较有意思的事情,此前我都没仔细考虑过。

JavaScript语言精粹(读书笔记)

JavaScript语言精粹(读书笔记)

JavaScript语⾔精粹(读书笔记)第⼀章精华1,JavaScript的函数(主要)基于词法作⽤域(lexical scoping)的顶级对象。

强类型语⾔允许编译器在编译时检测错误,但弱类型很⾃由,⽆需建⽴复杂的类层次,不⽤做强制造型。

JavaScript拥有强⼤的对象字⾯量表⽰法,这种表⽰法是JSON的灵感来源。

2,JavaScript有⼀个⽆类型的(class-free)对象系统,在这个系统中,对象可以直接从其他对象继承属性。

3,JavaScript依赖于全局变量来进⾏连接,所有编译单元的所有顶级变量被撮合到⼀个全局对象(the global object)的公共命名空间中【糟糕】。

第⼆章语法1,两种注释形式:/* */块注释(来⾃于⼀种PL/I的语⾔)有些字符也可能出现在正则⾥,//⾏注释(推荐使⽤)。

2,标识符由字母下划线或$开头,不能使⽤保留字作为对象的属性名。

3,JavaScript只有⼀种数字类型,它在内部被表⽰为64位的浮点数,没分离出整数类型,所以避免了短整形的溢出问题,你只需要它是⼀种数字。

4,JavaScript在创建时,Unicode是⼀个16位的字符集,所以所有字符都是16位的,它没有字符类型,⽤字符串表⽰字符。

'F'+'u'+'n'==='Fun','Fun'.toUpperCase()==='FUN'。

5,下列值都为假:false null undefined '' 0 NaN;其余为真(包括true,'false')。

for in语句会枚举⼀个对象的所有属性名(或键名),该枚举过程会列出所有的属性,属性名出现的顺序是不确定的,通常⽤Object.hasOwnProperty(variable)确定这个属性名是该对象的成员还是来⾃原型链。

JavaScript学习笔记

JavaScript学习笔记

Java Script一、JS概述1、JS的概念:1)JavaScript是一种网页编程技术,大部分使用者将它用于创建动态交互网页;富客户端(动态交互网页):给用户一个美好的使用体验,系统的布局以及风格根据客户的意愿随时自由调整。

通过Ajax技术实现 ---> 异步调用 ---> JS调用 ---> servlet2)JavaScript是一种基于对象和事件驱动的解释性脚本语言,具有与Java和C语言类似的语法;1.对象:具有一定意义并且包含属性和行为的程序体。

2.基于对象:由于javaScript的对象操作基本上都是由其它语言封装提供的,而自己本身主要是起一个调用执行的作用,故称之为基于对象。

java,c,php,jsp,html3.事件:计算机的鼠标、键盘等外部输入设备以及例如时间的因素等引发的计算机程序操作。

setTimeout4.基于事件:程序一直处于循环监听状态,当某一事件操作发生而去激发的行为操作的过程称为基于事件。

5.解释性脚本语言:在程序运行的时候,不用编译,直接读一行解释执行一行。

6.JavaScript属于弱类型语言:JS中所有变量声明都为 var xxx;Java:int a = 10;double b = 11.0;Date d = new Date();JS:var a = 10;var b = 11.0;var d = new Date();3)JavaScript是一种使用简单,功能强大的编程语言;2、JavaScript的用法1)使用的位置:头部,体部,html标签之外,html标签里面(head,body之外);2)调用方式:1.事件激发;2.直接引用js(<script>标签里面)3.直接定义(<script>标签体部)3)js文件:javaScript文件,可以独立定义为*.js,里面主要内容为function的声明。

javascript高级程序设计笔记

javascript高级程序设计笔记

文章标题:深入探讨《JavaScript高级程序设计》1. 前言作为前端开发人员,学习和掌握JavaScript是必不可少的。

而《JavaScript高级程序设计》这本书被誉为JavaScript领域的经典之作,深入浅出地讲解了JavaScript的方方面面。

本文将对这本书进行全面评估,并共享个人对其中内容的理解和观点。

2. 内容概要《JavaScript高级程序设计》一书内容丰富,涵盖了JavaScript的语法、对象、函数、浏览器特性、DOM操作、BOM操作等方面的知识。

作者以清晰的语言和丰富的示例,系统地介绍了JavaScript的高级应用和开发技巧,为读者提供了学习和提升的机会。

3. 深入浅出的学习之路本书以从简到繁的方式来探讨JavaScript相关主题,首先介绍了JavaScript的基本语法和数据类型,接着深入讲解了函数、对象、原型链等概念,最后涉及了浏览器相关的知识。

这种由浅入深的学习方式,让读者能够逐步深入理解JavaScript的核心概念和高级应用。

4. 对书中主要内容的理解和观点在本书中,作者对于JavaScript中的闭包、原型链、异步编程等概念进行了详细的讲解,这些内容非常有助于深入理解JavaScript的高级特性。

个人认为,闭包作为JavaScript中非常重要的概念,可以帮助我们更好地管理和维护代码;而原型链则是理解JavaScript面向对象特性的关键,对于对象之间的继承关系有着重要的作用。

书中对于DOM操作和事件处理也进行了详细的说明,这对于开发交互式的web应用至关重要。

5. 总结与回顾通过对《JavaScript高级程序设计》的学习,我深刻理解了JavaScript的核心概念和高级特性。

书中丰富的示例和案例,让我对JavaScript的应用有了更深入的认识,也使我在实际开发中能够更加灵活地运用这些知识。

通过总结和回顾书中内容,我相信我已经掌握了更多实用的开发技巧和方法,并且对JavaScript这门语言有了更深层次的理解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.在第一次给一个变量赋值的时候要加var
2.使用=== 替换==
3.使用闭包实现私有变量
`function Person(name, age) {
this.getName = function() { return name; };
this.setName = function(newName) { name = newName; };
this.getAge = function() { return age; };
this.setAge = function(newAge) { age = newAge; };
//未在构造函数中初始化的属性
var occupation;
this.getOccupation = function() { return occupation; };
this.setOccupation = function(newOcc) { occupation =
newOcc; };
}`
4.在语句结尾处使用分号
5.创建对象的构建函数
`function Person(firstName,lastName){
this.firstName=firstName;
stName=lastName;
var Saad = new Person(&quot;Saad&quot;, &quot;Mousliki&quot;);
}`
6.小心使用typeof instanceof 和 constructor typeof 用在数据类型上,如果用在引用类型上返回的 object instanceof 判断是那种对象的实例
Object.constructor 是object 的一个属性。

他只想:创建对象函数的引用。

7.创建一个自调用函数
`(function(){
// some private code that will be executed automatically
})();
(function(a,b){
var result = a+b;
return result;
})(10,20)`
1.在第一次给一个变量赋值的时候要加var
2.使用=== 替换==
3.使用闭包实现私有变量
`function Person(name, age) {
this.getName = function() { return name; };
this.setName = function(newName) { name = newName; };
this.getAge = function() { return age; };
this.setAge = function(newAge) { age = newAge; };
//未在构造函数中初始化的属性
var occupation;
this.getOccupation = function() { return occupation; };
this.setOccupation = function(newOcc) { occupation =
newOcc; };
}`
4.在语句结尾处使用分号
5.创建对象的构建函数
`function Person(firstName,lastName){
this.firstName=firstName;
stName=lastName;
var Saad = new Person(&quot;Saad&quot;, &quot;Mousliki&quot;);
}`
6.小心使用typeof instanceof 和 constructor typeof 用在数据类型上,如果用在引用类型上返回的 object instanceof 判断是那种对象的实例
Object.constructor 是object 的一个属性。

他只想:创建对象函数的引用。

7.创建一个自调用函数
`(function(){
// some private code that will be executed automatically })();
(function(a,b){
var result = a+b;
return result;
})(10,20)`。

相关文档
最新文档