js基础知识之_函数

javascript函数

函数概念

  将完成某一特定功能的代码集合起来,可以重复使用

  白话函数理解-函数就是一个工厂,帮大家实现某一个功能

  优点

  -时程序更加简洁

  -逻辑更有条例

  -调用方便

  -维护更加容易

函数的声明方式(创建)

  1.基本语法

  function 关键字

  function 函数名(【参数1】,【参数2】....){

    函数体

    【return】//返回值

  }

  2.字面量定义的形式(匿名函数)

  var 变量=function()(【参数1】,【参数2】....){

    函数体

    【return】//返回值

  }

  例子:三角调用

  //函数
            //基本语法-声明函数
            function sanjiao() {
                for ( var i = 0; i < 5; i++ ) {
                    for ( var j = 0; j < i; j++ ) {
                        document.write( ‘*‘ );
                    }
                    document.write( ‘<br/>‘ );
                }
            }

            //调用函数
            sanjiao();
            sanjiao();
            sanjiao();

  用字面量的形式声明函数

 //字面量的形式声明函数----使用比较多
            var sanjiao = function () {
                for ( var i = 0; i < 5; i++ ) {
                    for ( var j = 0; j < i; j++ ) {
                        document.write( ‘*‘ );
                    }
                    document.write( ‘<br/>‘ );
                }
            }

            //调用函数
            sanjiao();
            sanjiao();

  

函数的调用方式

1.通过括号来调用

  -函数名();

2通过触发事件来调用

  -对象.事件=function(){}

那么如何做函数呢,就是

1.先弄明白你要干什么。

2.搭建函数的框架

3.分析需要的原料(参数)

4.安排处理流程

//带参数的函数
            //创建处理平方的函数
            function pingfang(num) {
                var re = num * num;
                alert(re);
            }

            //调用平方的函数
            pingfang( 8 );

//带两个参数的函数
//计算乘积
      function chengji( num1, num2 ) {
      var re = num1 * num2;
      alert( re );
      }

      chengji( 4, 5 );
      chengji( 55, 8 );

 形参:就是占位置的没有实际意义的参数

 实参:调用时写的实际参数。

return 表示函数的结束

如果函数没有return,则返回值是Undefined

变量的作用域

作用域:指的就是一段代码的作用范围

全局变量:

  在页面中任何地方都能够访问得到的变量,拥有全局性

  1,函数的最外层定义的变量

  2,没有定义直接赋值的变量,拥有全局属性

局部变量

  只能在固定的代码片段(函数片段中访问到)

  1,函数内部定义的变量,就是局部变量(在函数内部用var声明的变量叫做局部变量,只有在内部能被操作)

  2,参数也是局部变量

  可以提高程序的逻辑性和安全性,减少名称的冲突

当一个函数当做另一个函数的参数,那么当参数的函数就叫做回调函数

 //function pingfang( num ) {
            //    var re = num * num;
            //    alert( re );
            //}

            //function fn() {
            //    return 5;
            //}
            //pingfang(fn());

  

javascript内置顶层函数

内置:ECMAscript自带的函数,把用的一些函数封装起来,我们不需要知道怎么实现的,只需要知道怎么调用

顶层:在页面当中的任何地方都可以调用,就相当于全局变量的作用,在什么地方都能调用这个函数

三个常见的内置顶层函数

1.Number() 转换成数值类型  

  var re = Number(‘123‘);
  alert( re );

2.parseInt() 将字符串转换成整型

  var re = parseInt( ‘123.456‘ );
  alert( re );

  //可以转Number转不了的数据
  var re = parseInt( ‘100px‘ );
  alert( re );

4.isNaN()    判断一个数是否不能转为数值类型(判断一个数据是不是非数字(不能转成数字))

javascript数组

  数组是一个可以存储一组或是一系列相关数据

  为什么使用数组

    1.解决大量相关数据的存储和使用为题

    2.便于程序的开发和维护

声明创建数组

  隐形声明的方式

  赋值

    直接赋值 var a=[1,2,3];

    声明后赋值 var a=[];  a[0]=1; a[1]=2;

  通过对象来声明

    var a=new Array(元素1,元素2,元素3...)

    声明后赋值

    var a=new Array();a[0]=1; a[1]=2;

但是讲的对象,就是属性和方法的集合

那么里面的属性其实就是变量,方法就是函数

隐形声明的方式

 var shuiguo = [‘苹果‘,‘香蕉‘,‘鸭梨‘,‘火龙果‘,‘西瓜‘,‘葡萄‘,‘蛇皮果‘];
            //alert( shuiguo.length );
            alert(shuiguo[2]);

通过构造函数创建数组 数组的遍历和特点 

一般数组。length-1就是数组的最大的下标

构造函数就是一套规则,通过构造函数创建的具体的东西就是对象

  

  //构造函数创建数组
  var shuiguo = new Array( ‘苹果‘, ‘香蕉‘, ‘鸭梨‘, ‘火龙果‘, ‘西瓜‘, ‘葡萄‘, ‘蛇皮果‘ );
  document.write(shuiguo[4]);

  

  //数组追加
  var shuiguo = new Array( ‘苹果‘, ‘香蕉‘, ‘鸭梨‘, ‘火龙果‘, ‘西瓜‘, ‘葡萄‘, ‘蛇皮果‘ );
  shuiguo[9] = ‘榴莲‘;
  document.write(shuiguo);

  

            //在数组最后追加元素
            var shuiguo = new Array( ‘苹果‘, ‘香蕉‘, ‘鸭梨‘, ‘火龙果‘, ‘西瓜‘, ‘葡萄‘, ‘蛇皮果‘ );
            shuiguo[shuiguo.length] = ‘菠萝‘;
            shuiguo[shuiguo.length] = ‘芒果‘;
            document.write(shuiguo);

  

  图解,空位会用Undefined

