中易网

怎么js理解函数实例

答案:2  悬赏:50  
解决时间 2021-01-24 17:04
怎么js理解函数实例
最佳答案
js的函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。如下为其按键驱动时间的一个简单示例










1、JavaScript 函数语法
函数就是包裹在花括号中的代码块,前面使用了关键词 function:
function functionname()
{
这里是要执行的代码
}

当调用该函数时,会执行函数内的代码。
可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。
提示:JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。

2、调用带参数的函数
在调用函数时,您可以向其传递值,这些值被称为参数。
这些参数可以在函数中使用。
您可以发送任意多的参数,由逗号 (,) 分隔:
myFunction(argument1,argument2)
当您声明函数时,请把参数作为变量来声明:
function myFunction(var1,var2)
{
这里是要执行的代码
}

变量和参数必须以一致的顺序出现。第一个变量就是第一个被传递的参数的给定的值,以此类推。
实例



上面的函数会当按钮被点击时提示 "Welcome Bill Gates, the CEO"。
函数很灵活,您可以使用不同的参数来调用该函数,这样就会给出不同的消息:
实例


根据您点击的不同的按钮,上面的例子会提示 "Welcome Harry Potter, the Wizard" 或 "Welcome Bob, the Builder"。

3、带有返回值的函数
有时,我们会希望函数将值返回调用它的地方。
通过使用 return 语句就可以实现。
在使用 return 语句时,函数会停止执行,并返回指定的值。
语法
function myFunction()
{
var x=5;
return x;
}

上面的函数会返回值 5。
注释:整个 JavaScript 并不会停止执行,仅仅是函数。JavaScript 将继续执行代码,从调用函数的地方。
函数调用将被返回值取代:
var myVar=myFunction();
myVar 变量的值是 5,也就是函数 "myFunction()" 所返回的值。
即使不把它保存为变量,您也可以使用返回值:
document.getElementById("demo").innerHTML=myFunction();
"demo" 元素的 innerHTML 将成为 5,也就是函数 "myFunction()" 所返回的值。
您可以使返回值基于传递到函数中的参数:
实例
计算两个数字的乘积,并返回结果:
function myFunction(a,b)
{
return a*b;
}
document.getElementById("demo").innerHTML=myFunction(4,3);

"demo" 元素的 innerHTML 将是:
12

在您仅仅希望退出函数时 ,也可使用 return 语句。返回值是可选的:
function myFunction(a,b)
{
if (a>b)
{
return;
}
x=a+b
}

如果 a 大于 b,则上面的代码将退出函数,并不会计算 a 和 b 的总和。

6、局部 JavaScript 变量
在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。
您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。
只要函数运行完毕,本地变量就会被删除。

7、全局 JavaScript 变量
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。

8、JavaScript 变量的生存期
JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。

9、向未声明的 JavaScript 变量来分配值
如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。
这条语句:
carname="Volvo";
将声明一个全局变量 carname,即使它在函数内执行。
全部回答
首先我们了解一下对于引用类型变量虚拟机的处理方式:
对于引用类型的变量,虚拟机为其分配内存空间,但在内存空间中存放的并不是变量所引用的对象,而是对象在堆区存放的地址,所以引用变量只是指向被引用那个的对象,而不是存储了被引用的对象,因而两个引用变量之间的赋值,实际上九是将一个引用变量存储的地址复制给另一个引用变量,从而使连个变量指向同一个对象。
好的,我们首先分析第二个例子,为什么其返回的结果为true
function b(){} 定义了一个函数(也可以理解为一个引用变量);虚拟机为其分配内存空间,内存空间存储地址加入为“a”;
function a(){return b} 这个就想引用变量b把地址复制给了a,让a、b指向的内存地址一样;
a1=a();
a2=a();
两个赋值,结果自然为true
再看第一个
function a(){return function b(){}}
a1=a();
a2=a();
当赋值的同时 return function b(){} 返回的数据类型一样,但虚拟机为其分配连个地址,指向不同,所以结果为false;
你可以用typeof()方法测试一下a1、a2以及b function b()的数据类型 你会发现他们的类型都是function,a1/a2的值都是function b(){}但唯一的区别就是内存地址不一样,引用类型指向不一样,结果就不一样。
这些概念的东西,有时候也挺烦人的,但也要慢慢学习,消化这些实际存储模式。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
小腿共振吸脂减肥有哪些风险?
三轮车前大灯怎么改为疝气灯
请问我怀孕50天,今天查的HCG值60,孕酮5...
人们为什么会把天上的圆月与亲人的团聚联系在
现代建筑风格特点是怎样的?效果好不好的?
剑侠情缘手游丐帮华山论剑阵容怎么搭配
女人胸部以上突然胀痛气闷
角膜曲率如何换算基弧
焦虑症...
exFATu盘无法格式化
我今年40得过骨结核留下脊柱弯曲怎么矫正
翻译一下 Passion is sweet Love makes weak
办公楼用什么地毯好 办公室地毯选择
亚运村清洗地毯和保养地毯呢
高温天气防中暑的四连漫画
推荐资讯
美的恒温热水器温度调为35度,可是出来的水却
为什么QQ可以在手机上登陆在电脑上却不可以登
烟台芝罘区一共有几所高中?
什么样的墙不能砸
新疆哪里好卖实木家具套房?如何挑选实木家具
腰椎骨疼怎么办
平平和一峰和好了?
中国的行政区划分为几级?
早餐吃豆浆油条好吗
韩式三点双眼皮疤痕要什么时候才不明显?
如何查询我想订购的这款产品的飞机往返时间..
求个html的js代码
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?