【函数的声明及调用】
function 函数名(参数1,参数2,....){
//函数体代码
return返回值;
}

1、函数的调用:
①直接调用:函数名(参数1的值,参数2的值,....)
②事件调用:在HTML标签中,使用事件名="函数名()"
<button onclick="saysth('哈哈哈','yellow')">点击按钮,打印内容</button>


2、函数的命名规则

①函数名必须要符合小驼峰法则!!首字母小写,之后每个单词首字母大写;
②函数名后面的()中,可以有参数,也可以没有参数,分别称为有参参数,和无参参数
③声明函数时的参数列表,称为形参列表,形式参数。(变量的名字)
function saysth(str,color){}
调用函数时的参数列表,称为实参列表,实际参数。(变量的赋值)
saysth("你真帅!!","red")

④函数的形参列表的个数,与实参列表个数。没有实际的关联关系。
函数参数的个数,取决于实参列表。
如果实参列表的个数<形参列表,则未赋值的形参,将为undefined>

⑤函数可以有返回值,使用return返回结果,调用函数时,可以使用一个变量接受函数的返回结果,如果函数没有返回值,则接受的结果为undefined;
function func(){
return "haha";
}
var num=func(); // num="haha"
⑥函数变量的作用域;
在函数中,使用var声明的变量为局部变量,只能在函数内部访问:
不使用var声明的变量,为全局变量,在函数外面也能访问:
函数的形参列表,默认为函数的局部变量,只能在函数内部使用,


⑦函数的声明与函数的调用,没有先后之分,即,可以再声明函数前,调用函数;
func();//声明func之前调用也是可以的。
function func(){}

【匿名函数的声明使用】
1、声明一个匿名函数,直接赋值给某一个事件;
window.onload = function(){}

2、使用匿名函数的表达式,将匿名函数,赋值给一个变量。
声明: var func=function(){}
调用: func();

js代码在执行的顺序问题
js代码在运行时,会分为两大部分,奸诈装载和执行阶段,
检查装载阶段:会线检测代码的语法错误。进行变量,函数的声明。

执行阶段,变量的赋值,函数的调用,都属于执行阶段,

以下代码为例
console.log(num);//undefined
var num = 10;

func1(); //函数可以正常执行
function func1(){}

func2(); //函数不能执行,打印func2是显示为undefined
var func2 = function(){}


检查装载阶段
console.log(num)
function func1(){}
var func2

代码执行阶段
console.log(num);//undefined
var num = 10;
func2();
func2 = function(){}



注意使用匿名函数表达式时,函数的调用语句,必须放在函数声明语句之后!!!(与普通函数的区别)


3、自执行函数
①!function(){}();可以使用多种运算符开头。但一般用!
!function(形参列表){}(实参列表);
②(function(){}())使用小括号将函数及函数后的括号包裹起来
③(function(){}) ()使用小括号将函数包裹起来
三种写法的特点
①第一种结构清晰,不容易混乱,推荐使用。
②第二种写法能够表明匿名函数与调用的()为一个整体,官方推荐使用。
③无法表明函数与之后的()的整体星,不推荐使用。

[函数的内部属性]
1、arguments对象
①英语储存调用函数时的所有实参,当我们调用函数并用实参赋值时,实际上参数列表已经保存到arguments数组中,可以在函数中,使用arguments数组中,可以在函数中,使用arguments[n]的形式调用,n从0开始;
argument数组的个数,取决于实参列表,与形参无关
但是,一旦第n个位置的形参、实参、arguments都存在时,形参将与arguments绑定,同步变化(即在函数中修改形参的值)arguments也会改变,反之,也成立


arguments.callee()是arguments的重要指标,表示arguments所在函数的引用地址,
在函数里面,可以使用arguments.callee();调用函数本身
在函数内部,调用函数本身的写法,叫做递归
递归分为两部分,递与归,以递归调用语句为界限,可以将函数分为上下两部分
递是当函数执行上半部分是,遇到自身的调用语句时,继续进入内层函数,在执行上半部分,知道执行完最内层函数。
归,当最内层函数执行以后,在从最内层函数开始,逐渐执行函数的下半部分,
当最外层函数执行时,遇到自身的调用语句,会进入内层函数执行,二外层函数的后半部分暂不执行,知道最内层函数执行完以后,在逐步向外执行。

