第四章 表达式和运算符
1 new调用构造函数的过程
    a 创建一个新的空对象
    b 设置空对象的_proto_指向构造函数原型prototype
    c 将这个新对象当做this的值来调用构造函数
    d 如果构造函数不返回一个对象值,则返回新对象
2 左值:表示存储在计算机内存的对象。
3 除数为0的运算结果是正无穷大或负无穷大,0/0的结果是NaN。
4 位运算符会将NaN、Infinity和-Infinity都转换为0。
5 in运算符希望它的左操作数是一个字符串或可以转换为字符串,右操作数是一个对象。
6 a op = b => a = a op b,只有在a包含具有副作用的表达式(比如函数调用和赋值操作)的时候,两者才不相等。
    a data[i++]*= 2 和 data[i++]=data[i++]*2是不等价的
7 关于eval()最重要的是,它使用了它的变量作用域环境。也就是说,它查找变量的值和定义新变量和函数的操作和局部作用域中的代码完全一样。
8 eval具有更改局部变量的能力,这对于JS优化器来说是一个大问题。在非严格模式下,允许var geval = eval,这样间接调用eval( geval(params)),则使用全局对象作为上下文作用域,并且无法读写、定义局部变量和函数。
9 typeof区分对象和原始值
10 delete的操作数是一个左值,否则将不进行任何操作同时返回true
 
第五章 语句
1 ;(空语句),JS解释器执行空语句时不会执行任何动作。
2 var 和 function都是声明语句,它们声明或定义变量或函数。
3 函数声明和函数定义的区别
    a 函数声明:函数的名字可以在函数内部和父作用域中取到(实质上是声明了一个变量,并将函数对象赋值给这个变量);
    b 函数定义:函数的名字只能在函数内部取到。
4 return和break语句都用于终止switch语句。
5 switch对每个case匹配操作执行恒等。
6 break 和 continue 是JS中唯一使用语句标签的语句。
7 try/catch/finally 语句是JS的异常处理机制。
8 with 语句用于临时扩展作用域链,with () {}。
 
第六章 对象
1 属性名可以是包含空字符串在内的任意字符串,但对象中不能存在两个同名的属性。
2 属性特性
    a 值(value)
    b 可写性(writable),表明是否可以设置该属性的值
    c 可枚举性(enumerable),表明是否可以通过for/in循环返回属性
    d 可配置性(configurable),表明是否可以删除或修改该属性
3 存储器属性特性
    读取(get) 写入(set)可枚举性和可配置性
4 对象特性
    a 对象的原型(prototype)
    b 对象的类(class)是一个标识对象类型的字符串
    c 对象的扩展标记(extensible)指明了是否可以向该对象添加新属性
5 可以通过对象直接量、关键字 new 和 Object.create() 函数来创建对象。
6 Object.create可以通过传入参数为null来创建一个没有原型的新对象,通过这种方式创建的对象不会继承任何东西,甚至不包括基础方法。
7 属性赋值操作首先检查原型链,以此判断是否允许赋值操作。如果对象o继承一个只读属性x,那么赋值操作是不允许的。如果允许属性赋值操作,它也总是在原始对象上创建属性或者对已有的属性赋值。只有在查询属性时与继承有关,设置属性则与继承无关。有一个例外,如果o继承自属性x,而这个属性是一个具有setter方法的accessor属性,那么这时将调用setter方法,而不是给o创建一个属性x。需要注意的是,setter方法是由对象o调用的,而不是原型对象调用。
8 检测属性:可以通过in 运算符、hasOwnProperty() 和 propertyIsEnumerable() 方法完成
9 propertyIsEnumerable是hasOwnProperty的增强版,只有检测到自有属性且这个属性的可枚举性为true时它才返回true。
10 枚举属性:
    a 可以通过for/in 循环(可枚举的自有属性和继承属性)
    b Object.keys() (可枚举的自有属性)
    c Object.getOwnPropertyNames() (所有自有属性)
11 由getter 和 setter 定义的属性称为"存取器属性",也是可以继承的。
12 通过调用Object.getOwnPropertyDescriptor()可以获得某个对象特定属性的属性描述符。
13 通过调用Object.defineProperty()可以设置属性的特性。
14 可写性控制着对值特性的修改。
15 可配置性控制着对其他特性的修改(包括属性是否可以删除)。具体规则:
    a 如果属性(数据属性&存储器属性)是不可配置的,则不能修改可配置性和可枚举性;
    b 如果存储器属性是不可配置的,则不能修改其getter 和 setter 方法,也不能将它转换为数据属性;
    c 如果数据属性是不可配置的,则不能将它转换为存储器属性;
    d 如果数据属性是不可配置的,则不能将它的可写性从false修改为true,但是可以从true修改为false;
    e 如果数据属性是不可配置且不可写的,则不能修改它的值。然而可配置但不可写的属性的值是可以手动修改的(实际上是先将它标记为可写的,修改值后,再转换为不可写的)
    f 如果对象是不可扩展的,不能给它添加新属性。
