浏览 4437 次
锁定老帖子 主题:JavaScript读书笔记三
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (3)
|
|
---|---|
作者 | 正文 |
发表时间:2011-03-07
最后修改:2011-03-12
函数的定义一般如下: function sum(num1 ,num2) { return num1 + num2; } 在使用函数表达式时,没有必要使用函数名–通过变量sum即可以引用函数,另外,还要注意函数末尾有一个分号 var sum = function(num1, num2) { return num1 + num2; }; 最后一种方法,但是不值得推荐
var sum = new Function("num1", "num2", "return num1 + num2"); javascript函数没有重载
解析器会率先读取函数声明,并使其在执行任何代码之前可用,至于函数并表达式,则必须等到解析器执行到它所在的代码行,才会真正被执行
与个人博客同时更新 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-03-07
写的不错哦。
不过, 有点疑问。 “在使用函数表达式时,没有必要使用函数名–通过变量sum即可以引用函数,另外,还要注意函数末尾有一个分号” 这句话是什么意思? 不是很理解。 函数末尾一定要有分号吗? 或许没有也行吧。 |
|
返回顶楼 | |
发表时间:2011-03-07
myter7 写道 写的不错哦。
不过, 有点疑问。 “在使用函数表达式时,没有必要使用函数名–通过变量sum即可以引用函数,另外,还要注意函数末尾有一个分号” 这句话是什么意思? 不是很理解。 函数末尾一定要有分号吗? 或许没有也行吧。 就是上面第二种声明方法,类似变量的声明 var xxx = function() {}; 来声明一个函数,调用的时候用变量名调用就可以了,然后因为是变量方法声明,声明完后就要加上分号,即大括号后面 |
|
返回顶楼 | |
发表时间:2011-03-07
因为是赋值表达式,所以语句结束要加分号。
|
|
返回顶楼 | |
发表时间:2011-03-08
最后修改:2011-03-08
amwjx 写道 因为是赋值表达式,所以语句结束要加分号。
你测试过了么? 你可以试试。javascript如果没有分号,会在每一行的末尾自动插入分号。 <script> var sum = function(num1, num2) { return num1 + num2; } alert(sum(1,2)); </script> JS的函数本身就是一个对象, 所以第三种才是JS函数原始的创建方式。 而前两种是JS提供的一种语法糖, 即通过字面量的方式来创建函数。 所以说, 他最后还是得转换为原始的对象创建方式。 这是我的理解。 |
|
返回顶楼 | |
发表时间:2011-03-08
最后修改:2011-03-08
我猜你的目的是求两个数的和,但是js中"+"的默认是字符串加,所以会出现以下情况:
var a = 1; var b = 2; var c = sum(a,b); // c = 12; |
|
返回顶楼 | |
发表时间:2011-03-08
_piggy_ 写道 我猜你的目的是求两个数的和,但是js中"+"的默认是字符串加,所以会出现以下情况:
var a = 1; var b = 2; var c = sum(a,b); // c = 12; 这位兄台你的意思是什么? 照我的理解,JS中的+号貌似并不是默认是字符串加吧。 Javascript是会根据上下文的环境决定+号的作用。 比如 var sum = function(num1, num2) { return num1 + num2; } alert(sum('1',2)); //其中一个参数为字符串,他就会将第二个参数当作字符串然后连接起来 |
|
返回顶楼 | |
发表时间:2011-03-09
引用 这位兄台你的意思是什么? 照我的理解,JS中的+号貌似并不是默认是字符串加吧。 Javascript是会根据上下文的环境决定+号的作用。 比如 var sum = function(num1, num2) { return num1 + num2; } alert(sum('1',2)); //其中一个参数为字符串,他就会将第二个参数当作字符串然后连接起来 我理解有误,误导了大家,还请见谅! |
|
返回顶楼 | |