zoukankan      html  css  js  c++  java
  • JavaScript学习笔记——语法基础1.4

    一、函数

    函数对于任何一种编程语言都是非常核心的概念,它的便利之处在于,我们可以通过函数名的随时调用( 如: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都属于内建对象,除此之外,还有许多内建对象供我们使用。

  • 相关阅读:
    LCPhash求解
    BSGS
    洛谷—— P1849 [USACO12MAR]拖拉机Tractor
    BZOJ——2101: [Usaco2010 Dec]Treasure Chest 藏宝箱
    洛谷—— P1561 [USACO12JAN]爬山Mountain Climbing
    BZOJ——1601: [Usaco2008 Oct]灌水
    洛谷—— P1342 请柬
    [SDOI2009]Elaxia的路线 SPFA+Topo
    1737 配对
    51Nod 1378 夹克老爷的愤怒
  • 原文地址:https://www.cnblogs.com/yushengxiao/p/4715374.html
Copyright © 2011-2022 走看看