JavaScript学习笔记——语法基础1.4

时间:2022-08-26 16:47:23

一、函数

函数对于任何一种编程语言都是非常核心的概念,它的便利之处在于,我们可以通过函数名的随时调用( 如:functionName() ),就可以执行花括号中的语句,这样就可以实现你的想法。换一种说法,函数就像是哈利波特的通关密语,哈利波特只需要念一句正确的通关密语,就可以打开密室的大门,密语就像是函数,哈利波特在念它的时候就像是在调用这个函数,这个函数的作用同时也是哈利波特的目的就是打开密室的大门。

1、定义函数的语法:

function functionName (arguments){
    statements;
}

其中function是关键字,functionsName是函数名,命名方式建议遵循“驼峰式”,圆括号中的arguments是参数,注意它是复数,参数可能不只一个,花括号中的statements是执行语句,注意它也是复数,执行语句可能不只有一句。例如,下面这个函数可以用来计算两个数的和。

function numTotal (num1,num2){
    var total = num1 + num2;
    document.write(total);
}
numTotal(5,15); // 20

 2、函数中的参数

JavaScript中函数的参数相对其他编程语言较为不同,若在函数中有一个参数,可以传递一个、三个甚至不传递参数值;你也可以不先设定参数,却可以进行隐式传递。即使如此,但我不认为这是你可以不正确使用参数的理由。

还有一点需要注意的是,为了优化函数甚至整个程序代码,我们应当尽量减少函数中的参数个数,时间久了,你会发现,这是一个好的思维方式。

3、变量的作用域

通过var关键字定义的变量是局部变量,反之,没有用var关键字而直接定义的变量为全局变量。全局变量将影响全局的结果,所以在使用全局变量的时候一定要慎重。

1 function myFunction(a,b){
2     total = a * b;
3     return total;
4 }
5 var total = 500;
6 var num = myFunction(10,10);
7 document.write(total);  // 100

第二行中变量total虽然是在函数体内定义的,但是它是全局变量,第五行中的total是局部变量,由于位置的特殊,第五行的值刚赋给局部变量total,第六行就立刻传参给函数myFunctions(),从而获取了影响全局total的值。如果第二行的变量total改成局部变量,则最终结果为500,因为函数体返回的total的值本身不会跳出函数体,第六行是将total的值赋值给变量num而不是total。 

二、对象

1、遍历对象的属性值

对象是一种特殊的数据类型,包含在对象中的数据,可以通过对象的属性和方法来访问。

var person = new Object();
person.name = '筱雨生';
person.age = 15;
person.height = 175;
person.skinColor = 'yellow';
for ( var i in person){
    document.write(person[i] + '<br/>');
}
//通过for-in语句遍历person对象的属性值
//i包含了person所有的属性,person[0]就是person.name

function who(){
for ( var i in person){
    document.write(person[i] + '<br/>');
    }
}
who();//通过函数who()来实现遍历person对象的属性值

2、内建对象

所谓的内建对象是指JavaScript内部创建好的对象,针对这些对象,JavaScript也创建好了相应的方法和属性,在你有需求的时候,可以直接调用。

var num = new Array();
document.write(num.length); //0
document.write('<br/>'); //换行
var newNum = 3.1415926;
document.write(Math.round(newNum)); // 3

上面这段代码中,Array、document、Math都属于内建对象,除此之外,还有许多内建对象供我们使用。