没有合适的资源?快使用搜索试试~ 我知道了~
今天分享一下第五章(引用类型)下半部分的笔记。 上半部分的笔记可以浏览JavaScript高级程序设计学习笔记(三) 以下的笔记是书上一些我以前学习的时候,没有太重视的js基础知识,也有一些面试知识的拓展,通过博客回顾并加深理解。 文章目录第五章(下)引用类型Function 类型函数声明和定义没有重载函数声明与函数表达式作为值的函数函数内部属性函数属性和方法call()和apply()方法bind()方法基本包装类型Boolean类型Number类型String类型字符方法字符串操作方法字符串位置方法trim()方法字符串大小写转换方法字符串的模式匹配方法localeCompare()方法f
资源详情
资源评论
资源推荐
JavaScript高级程序设计学习笔记(四)高级程序设计学习笔记(四)
今天分享一下第五章(引用类型)下半部分的笔记。
上半部分的笔记可以浏览JavaScript高级程序设计学习笔记(三)
以下的笔记是书上一些我以前学习的时候,没有太重视的js基础知识,也有一些面试知识的拓展,通过博客回顾并加深理解。
文章目录文章目录第五章(下)引用类型Function 类型函数声明和定义没有重载函数声明与函数表达式作为值的函数函数内部属性函
数属性和方法call()和apply()方法bind()方法基本包装类型Boolean类型Number类型String类型字符方法字符串操作方法字符串
位置方法trim()方法字符串大小写转换方法字符串的模式匹配方法localeCompare()方法fromCharCode()方法单体内置对象
Global对象URI编码方法eval()方法window 对象Math对象属性min()和 max()方法舍入方法random()方法其他方法总结
第五章(下)第五章(下)
引用类型引用类型
Function 类型类型
由于函数实际上是对象。每个函数都是 Function 类型的实例,而且都与其他引用类型一样具有属性和方法。
函数声明和定义函数声明和定义
函数通常是使用函数声明语法定义的,如下面的例子所示。
function sum (num1, num2) {
return num1 + num2;
}
这与下面使用函数表达式定义函数的方式几乎相差无几。
var sum = function(num1, num2){
return num1 + num2;
};
后一种定义函数的方式是使用 Function 构造函数。Function 构造函数可以接收任意数量的参数, 但后一个参数始终都被看成
是函数体,而前面的参数则枚举出了新函数的参数。来看下面的例子:
var sum = new Function("num1", "num2", "return num1 + num2");
// 不推荐
没有重载没有重载
由于函数是对象函数是对象,因此函数名实际上也是一个指向函数对象的指针。当出现两个同名函数的时候,后面的函数会覆盖前面的函
数。
函数声明与函数表达式函数声明与函数表达式
函数声明和函数表达式是两种常见的定义函数的方法。实际上,解析器在向执行环境中加载数据时,对函数声明和函数表达式
并非一视同仁。解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问);至于函数表达式,则必须等到解
析器执行到它所在的代码行,才会真正被解释执行。请看下面的例子。
alert(sum(10,10)); //20 正常运行
function sum(num1, num2){
return num1 + num2;
}
以上代码完全可以正常运行。因为在代码开始执行之前,解析器就已经通过一个名为函数声明提升函数声明提升 (function declaration
hoisting)的过程,读取并将函数声明添加到执行环境中。对代码求值时,JavaScript 引擎在第一遍会声明函数并将它们放到
源代码树的顶部。所以,即使声明函数的代码在调用它的代码后面,JavaScript 引擎也能把函数声明提升到顶部。
如果像下面例子所示的,把上面的函数声明改为等价的函数表达式,就会在执行期间导致错误。
alert(sum(10,10)); //Error: sum is not a function
var sum = function(num1, num2){
return num1 + num2;
};
以上代码之所以会在运行期间产生错误,原因在于函数位于一个初始化语句中,而不是一个函数声明。换句话说,执行到函数执行到函数
所在的语句之前,变量所在的语句之前,变量 sum 中不会保存有对函数的引用中不会保存有对函数的引用;而且,由于第一行代码就会导致“unexpected identifier”(意外标识
符)错误,实际上也不会执行到下一行。
作为值的函数作为值的函数
因为 ECMAScript中的函数名本身就是变量,所以函数也可以作为值来使用。也就是说,不仅可以 像传递参数一样把一个函数
传递给另一个函数,而且可以将一个函数作为另一个函数的结果返回。
function callSomeFunction(someFunction, someArgument){
return someFunction(someArgument);
weixin_38555304
- 粉丝: 2
- 资源: 994
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0