您的位置:首页 > Web前端 > JavaScript

《js高级程序设计(第三版)》第五章学习笔记

2018-03-19 15:33 190 查看
5.5 Function类型1.每个函数都是Function类型的实例。函数是对象。函数名是一个指向函数对象的指针。2.定义函数的方式:使用函数声明语法;使用函数表达式;使用Function构造函数。3.使用不带括号的函数名是访问函数指针。4.ES没有重载。5.解析器会率先读取函数声明,使其在执行任何代码之前可用;函数表达式必须等到解析器执行到所在代码行,才会被解释执行。6.函数声明提升(function declaration hoisting)7.源代码树8.除了什么时候可以通过变量访问函数的区别外,函数声明与函数表达式等价。9.函数内部属性:arguments/this。(1)arguments是一个类数组对象,有一个callee属性,该属性是一个指针,指向拥有这个arguments对象的函数。可用于解耦合。(2)this引用的是函数执行的环境对象10.函数名仅仅是一个包含指针的变量。11.ES5:caller。这个属性中保存着调用当前函数的函数的引用。如果在全局作用域中调用当前函数,值为null。12.ES5还定义了arguments.caller。在非严格模式下始终是undefiened。13.函数属性和方法:length/prototype。length表示函数希望接收的参数个数。14.ES5中,prototype属性是不可枚举的,因此使用for-in无法发现。15.每个函数都包含两个非继承而来的方法:apply/call()。(1)在特定的作用域中调用函数。作用相同,区别仅在于接收参数的方式不同。apply(this, arguments)/apply(this, [num1, num2])。call(this,  num1,  num2)。(2)扩充函数赖以运行的作用域。16. bind()。创建一个函数的实例,其this值会被绑定到传给bind()函数的值。17. 每个函数继承的toLocaleString()/toString()/valueOf()始终返回函数的代码。 5.6 基本包装类型1. 3个特殊的引用类型:Boolean/Number/String。2. 基本类型值不是对象。3. 引用类型和基本类型的主要区别就是对象的生存期。引用类型在执行流离开作用域之前一直保存在内存中。自动创建的基本类型对象只存在与一行代码执行的瞬间,然后立即被销毁。4. 转型函数/构造函数5. 布尔表达式中的所有对象都会被转换为true。6. 建议永远不要使用Boolean对象,不建议直接实例化Number类型。7. (1)toFixed()参数制定输出结果中的小数位数。(2)toExponential()返回以指数表示法表示的数值的字符串形式,参数制定输出结果中的小数位数。(3)toPrecision()得到表示某个数值最合适的格式。参数表示熟知的所有数字的位数(不包括指数部分)。 8. 即使字符串中包含双字节字符(不是占一个字节的ASCII字符),每个字符仍然算一个字符。9. String类型方法:(1) charAt()以单字符字符串的形式返回给定位置的字符;charCodeAt()返回字符编码。(2) concat()用于将一个或多个字符串拼接起来,返回拼接得到的新字符串。(3) slice()/substr()/substring()第一个参数指定开始位置,第二个参数表示子字符串到哪里结束。slice()/substring()的第二个参数指定的是子字符串最后一个字符后面的位置,而substr()的第二个参数指定返回的字符个数。slice()会将传入的负值与字符串的长度相加。substr()将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0。substring()把所有负值参数都转换为0。(4) indexOf()/lastIndexOf()。第二个参数表示从字符串的哪个位置开始搜索。(5) trim()。创建一个字符串的副本,删除前置和后缀的所有空格,然后返回结果。(6) toLowerCase()/toLocaleLowerCase()/toUpperCase()/toLocaleUpperCase()。(7) match()在字符串中匹配模式。string.match()。本质上与调用RegExg.exec()相同。(8) searc
b03d
h()。返回字符串中第一个匹配项的索引。如果没有匹配项,返回-1。(9) replace()。(10) split()。(11) localeCompare()。如果字符串在字母表中应该排在字符串参数之前,返回-1。返回的数值取决于实现。(12) fromCharCode()。接收一个或多个字符编码,将其转换成一个字符串。  5.7 单体内置对象1.由ES实现提供/不依赖于宿主环境的对象,这些对象在ES程序执行之前就已经存在了。2.内置对象:Object/Array/String3.单体内置对象:Global/Math。4.Global对象方法:(1)isNaN()(2)isFinite()(3)parseInt()(4)parseFloat()(5)encodeURI()/encodeURIComponent()。可以对URI(Uniform Resource Identifiers)进行编码。encodeURI()主要用于整个URI,encodeURIComponent()主要用于对URI中的某一段编码。encodeURI()不会对特殊字符编码,除了空格(%20)。encodeURIComponent()会对非标准字符进行编码。(6)decodeURI()/decodeURIComponent()。(7)eval()。通过eval()执行的代码可以引用在包含环境中定义的变量。在eval()中创建的任何变量或函数都不会被提升。代码注入。(8)Math。5.在所有代码执行之前,作用域中就已经存在两个内置对象:Global/Math。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js