16 通过调用isPrototypeOf() 检测一个对象是否是另一个对象的原型。
17 通过内置构造函数(Array Date等)创建的对象均有类属性。
18 Object.prototype.toString.call(o).slice(8, -1) => 类属性
19 对象可扩展性
    a Object.isExtensible() 是否可扩展
    b Object.preventExtensions() 转换为不可扩展的
    c Object.seal() 除了转换为不可扩展的,还将对象的所有自有属性设置为不可配置的
    d Objetct.freeze() 除了转换为不可扩展的,还将对象的属性设置为不可配置的,另外所有数据属性都设置为只读的(setter方法不收影响)
20 JSON.stringify() 和 JSON.parse() 序列化和还原对象。
 

JS权威指南读书笔记(二)的更多相关文章

  1. JS权威指南读书笔记(七)

    第十七章 事件处理 1 客户端JS程序采用了异步事件驱动编程模型. 2 关于事件的重要定义     a 事件类型(event type)     b 事件目标(event target) target ...

  2. JS权威指南读书笔记(六)

    第十五章 脚本化文档   1 文档对象模型(DOM)是表示和操作HTML和XML文档内容的基础API. 2 文档节点的部分层次结构 Text和CDATASection都是characterData的子 ...

  3. JS权威指南读书笔记(五)

    第十三章 Web浏览器中的JavaScript 1 在Html文档中嵌入客户端4种JS代码方法     a 内联方式,放置在<script>标签之间     b 放置在<script ...

  4. JS权威指南读书笔记(四)

    第十章 正则表达式 1 正则表达式直接量定义为包含在一对斜杠(/)之间的字符     a /s$/ == new RegExp("s$") 2 直接量字符:所有字母和数字都是按照字 ...

  5. JS权威指南读书笔记(三)

    第七章 数组 1 数组的实现是经过优化的,用数字索引来访问数组元素一般来说比访问常规的对象属性要快的多. 2 数组直接量的语法允许有可选的结尾的逗号,故[ ; ; ]只有两个元素而非三个. 3 调用构 ...

  6. JS权威指南读书笔记(一)

    第一章 JavaScript概述 1 JS是一门高端的.动态的.弱类型的编程语言,非常适合面向对象和函数式的编程风格.   第二章 词法结构 1 JS程序是用Unicode字符集编写的. 2 JS是区 ...

  7. HTTP权威指南读书笔记

    HTTP权威指南笔记 读书有两种境界,第一种境界是将书读薄,另一种是读厚.本篇文章就是HTTP权威指南的读书笔记,算是读书的第一重境界,将厚书读薄.文章对HTTP的一些关键概念做了比较详细的概述,通读 ...

  8. Hadoop权威指南学习笔记二

    MapReduce简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考,有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.n ...

  9. css权威指南读书笔记

    今天翻手机,翻到了许久之前看css权威指南时的笔记,遂移到博客中来. 1.属性选择器p.one class名为one的p元素p[class][name] 含有class和name属性的p元素p[cla ...

随机推荐

  1. Angular 项目打包之后,部署到springboot项目中,刷新访问404解决方法

    解决方法1: app.module.ts文件添加两行代码: import { LocationStrategy, HashLocationStrategy } from '@angular/commo ...

  2. shell编程系列16--文本处理三剑客之awk模式匹配的两种方法

    shell编程系列16--文本处理三剑客之awk模式匹配的两种方法 awk的工作模式 第一种模式匹配:RegExp 第二种模式匹配:关系运算匹配 用法格式对照表 语法格式 含义 RegExp 按正则表 ...

  3. windows下安装anaconda和tensorflow

    anaconda确实很好用,省去了很多麻烦,现在我个人推荐直接使用anaconda. anaconda的特点:可以存在多个python环境,要使用某一个环境的话,就需要切换到这个环境,安装.卸载包都是 ...

  4. xml文档操作

    /** * */package com.gootrip.util; import java.io.ByteArrayOutputStream;import java.io.File;import ja ...

  5. 在excel图表上添加数据标签

    在excel图表上添加数据标签 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://zhidao.baidu.com/question/47838665 方法与步骤 在E ...

  6. AD 常用策略-修改本地管理员密码,禁用非administrator帐户,删除非administrator帐户

    这个是用启动脚本实现的. 我放在计算机策略下了. 另存为VBS格式即可 修改第三行“123qwe!@#”,引号中的就是你的新密码. 一:禁用非administrator帐户 strComputer = ...

  7. 【tshark tcpdump】linux网络排查

    抓包: 1.tcpdump 2.tshark是wireshark的命令行版. tshark使用示例: ,实时打印当前http请求的url # tshark -s -i eth0 -n -f 'tcp ...

  8. C#获取IP及MAC地址 方法

    C#获取IP及MAC地址 方法,比较齐全 using System.Net; using System; using System.Management; using System.Runtime.I ...

  9. Data - 【转】数据分析的道与术

    简要说明 本文来自网络流传的"百度内部培训PPT - 数据分析的道与术",版权属于"百度",如有冒犯,即刻删除. PDF下载 - 数据分析的道与术 什么是数据分 ...

  10. Qt5.编译错误.error: C2338: The slot requires more arguments than the signal provides.

    1.Qt563x86vs2015,遇到如下 编译错误: error: C2338: The slot requires more arguments than the signal provides. ...