自定义函数里的形参是不需要var来声明的吗?

来源:3-31 编程练习

不会飞的萌物

2018-11-28 23:04:14

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>首字母变大写</title>
</head>
<body>
<script>
function initialchange(str){
    var arr=str.split(" ");
    var s,newstr="";
    for(var i=0;i<arr.length;i++){
        s=arr[i];
        newstr+=s.charAt(0).toUpperCase()+s.substr(1)+" ";     
       }
    document.write(newstr);
    }
initialchange("all time is no time when it is past.");
document.write("<br/>");
initialchange("i remember. i tell you a story. the story makes you happy. you are beautiful. i love you.");
</script>
</body>
</html>

如题,比如function initialchange(str)str没有用var来声明,那为什么其他变量就必须要声明呢?

写回答

1回答

好帮手慕夭夭

2018-11-29

你好同学 ,这个是js本身的语法特点 ,  函数括号中定义的是参数 ,参数只是和变量类似 ,但不是变量 . 参数是不需要使用var声明的 . 

其实变量也可以不用var声明 ,如下变量list不使用var声明 , 需要注意的是 ,如果在函数中不使用var声明变量 , 那么它就是一个全局变量 . 可以在函数外部访问到 .所以为了规范和避免函数中的变量造成全局污染 , 定义时需要加上var :

http://img.mukewang.com/climg/5bff5a9200010e5705800149.jpg

另外 , 建议同学代码中传递的实参可以先定义一个变量接收 ,这样便于管理 . 如下:

http://img.mukewang.com/climg/5bff5b2e0001fc8d07040106.jpg

祝学习愉快 ,望采纳 .

0

0 学习 · 36712 问题

查看课程