数组的遍历

  var shuiguo = new Array( ‘苹果‘, ‘香蕉‘, ‘鸭梨‘, ‘火龙果‘, ‘西瓜‘, ‘葡萄‘, ‘蛇皮果‘ );
  for ( var i = 0; i < shuiguo.length; i++ ) {
       document.write(shuiguo[i]+‘很好吃<br/>‘)
  }

  

时间: 2024-12-22 19:35:55

js基础知识之_函数的相关文章

js基础知识总结:函数

函数内部的属性: arguments 和this是函数内部的两个特殊对象 arguments: function recursion(num){ if(num<=1){ return 1; }else{ return num*recursion(num-1); } } 另一种写法: function recursion(num){ if(num<=1){ return 1; }else{ return num*arguments.callee(num-1); } } arguments:表示当

JS基础知识回顾:引用类型(一)

在ECMAScript中引用类型是一种数据结构,用于将数据和功能组织在一起,而对象时引用类型的一个实例. 尽管ECMAScript从技术上讲是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和接口等基本结构,所以虽然说引用类型与类看起来想死,但他们并不是相同的概念. 不过引用类型有的时候也可以被称为对象定义,因为他们描述的是一类对象所具有的属性和方法. 新对象是使用new操作符后跟一个构造函数来实现的,构造函数本身就是一个函数,只不过该函数时处于创建新对象的目的而定义的. ECMASc

JS 基础知识4 运算符

JS的运算符一般含有: 1 算术运算符 2 相等运算符 3 关系运算符 4 字符串运算符 5逻辑运算符 6位运算符 7 赋值运算符 首先看算术运算符,它一般有(+,-,*,/,%,++,--) 这里,%模运算符,其实也就是取余的意思,比如,5%2=1: 这里要特别说一下++,与--(这里只列了++,--是一样的道理). 1 var i = 1; 2 var j = ++i; //实际相当于 i+=1;j=i; 3 alert(i + " " + j); 4 5 var m = 1; 6

JS 基础知识2 传值和传址

要知道传址跟传址,首先我们先了解下数据值的操作. 1复制:可以把它赋值给一个新的变量 2传递:可以将他传递给一个函数或者方法 3比较:可以与另外一个值比较,判断是否相等 简要介绍下传值: 当一个数据是通过值被操作的,那么关系到的是数据的值,在赋值的过程中,是对实际值进行了COPY,储存在一个变量或者属性或数组中,copy的值与原数据是相互独立的. 当数据通过值传递给一个函数时,数据的一份传递给这个函数,如果函数体修改了这个值,只在函数体受影响,函数外的原数据不受影响. 当一个数据通过值和另外一个

JS 基础知识3 变量

变量和数值相关,它储存了那个值,有了变量就可以储存操作数据了. js与其他语言不同,它是非类型的.就是变量可以存放任何类型的值,而其他语言需要存放特定类型的值. var i=5; i="fdsfad"; 这是合法的. 变量的声明一般是由VAR 关键字声明的 var i,sum; //一次声明两个变量,   若变量没有给定初始值,则值为“undefined” 在JS中多次声明同一个变量,是不会出错的,仅仅是给变量赋值的性质. 还有一种,不用var关键字声明变量,则JS会隐式的声明该变量,

JS基础知识回顾:ECMAScript的语法(一)

任何语言的核心都必然会描述这门语言最基本的工作原理,而描述的内容通常都要涉及这门语言的语法.操作符.数据类型.内置功能等用于构建复杂解决方案的基本概念. ECMAScript中的一切变量.函数名.操作符都区分大小写. ECMAScript的标识符要符合下列规则:第一个字符必须是字母.下划线或美元符号:其他字符可以是字母.下划线.美元符号或数字. 标识符中的字母也可以包含扩展的ASCII或Unicode字母字符,但是并不推荐. 按照惯例,ECMAScript标识符采用驼峰大小写的格式来书写,尽管没

JS基础知识回顾:引用类型(四)

每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法. 由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定. 函数的声明有以下三种形式: function sum(num1,num2){return num1+num2;}//利用函数声明语法定义 var sum=function(num1,num2){return num1+num2;}//利用函数表达式定义 var sum=new Function("num1","nu

JS基础知识回顾:引用类型(二)

ECMAScript中的Date类型是在早期Java中的java.util.Date类基础上构建的. 因此,Date类型使用自UTC(Coordinated Universal Time,国际协调时间)1970年1月1日午夜零点开始经过的毫秒数来保存日期. 在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日或之后的285616年. 要创建一个日期对象,使用new操作符和Date构造函数即可:var now=new Date(); 在调用Date构造函数而不传递参数

JS基础知识回顾:变量、作用域和内存问题

ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值. 基本类型值指的是简单的数据段,而引用类型值指的是那些可能由多个值构成的对象. 引用类型的值是保存在内存中的对象,与其他语言不同,JavaScript不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间. 在操作对象时,实际上是在操作对象的引用而不是实际的对象. 在很多语言中,字符串以对象的形式来表示,因此被认为是引用类型的,ECMAScript放弃了这一传统. 定义基本类型值和引用类型值的方式是类似的:创建