JavaScript学习笔记——函数
javascript函数的声明和调用
将完成某一特定功能的代码集合起来,可以重复使用的代码块。
一、函数的声明方式(创建)
A.基本语法
function 关键字
function 函数名([参数1],[参数2]....){
函数体
[retrun] //返回值
}
B.字面量定义的形式(匿名函数)
var 变量=function ([参数1],[参数2]....){
函数体
[retrun] //返回值
}
C.以对象的形式来声明
new 关键字。
var 变量=new Function([参数1],[参数2]...,"函数体");
//函数的第一种声明方式
/*
function math () {
var num1=parseFloat(prompt("请输入",""));
var num2=parseFloat(prompt("请输入",""));
var operator=prompt("请输入运算符","");
var result;
switch (operator) {
case "+":
result=num1+num2;
break;
case "-":
result=num1-num2;
break; case "*":
result=num1*num2;
break;
case "/":
result=num1/num2;
break;
default:
result="输入有误"; }
return result;
} alert(math());
alert(math())
*/
//函数的第二种声明方式
/*
var fun=function () {
var num1=parseFloat(prompt("请输入",""));
var num2=parseFloat(prompt("请输入",""));
var operator=prompt("请输入运算符","");
var result;
switch (operator) {
case "+":
result=num1+num2;
break;
case "-":
result=num1-num2;
break; case "*":
result=num1*num2;
break;
case "/":
result=num1/num2;
break;
default:
result="输入有误"; }
return result;
} alert(fun());
*/
//函数的第三种声明方式 // var fun=new Function(alert("后盾网"))
// fun();
二、函数的调用方式:
A.函数名() 、变量名();
B.(function () {alert("后盾网");})();
三、两种声明方式的区别
1.如果两个函数的命名相同,后面的将会覆盖前面的函数。
2.以基本语法声明的函数,会在代码运行的时候,提前加载到内存当中(就是以function开头的格式),以供以后使用,
但是以字面量形式命名的函数,会在执行到的时候,才进行赋值。
3.在不同的<script></script>块中的函数,使用和调用的时候,应该先定义,后执行。
javascript函数的参数和return语句
一、参数(最多是25)
可以动态的改变函数体内对应的变量的类型或值,使同一函数体得到不同的结果。
形参:在定义函数的时候,函数括号中定义的变量叫做形参。
实参:调用函数的时候,在括号中传入的变量或值叫做实参。
1.参数的类型
可以是任何的数据类型
2.参数的个数(最多是25)
A.实参和形参数量相等,一一对应。
B.形参的数量多于实参
************************************************
不会报错,但是多出的参数他的值,会自动赋值为undefined
************************************************
C.实参的数量多于形参
************************************************
不会报错,但是要得到多出的实参的值,要用arguments对象
************************************************
二、Arguments对象
每创建一个函数,该函数就会隐式创建一个arguments对象,他包含有实际传入参数的信息。
1.length 检测实际传入参数的个数
2.callee 对本身的调用
3.访问传入参数的具体的值。([下标])(如arguments[0])
三、函数重载
同一个函数因为参数的类型或数量不同,可以对应多个函数的实现,每种实现对应一个函数体。
四、return 语句
一、停止并且跳出当前的函数
1.在ruturn 语句后面的函数体内所有内容都不会输出。
2.在函数体内可以有多个return语句,但是只会执行一个。(判断语句)
二、给函数返回一个值 return [返回值];
1.返回值可以是任何的数据类型
2.只能返回一个返回值。
3.如果函数没有返回值,那么这个函数的值就会自动的赋值为undefined
javascript 内置顶层函数
名词解释:
1.函数
2.内置: ECMAscript
内置函数:ECMAscript 自带的函数 Number()
宿主函数: BOM DOM alert() prompt() confirm();
//confirm() 弹出一个带有确定和取消按钮的一个对话框,确定返回真,取消返回假。
3.顶层
字符串函数:字符串.函数()
数组函数
顶层对象的函数,可以作用于任何对象。
内置顶层函数
1.escape() 对字符串进行编码
2.unescape() 对编码的字符串进行解码
3.Number() 转换成数值类型
4.String() 转换成字符串类型
5.Boolean() 转换成布尔类型
6.parseInt() 将字符串转换为整型
7.parseFloat() 转换为小数
8.isNaN() 判断一个数能否转换为数值类型。
9.isFinite() 判断一个数是否为有穷的数字。将不是有穷的数字或不能转换为数值类型的数返回假。
10.eval() 将字符串转换成javascript命令执行(必须符合javascript语法规范,否则会出错)。
IE:
eval() 在当前作用域生效
window.eval() 在当前作用域生效
execScript()
FF:
eval() 在当前作用域生效
window.eval() 在全局生效
使代码在作用于上兼容IE
function evals (str) {
if(typeof str!="string"){
return;
}
if(window.execScript){
window.execScript(str);
}else{
window.eval(str);
} }
JavaScript学习笔记——函数的更多相关文章
- JavaScript学习笔记-函数
函数的两种创建方式:函数定义表达式.函数声明语句 编译时,函数声明语句创建的函数会‘被提前’至外部函数的作用域顶部,在该作用域内可以被随意调用: 而函数表达式创建的函数,要调用它必须赋值给一个变量,编 ...
- JavaScript学习笔记-函数实例
函数实例 var p = { a:15, b:'5', f1:function(){ var self = this; console.log(self.a+self.b); f2(); functi ...
- JavaScript:学习笔记(5)——箭头函数=>以及实践
JavaScript:学习笔记(5)——箭头函数=>以及实践 ES6标准新增了一种新的函数:Arrow Function(箭头函数).本文参考的链接如下: MDN箭头函数:https://dev ...
- Java程序猿的JavaScript学习笔记(8——jQuery选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(2——复制和继承财产)
计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...
- Java程序猿的JavaScript学习笔记(3——this/call/apply)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(4——关闭/getter/setter)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- Java程序猿JavaScript学习笔记(14——扩大jQuery UI)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- javascript学习笔记(四) Number 数字类型
数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数 toExponential() 方法 用科学 ...
随机推荐
- Java--剑指offer(7)
31.求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了.AC ...
- Nginx配置文件详细说明
在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. #运行用户user www-data; #启动进程,通常设置成和cpu的数量相等worker_process ...
- FastFDFS_Jave客户端调用(亲测可用)
一.配置文件(fdfs_client.properties) 1 2 3 4 5 6 7 8 9 10 connect_timeout = 30 network_timeout = 60 charse ...
- 【CodeVS 1199】【NOIP 2012】开车旅行
http://codevs.cn/problem/1199/ 主要思想是倍增,对于第一个回答从后往前扫,依次插入平衡树中. 我写的splay,比较繁琐. #include<cmath> # ...
- bzoj1012
Description 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数列中末尾L 个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2. ...
- CODE[VS] 1346 HelloWorld编译器
1346 HelloWorld编译器 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 黄金 Gold 题目描述 Description 请编程判断一个负责打印HelloWo ...
- js-JavaScript高级程序设计学习笔记7
第十一章 DOM扩展 1.对DOM的两个主要的扩展是Selectors API(选择符API)和HTML5. 2.jQuery的核心就是通过CSS选择符查询DOM文档取得元素的引用,从而抛开了getE ...
- MapReduce设置输出分隔符
conf.set("mapred.textoutputformat.ignoreseparator","true"); conf.set("mapre ...
- BZOJ1010 [HNOI2008]玩具装箱toy
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- Android程序设计-圆形图片的实现
在android中,google只提供了对图形的圆形操作,而没有实现对图片的圆形操作,所以我们无法实现上述操作,在此我们将使用框架进行设计(下述框架为as编写): https://github.com ...