`
gyht0808
  • 浏览: 112196 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JavaScript读书笔记三

阅读更多

 

函数的定义一般如下:

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函数没有重载

解析器会率先读取函数声明,并使其在执行任何代码之前可用,至于函数并表达式,则必须等到解析器执行到它所在的代码行,才会真正被执行

 

个人博客同时更新

分享到:
评论
7 楼 _piggy_ 2011-03-09  
引用

这位兄台你的意思是什么?
照我的理解,JS中的+号貌似并不是默认是字符串加吧。 Javascript是会根据上下文的环境决定+号的作用。
比如

var sum = function(num1, num2) {  
return num1 + num2;  
} 
alert(sum('1',2)); //其中一个参数为字符串,他就会将第二个参数当作字符串然后连接起来




我理解有误,误导了大家,还请见谅!
6 楼 myter7 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)); //其中一个参数为字符串,他就会将第二个参数当作字符串然后连接起来

5 楼 _piggy_ 2011-03-08  
我猜你的目的是求两个数的和,但是js中"+"的默认是字符串加,所以会出现以下情况:

var a = 1;
var b = 2;
var c = sum(a,b);
// c = 12;
4 楼 myter7 2011-03-08  
amwjx 写道
因为是赋值表达式,所以语句结束要加分号。


你测试过了么? 你可以试试。javascript如果没有分号,会在每一行的末尾自动插入分号。


<script>
var sum = function(num1, num2) { 
return num1 + num2; 
}
alert(sum(1,2));
</script>


JS的函数本身就是一个对象, 所以第三种才是JS函数原始的创建方式。
而前两种是JS提供的一种语法糖, 即通过字面量的方式来创建函数。
所以说, 他最后还是得转换为原始的对象创建方式。

这是我的理解。
3 楼 amwjx 2011-03-07  
因为是赋值表达式,所以语句结束要加分号。
2 楼 gyht0808 2011-03-07  
myter7 写道
写的不错哦。
不过, 有点疑问。
“在使用函数表达式时,没有必要使用函数名–通过变量sum即可以引用函数,另外,还要注意函数末尾有一个分号”
这句话是什么意思? 不是很理解。 函数末尾一定要有分号吗? 或许没有也行吧。

就是上面第二种声明方法,类似变量的声明 var xxx = function() {}; 来声明一个函数,调用的时候用变量名调用就可以了,然后因为是变量方法声明,声明完后就要加上分号,即大括号后面
1 楼 myter7 2011-03-07  
写的不错哦。
不过, 有点疑问。
“在使用函数表达式时,没有必要使用函数名–通过变量sum即可以引用函数,另外,还要注意函数末尾有一个分号”
这句话是什么意思? 不是很理解。 函数末尾一定要有分号吗? 或许没有也行吧。

相关推荐

Global site tag (gtag.js) - Google Analytics