javascript|游戏开发之旅-JavaScript函数详解

本节是第四讲的第十小节 , 上一节我们为大家介绍了循环语句 , 本节将为大家介绍JavaScript函数的基本概念 。
函数(Funciton)
在JavaScript中另一个基本概念是函数 它允许你在一个代码块中存储一段用于处理单任务的代码 , 然后在任何你需要的时候用一个简短的命令来调用 , 而不是把相同的代码写很多次 。
浏览器内置函数
JavaScript有许多内置的函数 , 可以让您做很多有用的事情 , 而无需自己编写所有的代码 。 事实上 许多你调用(运行或者执行的专业词语)浏览器内置函数时调用的代码并不是使用JavaScript来编写——大多数调用浏览器后台的函数的代码 。
函数与方法
严格说来 , 内置浏览器函数并不是函数——它们是方法 。 这听起来有点可怕和令人困惑 , 但不要担心 ——函数和方法在很大程度上是可互换的 , 至少在我们的学习阶段是这样的 。
二者区别在于方法是在对象内定义的函数 。 浏览器内置函数(方法)和变量(称为属性)存储在结构化对象内 , 以使代码更加高效 , 易于处理 。
自定义函数
function function-name([arguments以上是函数体的结构 , 下面是一个简单的函数示例 ,
) {
// code to run
function myFunction() {调用函数
alert('hello');
通过将函数名包含在代码的某个地方 , 后跟圆括号来完成的 。 例如:
function myFunction() {匿名函数(Anonymous function)
alert('hello');
myFunction();// calls the function once
也可以创建一个没有名称的函数这个函数叫做匿名函数 — 它没有函数名! 它也不会自己做任何事情 。你通常使用匿名函数以及事件处理程序 。例如 , 如果单击相关按钮 , 以下操作将在函数内运行代码:
var myButton = document.querySelector('button');你还可以将匿名函数分配为变量的值 , 例如:var myGreeting = function() { alert('hello'); 。 可以使用以下方式调用此函数:myGreeting();但这只会令人费解 , 所以不要这样做!创建方法时 , 最好坚持下列形式:function myGreeting(){alert('hello');您将主要使用匿名函数来运行负载的代码以响应事件触发(如点击按钮) - 使用事件处理程序 。 注意:匿名函数也称为函数表达式 。 函数表达式与函数声明有一些区别 。 函数声明会进行声明提升(declaration hoisting) , 而函数表达式不会 。 这里的声明提升是指函数的声明可以放在代码中任何位置 , 实际调用函数的时候都会把函数声明放在代码最前面 , 这跟变量或表达式有明显区别 , 变量如果不事先声明的话 , 就会报undefined错误 。
myButton.onclick = function() {
alert('hello');
函数参数(Function parameters)
一些函数需要在调用它们时指定参数 ——这些参数值需要放在函数括号内 , 才能正确地完成其工作 。
Note: 参数有时称为参数(arguments) , 属性(properties)或甚至属性(attributes)
Note:当您需要指定多个参数时 , 它们以逗号分隔 。
Note:有时参数不是必须的 —— 您不必指定它们 。 如果没有 , 该功能一般会采用某种默认行为 。 例如:数组 join()函数的参数是可选的
函数作用域(scope)和冲突
当你创建一个函数时 , 函数内定义的变量和其他东西都在它们自己的单独的范围内 意味着它们被锁在自己独立的隔间中 不能被函数外的代码访问 。 所有函数的最外层被称为全局作用域 。在全局作用域内定义的值可以在任意地方访问 。
JavaScript由于各种原因而建立 , 但主要是由于安全性和组织性 。 有时您不希望变量可以在代码中的任何地方访问 - 您从其他地方调用的外部脚本可能会开始搞乱您的代码并导致问题 , 因为它们恰好与代码的其他部分使用了相同的变量名称 , 造成冲突 。
<!-- Excerpt from my HTML -->将代码锁定在函数中的部分避免了这样的问题 , 并被认为是最佳实践 。
<script src=https://mparticle.uc.cn/"first.js\"></script>
<script src=https://mparticle.uc.cn/"second.js\"></script>
<script>
greeting();
</script>
// first.js
var name = 'Chris';
function greeting() {
alert('Hello ' + name + ': welcome to our company.');
// second.js
var name = 'Zaptec';
function greeting() {
alert('Our company is called ' + name + '.');
这有点像一个动物园 。 狮子 , 斑马 , 老虎和企鹅都保留在自己的园子中 , 只能拿到到它们园子中的东西 —— 与其函数作用域相同 。 如果他们能进入其他园子 , 就会出现问题 。 不同的动物会在不熟悉的栖息地内感到真的不舒服 - 一只狮子或老虎会在企鹅的水多的 , 冰冷的的领域中感到可怕 。 最糟糕的是 , 狮子和老虎可能会尝试吃企鹅!
动物园管理员就像全局作用域 - 他或她有钥匙访问每个园子 , 重新投喂食物 , 照顾生病的动物等 。
【javascript|游戏开发之旅-JavaScript函数详解】函数内部的函数
请记住 , 您可以从任何地方调用函数 , 甚至可以在另一个函数中调用函数 。
function myBigFunction() {要确保函数调取的数值处在有效的作用域内 。 上面的例子中会产生一个错误提示 , ReferenceError:myValue is not define , 因为尽管myValue变量与函数调用指令处在同一个作用域中 但它却没有在函数内被定义 —— 实际代码在调用函数时就开始运行了 。 以下是正确代码:
var myValue;
subFunction1();
subFunction2();
function subFunction1() {
console.log(myValue);
function subFunction2() {
console.log(myValue);
function myBigFunction() {函数返回值(return values)
var myValue = https://mparticle.uc.cn/api/1;
subFunction1(myValue);
subFunction2(myValue);
function subFunction1(value) {
console.log(value);
function subFunction2(value) {
console.log(value);
返回值意如其名 , 是指函数执行完毕后返回的值 。 通常 , 返回值是用在函数在计算某种中间步骤 。 你想得到最终结果 , 其中包含一些值 。 那些值需要通过一个函数计算得到 , 然后返回结果可用于计算的下一个阶段 。
一些函数没有返回值就像(返回值在这种情况下被列出为空值 void 或未定义值 undefined ) 。
要从自定义函数返回值 , 需要使用return 关键字 。 以下函数是产生一个0至当前数字之间的一个随机数:
function randomNumber(number) {以上内容部分摘自视频课程04网页游戏编程JavaScript-10函数详解 , 更多示例请参见网站示例 。 跟着张员外讲编程 , 学习更轻松 , 不花钱还能学习真本领 。
var result = Math.floor(Math.random()*number);
return result;
推荐阅读
- 传《GTA5》将登陆谷歌云游戏平台Stadia
- IGN发布《致命躯壳》16分钟游戏演示 魂味儿满满
- 苹果|苹果将于8月28日终止Epic Games的开发者账号
- 3DM游戏网|主角找脸大冒险《红脖子艾德》9月10日发售PC版
- 休闲游戏|中国女性手游玩家数已超男性!你还以为女玩家就只玩乙女游戏吗?
- 娱乐全搜索|当明星变成游戏人物,罗云熙从英气变柔美,王一博最不像本人
- 苹果公司将于8月28日终止Epic Games的开发者帐户
- 【PW早报】苹果公司将于8月28日终止Epic Games的开发者帐户
- 3DM游戏网|《糖豆人:终极淘汰赛》水涨爬高地图过关技巧
- ■多位业主拆毁小区绿化建庭院 开发商称权属正在界定中
