JavaScript语言精粹_笔记
第2章 语法
2.1 空白
避免使用 /* */注释,可能与正则表达式冲突
/*var rm_a = /a*/.match(s) ; */
2.5 语句
一个编译单元包含一组可执行的语句。在web浏览器中,每个<script>标签都提供一个被编译且立即执行的编译单元。因为缺少链接器,JavaScript把他们一起抛入一个公共的全局名字空间中。
不像其他语言,JavaScript中的代码块(一对花括号中的一组语句)不会创建一个新的作用域。
第3章 对象
JavaScript的简单类型包括数字、字符串、布尔值、null、undefined。其他所有的值都是对象(python是万物皆对象),包括函数、数组、正则表达式。
对象是属性的容器,每个属性都有名字和值。
注意了!尿点来了,JavaScript中的对象是无类别的(class-free),我的理解就是js里没有class的概念而只有对象。
对象(a)可以继承其他对象(b)的属性值,b就叫做a的原型,通过多次的继承可以形成一条继承链(类似python class继承链)。对象字面量最根部的原型是Object.prototype,函数对象最根部原型是Function.prototype(其实它也一样继承自Object.prototype)
3.7 枚举
for in 语句遍历对象的属性,其遍历顺序是不确定的,如果想要以确定顺序遍历对象请使用数组,用下标来遍历。
3.9 减少全局污染
全局变量减弱了程序的灵活性,作者推荐的方法是,只创建一个全局变量,作为名字空间使用。类似XXXX项目 每个脚本函数都以"x888888"开头,以清晰分辨其所在模块。
var MYAPP = {} MYAPP.a = {"name" : "kelvin" "make" : "love" }
第4章 函数
4.3 调用
除了声明时定义的形式参数,调用一个函数还会给它附加两个参数:this,arguments。arguments是调用函数时传递给函数的参数列表,包括那些声明时没有定义形式参数的多于参数。
函数调用有四种模式,每种模式this的值是不同的。
- 方法调用模式
- 函数调用模式
- 构造器调用模式
- Apply调用模式
var person = {name : "kelvin",sex : "man",say : function(str){document.write(str);} }; person.say("nihao"); //方法调用,this是Personvar Add = function (a, b){return a + b; }; var result = Add(1, 2); //函数调用模式,this被绑定到全局对象var Person = function (name, sex){this.name = name;this.sex = sex;}; var kk = new Person("kelvin", "man"); //构造器调用模式,重点说一下,使用new关键字时,将创建一个新对象kk,kk的原型就是Person的prototype。this绑定kk。 person.say.apply(null, "hello"); //apply调用模式,this是由apply的第一个参数所指定的
4.5 返回
函数执行完毕时或遇到return语句时返回到调用函数的地方,返回值是 return 后的值,如果没有return语句则返回undefined。
如果函数调用前使用了 new 关键字,则
- 没有return语句或return值不是一个对象,返回this,也就是新创建的对象
- 如果有return语句且返回的是一个对象,那返回值就是这个对象
4.9 作用域
JavaScript有函数作用域,定义在函数内部的变量和参数对于函数外部是不可见的,而且在函数中任何地方定义的变量在该函数的任何地方都可见。
最好的做法是在函数体的顶部声明函数可能用到的所有变量。
4.10 闭包
第5章 继承
附录C:JSlint
JSlint 是一个JavaScript验证工具(非开源),可以扫描JavaScript源代码来查找问题。如果JSLint发现一 个问题,JSLint就会显示描述这个问题的消息,并指出错误在源代码中的大致位置。有些编码风格约定可能导致未预见的行为或错误,JSLint除了能指 出这些不合理的约定,还能标志出结构方面的问题。尽管JSLint不能保证逻辑一定正确,但确实有助于发现错误,这些错误很可能导致浏览器的 JavaScript引擎抛出错误。
评论
示例代码的排版,阅读性差了一点,尤其是被翻页隔开的代码阅读有点蛋疼
翻译的还是欠点火候,直接读代码比看文字清晰的多
转载于:https://www.cnblogs.com/kelvinkuo/p/3196735.html
JavaScript语言精粹_笔记相关推荐
- 精通javascript、javascript语言精粹读书笔记
于是选择两本书做最后的冲刺: 精通javascript(jquery之父著作),javascript语言精粹.希望我也能成为一个javascript的好手. Dom Elements的属性 精通jav ...
- JavaScript 语言精粹读书笔记
最近在看 赵泽欣 / 鄢学鹍 翻译的 蝴蝶书, 把一些读后感言记录在这里. 主要是把作者的建议跟 ES5/ES5.1/ES6 新添加的功能进行了对比 涉及到的一些定义 IIFE: Immediatel ...
- JavaScript语言精粹-读书笔记(1)
JS 语言精粹 蝴蝶书 点击链接下载电子书 这本书需要基本的JS基础和一定的经验.第一次看感觉很普通,工作一段时间后发现这本书很多细节很重要.这本书基于 ECMA3版本写的,现在已经普遍使用ECMA6 ...
- 学习javascript语言精粹的笔记
1.枚举: 用for in 语句来遍历一个对象中所有的属性名,该枚举过程将会列出所有的属性也包括涵数和方法,如果我们想过滤掉那些不想要的值,最为常用的过滤器为hasOwnProperty方法,以及使用 ...
- 《JavaScript语言精粹》笔记
思考:lambda表达式 函数本质就是一个表达式, 普通的函数有函数名,函数名就像一部手机的标签, 撕去手机的标签,仍是一部手机. 第一章:精华 JavaScript建立在一些非常好的想法和少数非常坏 ...
- JavaScript语言精粹--读书笔记三之replace()与正则
今天有人问我repalce(),他那个题目很有意思.我也不会做,于是我就去查,结果发现就是最基础的知识的延伸. 所以啊最基础的知识才是很重要的,千万不能忽略,抓起JS就写代码完全不知到所以然,只知道写 ...
- Javascript语言精粹学习笔记之对象
一.Javascript的简单类型包括 1.数字 number JS 不分整型与浮点型 两个浮点数相加,精度不够 2.字符串 string 3.布尔值 boolean true和false 4.nul ...
- JavaScript语言精粹读书笔记
JavaScript运算符优先级 运算符的优先级,依次降低 运算符 含义 . [] () 提取属性与调用函数 delete new typeof + - ! 一元运算符 * / % 乘法.除法 ...
- 《JavaScript语言精粹》学习笔记(函数(2))
<JavaScript语言精粹>学习笔记(函数(2)) 函数(Functions) 参数(Arguments) 当参数被调用时,会得到一个"免费"的参数数组argume ...
- 《JavaScript语言精粹 修订版》 读书笔记
之前看到这篇文章, 前端网老姚浅谈:怎么学JavaScript?,说到怎么学习JavaScript,那就是 看书.分析源码. 10本书读2遍的好处,应该大于一本书读20遍. 看书主动学习,看视频是被动 ...
最新文章
- 如何用asp.net向其他服务器post一条信息
- 纯C#代码的Excel读取器(不需要Office Excel Com组件)
- setBackgroundDrawable和setBackgroundColor的用法(转)
- Spring Boot 集成 Elasticsearch 实战
- 训练日志 2019.3.28
- python纳入小学课本了吗_Python语言为什么被推荐纳入高考和小学教材
- 常用验证函数isset()/empty()/is_numeric()函数
- Android数据存储------1,文件存储
- .10-浅析webpack源码之graceful-fs模块
- C语言的32个关键字和9种控制语句
- linux中nmap命令,Linux中nmap命令起什么作用呢?
- 「终身免费」淘小虾,Shopee浏览器数据分析插件
- 穿衣助手 张凯:电商产品经理的成长之路
- opencv图片显示到mfc控件中,按键打开
- c语言链表正序输出,建立正序链表,该怎么处理
- 域控制器是什么及其功能
- 南岭之南_RWERWERWE_96921_新浪博客
- 解决禅道升级报错:Column not found: 1054 Unknown column 'readme' in 'zt_im_client'
- APICloud(柚子科技)是一家劣迹斑斑的公司,It is shit!
- javafx 带图片的按钮菜单_怎么制作ICON图标 图片转ICON图标方法
热门文章
- 【思路】Gym - 101173F - Free Figurines
- 使用PHP输出中文JSON字符串
- Android adb shell执行mv等操作时,提示:Read-only file system的解决办法
- 为IT部门画一个“饼”
- Звезда 星星
- DedeCms网站防挂马注意点
- Windows Phone实用开发技巧(33):不重启程序切换当前语言
- 测试丢包_如何使用ping和tracert命令检测丢包
- vue组件化开发学习笔记-2-组件间的数据交互
- Mac没有winnt格式_Mac视频格式转换工具-H265 Converter Pro