论坛首页 Web前端技术论坛

JavaScript读书笔记三

浏览 4437 次
精华帖 (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函数没有重载

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

 

个人博客同时更新

   发表时间:2011-03-07  
写的不错哦。
不过, 有点疑问。
“在使用函数表达式时,没有必要使用函数名–通过变量sum即可以引用函数,另外,还要注意函数末尾有一个分号”
这句话是什么意思? 不是很理解。 函数末尾一定要有分号吗? 或许没有也行吧。
0 请登录后投票
   发表时间:2011-03-07  
myter7 写道
写的不错哦。
不过, 有点疑问。
“在使用函数表达式时,没有必要使用函数名–通过变量sum即可以引用函数,另外,还要注意函数末尾有一个分号”
这句话是什么意思? 不是很理解。 函数末尾一定要有分号吗? 或许没有也行吧。

就是上面第二种声明方法,类似变量的声明 var xxx = function() {}; 来声明一个函数,调用的时候用变量名调用就可以了,然后因为是变量方法声明,声明完后就要加上分号,即大括号后面
0 请登录后投票
   发表时间:2011-03-07  
因为是赋值表达式,所以语句结束要加分号。
0 请登录后投票
   发表时间: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提供的一种语法糖, 即通过字面量的方式来创建函数。
所以说, 他最后还是得转换为原始的对象创建方式。

这是我的理解。
0 请登录后投票
   发表时间:2011-03-08   最后修改:2011-03-08
我猜你的目的是求两个数的和,但是js中"+"的默认是字符串加,所以会出现以下情况:

var a = 1;
var b = 2;
var c = sum(a,b);
// c = 12;
0 请登录后投票
   发表时间: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)); //其中一个参数为字符串,他就会将第二个参数当作字符串然后连接起来

0 请登录后投票
   发表时间:2011-03-09  
引用

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

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




我理解有误,误导了大家,还请见谅!
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics