Js的函数及作用域问题
2016-08-27 17:42
127 查看
<input type="button" id="btn" value="a" onclick="sayHi()"/>
<input
type="button"
id="btn"
value="a"/>
<scripttype="text/javascript">
函数的基本格式
function 函数名(参数列表){
函数体
returu 返回值;
}
函数的第一种类型:无参数无返回值
当函数无返回值的时候,return可以不写
function textOne(){
alert("我是一个函数");
}
函数的调用
textOne();
创建一个函数,函数名是sayHi,功能是打印三遍“我要减肥”。
for(var i=0;i<3;i++){
function sayHi(){
console.log("我要减肥");
}
sayHi();
}
function sayHi(){
for(var i=0;i<3;i++){
console.log("我要减肥");
}
}
sayHi();
var oBtn=document.getElementById("btn");
将一个已经声明好的函数绑定给一个按钮的事件,是不需要加括号的,只写函数名就好了。
oBtn.onclick= sayHi;
函数的第二种类型:有参数无返回值
function textTwo(a,b,c){
alert(a+b+c);
}
textTwo(1,2,3);
编写函数,应用for循环,打印n遍“我要减肥”,n的值可以随意改变。
function textTwo(n){
for(var i=0;i<n;i++){
console.log("我要减肥");
}
}
textTwo(100);
实参,形参。
实参--形参,是值拷贝的过程。
形参
function hh(a){
a++;
alert(a);
}
var num = 10;
hh(num);//实参
alert(num);
函数第三种类型:无参数有返回值
function textThree(){
return 100;
alert("aaaa");
}
var result = textThree();
alert(result);
1.return的作用是将函数的结果返回到调用函数的地方
2.return是跳出函数
3.return后面的代码不会被执行
函数的第四种:有参数有返回值类型。(求两个数的和)
function isSum(a,b){
var result = a+b;
return result;
}
var c = isSum(5,6);
alert(c);
题:编写函数,计算1-n的和,并将计算结果返回,n的值由参数传入
function fd(n){
var sum=0;
for(var i=1;i<=n;i++){
sum+=i;
}
return sum;
}
var result = fd(100);
alert(result);
编写函数,求两个数的最大值,并且返回最大值。
function
aa(a,b){
return
a>b?a:b;
}
var result = aa(45,200);
alert(result);
function dd(a,b,c){
var max = a>b?a:b;
max = max>c?max:c;
return max;
}
var result = dd(15,26,85);
alert(result);
function
aaa(a,b,c){
var
max =
aa(a,b);
max
= aa(max,c);
return
max;
}
var result = aaa(45,26,51);
alert(result);
function
aaaa(a,b,c,d){
var
max =
aaa(a,b,c);
max
= aa(max,d);
return
max;
}
var
result =
aaaa(12,23,56,9);
alert(result);
匿名函数:
<input
type="button"
id="btn"
value="按钮"
/>
<script
type="text/javascript">
var oBtn = document.getElementById("btn");
oBtn.onclick = function() {
}
var
aaa
= function() {
alert("111111");
}
aaa();
</script>
作用域:
<script
type="text/javascript">
//里面的函数不能供外面使用,外面的函数,里面可以肆意调用
var num = 20;
function textOne(){
alert(num);
}
textOne();
var oBtn = document.getElementById("btn");
var compare = true;
oBtn.onclick = function(){
if (compare==true) {
var num = 10;
} else{
alert(num);
}
compare = !compare;
}
for(var
i=0;i<3;i++){
var
num =
20;
}
alert(num);
switch:
//输入一个函数,传入两个整数和一个计算符号(+-*/)
//然后返回计算结果。
function
textOne(a,o,b){
if
(o ==
"+") {
return
a+b;
}else if
(o
== "-") {
return
a-b;
}else if
(o
== "*") {
return
a*b;
}else if
(o
== "/") {
if
(b==0) {
alert("SB,b不能为0");
}
else{
return
a/b;
}
}else{
alert("符号错误");
}
}
var result = textOne(1,"/",8);
alert(result);
switch
var a = 10;
var b = 5;
switch (a*b){
case a+b:
alert(a+b);
break;
case a/b:
alert(a/b);
break;
case a*b:
alert(a*b);
break;
case a-b:
alert(a-b);
break;
default:
alert("lsp,没有这个值");
break;
}
function
textTwo(a,o,b){
switch
(o){
case
"+":
return
a+b;
break;
case
"-":
return
a-b;
break;
case
"*":
return
a*b;
break;
case
"/":
return
a/b;
break;
default:
break;
}
}
var
dd =
textTwo(1,"+",9);
alert(dd);
</script>
<input
type="button"
id="btn"
value="a"/>
<scripttype="text/javascript">
函数的基本格式
function 函数名(参数列表){
函数体
returu 返回值;
}
函数的第一种类型:无参数无返回值
当函数无返回值的时候,return可以不写
function textOne(){
alert("我是一个函数");
}
函数的调用
textOne();
创建一个函数,函数名是sayHi,功能是打印三遍“我要减肥”。
for(var i=0;i<3;i++){
function sayHi(){
console.log("我要减肥");
}
sayHi();
}
function sayHi(){
for(var i=0;i<3;i++){
console.log("我要减肥");
}
}
sayHi();
var oBtn=document.getElementById("btn");
将一个已经声明好的函数绑定给一个按钮的事件,是不需要加括号的,只写函数名就好了。
oBtn.onclick= sayHi;
函数的第二种类型:有参数无返回值
function textTwo(a,b,c){
alert(a+b+c);
}
textTwo(1,2,3);
编写函数,应用for循环,打印n遍“我要减肥”,n的值可以随意改变。
function textTwo(n){
for(var i=0;i<n;i++){
console.log("我要减肥");
}
}
textTwo(100);
实参,形参。
实参--形参,是值拷贝的过程。
形参
function hh(a){
a++;
alert(a);
}
var num = 10;
hh(num);//实参
alert(num);
函数第三种类型:无参数有返回值
function textThree(){
return 100;
alert("aaaa");
}
var result = textThree();
alert(result);
1.return的作用是将函数的结果返回到调用函数的地方
2.return是跳出函数
3.return后面的代码不会被执行
函数的第四种:有参数有返回值类型。(求两个数的和)
function isSum(a,b){
var result = a+b;
return result;
}
var c = isSum(5,6);
alert(c);
题:编写函数,计算1-n的和,并将计算结果返回,n的值由参数传入
function fd(n){
var sum=0;
for(var i=1;i<=n;i++){
sum+=i;
}
return sum;
}
var result = fd(100);
alert(result);
编写函数,求两个数的最大值,并且返回最大值。
function
aa(a,b){
return
a>b?a:b;
}
var result = aa(45,200);
alert(result);
function dd(a,b,c){
var max = a>b?a:b;
max = max>c?max:c;
return max;
}
var result = dd(15,26,85);
alert(result);
function
aaa(a,b,c){
var
max =
aa(a,b);
max
= aa(max,c);
return
max;
}
var result = aaa(45,26,51);
alert(result);
function
aaaa(a,b,c,d){
var
max =
aaa(a,b,c);
max
= aa(max,d);
return
max;
}
var
result =
aaaa(12,23,56,9);
alert(result);
匿名函数:
<input
type="button"
id="btn"
value="按钮"
/>
<script
type="text/javascript">
var oBtn = document.getElementById("btn");
oBtn.onclick = function() {
}
var
aaa
= function() {
alert("111111");
}
aaa();
</script>
作用域:
<script
type="text/javascript">
//里面的函数不能供外面使用,外面的函数,里面可以肆意调用
var num = 20;
function textOne(){
alert(num);
}
textOne();
var oBtn = document.getElementById("btn");
var compare = true;
oBtn.onclick = function(){
if (compare==true) {
var num = 10;
} else{
alert(num);
}
compare = !compare;
}
for(var
i=0;i<3;i++){
var
num =
20;
}
alert(num);
switch:
//输入一个函数,传入两个整数和一个计算符号(+-*/)
//然后返回计算结果。
function
textOne(a,o,b){
if
(o ==
"+") {
return
a+b;
}else if
(o
== "-") {
return
a-b;
}else if
(o
== "*") {
return
a*b;
}else if
(o
== "/") {
if
(b==0) {
alert("SB,b不能为0");
}
else{
return
a/b;
}
}else{
alert("符号错误");
}
}
var result = textOne(1,"/",8);
alert(result);
switch
var a = 10;
var b = 5;
switch (a*b){
case a+b:
alert(a+b);
break;
case a/b:
alert(a/b);
break;
case a*b:
alert(a*b);
break;
case a-b:
alert(a-b);
break;
default:
alert("lsp,没有这个值");
break;
}
function
textTwo(a,o,b){
switch
(o){
case
"+":
return
a+b;
break;
case
"-":
return
a-b;
break;
case
"*":
return
a*b;
break;
case
"/":
return
a/b;
break;
default:
break;
}
}
var
dd =
textTwo(1,"+",9);
alert(dd);
</script>
相关文章推荐
- js使用立即调用的函数表达式创建局部作用域问题
- js中三种函数的效率、解析顺序、作用域问题解决
- 奇怪的JS 缺少函数问题
- 解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
- 关于php页面最大执行时间问题(set_time_limit函数在windows下不起作用的解决)
- js循环动态绑定带参数函数遇到的问题及解决方案[转]
- js 函数参数值问题
- [疑问]作了一个用Js遍历树节点的函数,后来发现一个问题!
- JS函数运行在它们被定义的作用域内,而不是它们被执行的作用域内
- Js整理备忘(06)——函数基础(二) 作用域与闭包
- js 函数的执行环境和作用域链的深入解析
- js 函数的参数长度问题
- 解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
- 关于ie中iframe中js程序的作用域问题。
- 先写一个用ajax开发webgis的JS暂停函数问题!
- 程序中和有js函数的网页交互,线程中调用 get_Script 就会错误的解决方法,由于COM的线程安全问题
- 表单域name和js函数重名引起的问题
- 先写一个用ajax开发webgis的JS暂停函数问题!
- js,java实现escape()和unescape()函数解决以给方式提交中中文参数问题
- 被调函数的作用域问题