js函数基础知识的更多相关文章

  1. css+js+html基础知识总结

    css+js+html基础知识总结 一.CSS相关 1.css的盒子模型:IE盒子模型.标准W3C盒子模型: 2.CSS优先级机制: 选择器的优先权:!important>style(内联样式) ...

  2. 001/Node.js(Mooc)--基础知识

    一.Node.js基础知识 node.js用C++语言编写. 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时 ...

  3. 10分钟学会Python函数基础知识

    看完本文大概需要8分钟,看完后,仔细看下代码,认真回一下,函数基本知识就OK了.最好还是把代码敲一下. 一.函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运 ...

  4. node.js的基础知识

    第一部分知识: .命令行窗口(小黑屏).CMD窗口.终端.shell - 开始菜单 --> 运行 --> CMD --> 回车 - 常用的指令: dir 列出当前目录下的所有文件 c ...

  5. js的基础知识笔记

    目录 一.基本数据类型 二.函数 三.面向对象 一.基本数据类型 1.使用var声明变量.使用;结尾.使用{}表示代码块.使用驼峰式命名 2.变量是弱类型的,即并不严格要求声明变量的类型,一个变量可以 ...

  6. 【JS】基础知识

    引言 在互联网的演化过程中,网页制作是Web1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览为主. 2005年以后,互联网进入了Web2.0时代,各类似桌面软件的Web应用大 ...

  7. 二、js中基础知识

    该篇文章主要是强化一下自己javaScript的基础,让写代码变得更轻松些.基础好的请忽略.    JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解 ...

  8. js函数基础回顾

    回头又跑去看了下尚硅谷的js基础视频 https://www.bilibili.com/video/av22958172/?p=51. 便做了如下笔记: 1.函数也是一个对象 2.函数可以封装一些功能 ...

  9. JS的基础知识

    前言:写前端代码时的各种取值纠结,让我决定我必须要好好学一下js............加油~ $("#tr"+id).remove() 删除某一行,而不用刷新页面 HightCh ...

随机推荐

  1. [原创]在HP DL380 G7服务器上部署基于Ubuntu Server 16.04 和 VirtualBox的云平台

    对于一线开发人员来说,一提到虚拟机平台,往往会让人联想到在价格昂贵的服务器上部署VMware vSphere之类软件来实现. 笔者作为一个资深码农,也是一直梦寐着在自己家中打造一个真正的家庭私有云,秒 ...

  2. servlet请求编码与响应编码问题(编码不一致可能会导致乱码)

    html中的编码 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&g ...

  3. b64_md5加密Java、JavaScript实现

    问题说明 MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串).经过md5后的字符数组中含有 ...

  4. AC Analysis

    1.从Options---sheet properties—circuit—show all调出来节点编号 :

  5. kali系统:局域网arp欺骗, 搞定任意windows计算机

    目的 通过Arp欺骗, 给局域网内的所有用户网页中植入木马, 只要用户运行以后, 就会反弹一个shell到我们计算机 准备 kali系统 metaspolit的使用 Arp欺骗工具:bettercap ...

  6. 23个适合Java开发者的大数据工具和框架

    转自:https://www.yidianzixun.com/article/0Ff4gqZQ?s=9&appid=yidian&ver=3.8.4&utk=6n9c2z37 ...

  7. JavaScript实现隔行换颜色

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  8. Day-6: 函数式编程

    函数式编程就是封装成一个个函数,一次调用来完成复杂任务. 函数式编程的一个特点是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数! 高阶函数 高阶函数就是将函数的变量名作为参数传入,内部再对 ...

  9. 关于C++中计时的方法

    在C++的库函数中,我们可以使用clock()来计算程序的运行时间,主要使用一下三个函数类型及函数: 1.clock_t:数据类型,其实,当你打开time.h就知道了,就是个long型,用来记录一段时 ...

  10. 软工+C(2017第5期) 工具和结构化

    // 上一篇:Alpha/Beta换人 // 下一篇:最近发展区/脚手架 工具/轮子 软件工程/计算机相关专业的一个特点是会使用到众多的工具,工具的使用是从程序猿进化到程序员的一个关键要素.软件工程师 ...