第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 关键字,则

  1. 没有return语句或return值不是一个对象,返回this,也就是新创建的对象
  2. 如果有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语言精粹_笔记相关推荐

  1. 精通javascript、javascript语言精粹读书笔记

    于是选择两本书做最后的冲刺: 精通javascript(jquery之父著作),javascript语言精粹.希望我也能成为一个javascript的好手. Dom Elements的属性 精通jav ...

  2. JavaScript 语言精粹读书笔记

    最近在看 赵泽欣 / 鄢学鹍 翻译的 蝴蝶书, 把一些读后感言记录在这里. 主要是把作者的建议跟 ES5/ES5.1/ES6 新添加的功能进行了对比 涉及到的一些定义 IIFE: Immediatel ...

  3. JavaScript语言精粹-读书笔记(1)

    JS 语言精粹 蝴蝶书 点击链接下载电子书 这本书需要基本的JS基础和一定的经验.第一次看感觉很普通,工作一段时间后发现这本书很多细节很重要.这本书基于 ECMA3版本写的,现在已经普遍使用ECMA6 ...

  4. 学习javascript语言精粹的笔记

    1.枚举: 用for in 语句来遍历一个对象中所有的属性名,该枚举过程将会列出所有的属性也包括涵数和方法,如果我们想过滤掉那些不想要的值,最为常用的过滤器为hasOwnProperty方法,以及使用 ...

  5. 《JavaScript语言精粹》笔记

    思考:lambda表达式 函数本质就是一个表达式, 普通的函数有函数名,函数名就像一部手机的标签, 撕去手机的标签,仍是一部手机. 第一章:精华 JavaScript建立在一些非常好的想法和少数非常坏 ...

  6. JavaScript语言精粹--读书笔记三之replace()与正则

    今天有人问我repalce(),他那个题目很有意思.我也不会做,于是我就去查,结果发现就是最基础的知识的延伸. 所以啊最基础的知识才是很重要的,千万不能忽略,抓起JS就写代码完全不知到所以然,只知道写 ...

  7. Javascript语言精粹学习笔记之对象

    一.Javascript的简单类型包括 1.数字 number JS 不分整型与浮点型 两个浮点数相加,精度不够 2.字符串 string 3.布尔值 boolean true和false 4.nul ...

  8. JavaScript语言精粹读书笔记

    JavaScript运算符优先级 运算符的优先级,依次降低 运算符 含义 .  []  () 提取属性与调用函数 delete new typeof + - ! 一元运算符 *  /  % 乘法.除法 ...

  9. 《JavaScript语言精粹》学习笔记(函数(2))

    <JavaScript语言精粹>学习笔记(函数(2)) 函数(Functions) 参数(Arguments) 当参数被调用时,会得到一个"免费"的参数数组argume ...

  10. 《JavaScript语言精粹 修订版》 读书笔记

    之前看到这篇文章, 前端网老姚浅谈:怎么学JavaScript?,说到怎么学习JavaScript,那就是 看书.分析源码. 10本书读2遍的好处,应该大于一本书读20遍. 看书主动学习,看视频是被动 ...

最新文章

  1. 如何用asp.net向其他服务器post一条信息
  2. 纯C#代码的Excel读取器(不需要Office Excel Com组件)
  3. setBackgroundDrawable和setBackgroundColor的用法(转)
  4. Spring Boot 集成 Elasticsearch 实战
  5. 训练日志 2019.3.28
  6. python纳入小学课本了吗_Python语言为什么被推荐纳入高考和小学教材
  7. 常用验证函数isset()/empty()/is_numeric()函数
  8. Android数据存储------1,文件存储
  9. .10-浅析webpack源码之graceful-fs模块
  10. C语言的32个关键字和9种控制语句
  11. linux中nmap命令,Linux中nmap命令起什么作用呢?
  12. 「终身免费」淘小虾,Shopee浏览器数据分析插件
  13. 穿衣助手 张凯:电商产品经理的成长之路
  14. opencv图片显示到mfc控件中,按键打开
  15. c语言链表正序输出,建立正序链表,该怎么处理
  16. 域控制器是什么及其功能
  17. 南岭之南_RWERWERWE_96921_新浪博客
  18. 解决禅道升级报错:Column not found: 1054 Unknown column 'readme' in 'zt_im_client'
  19. APICloud(柚子科技)是一家劣迹斑斑的公司,It is shit!
  20. javafx 带图片的按钮菜单_怎么制作ICON图标 图片转ICON图标方法

热门文章

  1. 【思路】Gym - 101173F - Free Figurines
  2. 使用PHP输出中文JSON字符串
  3. Android adb shell执行mv等操作时,提示:Read-only file system的解决办法
  4. 为IT部门画一个“饼”
  5. Звезда 星星
  6. DedeCms网站防挂马注意点
  7. Windows Phone实用开发技巧(33):不重启程序切换当前语言
  8. 测试丢包_如何使用ping和tracert命令检测丢包
  9. vue组件化开发学习笔记-2-组件间的数据交互
  10. Mac没有winnt格式_Mac视频格式转换工具-H265 Converter Pro