将函数参数定义为局部变量

Leg*_*tin 0 javascript

有时我会看到两种不同的方法来定义函数参数的默认值.

第一个是重新定义参数值,如:

var callName1 = function( name ) {
 name = name || 'John';
 console.log( 'Hello, ' + name );
};
Run Code Online (Sandbox Code Playgroud)

第二个是定义具有相同名称的局部变量:

var callName2 = function( name ) {
 var name = name || 'John';
 console.log( 'Hello, ' + name );
}
Run Code Online (Sandbox Code Playgroud)

这两种方法都是一样的.
所以,我有两个问题:
1)以第二种方式定义具有相同名称的局部变量有什么意义?
2)哪种方式更正确?

Que*_*tin 6

它们之间没有区别.var已经是函数本地变量的语句无效.