【ModPE】太守的ModPE教程Ⅱ(入门/微进阶)

字符串也可以运算。

var a="interesting";
var b="exciting";
print(a+b);

这样输出的是:“interestingexciting”。

本节结束。

楼主 宇智波家老大  发布于 2016-03-20 15:22:00 +0800 CST  
第十一节 否则

首先,理解下面的语句。

var a=1
if(a==1){
print("interesting");
}
if(a!=1){
print("exciting");
}

也就是说,不管a是不是1,都会输出一条信息。但其实我们完全可以用else简化它。

刚刚的例子可以写成:

var a=1
if(a==1){
print("interesting");
}else{
print("exciting");
}

else的格式是:

if(条件){事件1}else{事件2}

满足条件,执行事件1。不满足则执行事件2。

else必须和if一起使用。

楼主 宇智波家老大  发布于 2016-03-20 15:23:00 +0800 CST  
如果说有多个条件,怎么办呢?

举个栗子:

if(a==1){
print("我是1");
}else{
if(a==2){
print("我是2");
}else{
if(a==3){
print("我是3");
}else{
print("我不是1也不是2也不是3");
}
}
}

不,我们可以用else if。

else if必须与if连用。

刚刚的例子可以写成:

if(a==1){
print("我是1");
}else if(a==2){
print("我是2");
}

这样的。他的格式是:

if(条件1){事件1}else if(条件2){事件2}else if(条件3)...

以此类推。

你已经学完了所有的关于if的内容。本节结束。

楼主 宇智波家老大  发布于 2016-03-20 15:23:00 +0800 CST  
※※※※※第二章:微进阶※※※※※



第一节 for循环

首先,for循环的作用应该不用我说了,顾名思义就是循环执行某个事件。

下面是一个例子:

print(23333);//第一次
print(23333);//第二次
print(23333);//第三次
print(23333);//第四次
print(23333);//第五次

这是一个连续输出五次“23333”的例子。

楼主 宇智波家老大  发布于 2016-03-20 15:23:00 +0800 CST  
但是如果需要把“23333”全部改成“hhhh”,工作量可想而知。如果是一百次,一千次呢?

当我们学习变量了之后,我们就用变量来简化它。

下面是一个例子:

var a="23333"
print(a);
print(a);
print(a);
print(a);
print(a);

就算要改,也只需要改掉一个数值。但是如果要改的是变量名呢?

这样虽然工作量减小了很多,但是有更简单的方法。这时,我们就用到了循环。

楼主 宇智波家老大  发布于 2016-03-20 15:24:00 +0800 CST  
下面是一个用for循环的例子:

for(i=0;i<5;i++){
print(hhhh);
}

首先我们把刚刚的例子稍微公式化一点,改为:

for(i=0;i<循环次数;i++){
循环内容
}

i=0是用于赋值,for循环里用的一般是变量i,值一般都是0。

这个i=0意思大概就是設置个变量,在for循环开始的时候执行一次,把i的值初始化为0。

第二个是条件,也就是说当满足这个条件的时候循环执行,不满足则停止。

第三个每循环一次后都会执行一次,一般都是i++。因为每次循环后i的值都会从0往上加,而且到了一定的程度(也就是这个i的值不满足第二个)的时候循环停止。

循环内容就是你要循环执行的事件。

再来看一遍,是否理解?

楼主 宇智波家老大  发布于 2016-03-20 15:24:00 +0800 CST  
有个细节需要注意,就是()里的内容是用“;”隔开而不是“,”编写时不要出错。

本节结束。

楼主 宇智波家老大  发布于 2016-03-20 15:24:00 +0800 CST  
第二节 while循环

本节我们要学习的是另一种循环方式:while循环。它与for循环在JavaScript里是根据条件,交替使用的。它的优点是,格式比for循环简单。

下面是一个用while循环循环输出5次“hhhh”。

var i=0;
while(i<5){
print("hhhh");
i++;
}

下面我们来剖析一下这个例子。

while循环的格式和if很相似,它的格式是:

while(条件){循环内容}

楼主 宇智波家老大  发布于 2016-03-20 15:28:00 +0800 CST  
与if对比:

if(条件){事件}

首先,条件里都需要一个布尔值(或是一个能计算出Boolean的式子)。一般都填的是一个可以返回Boolean的算式。

这里有一个非常需要注意的重点,就是说如果条件是判断某个变量是不是符合,那么这个变量就必须在while之前被赋值或是声明。而且它必须在这个循环里不断更新,否则就会变成死循环,不会停止。

回到之前的例子:

var i=0;
while(i<5){
print("hhhh");
i++;
}

我们之前说过,自加会在每次执行到的时候改变变量。也就是说,i++在每次执行的时候都会加一。

这样的话,每次都加一,那么循环执行五次后就会等于5,不符合条件,于是就会停止循环。

为了防止一个循环成为死循环,我们一般用break跳出循环。

楼主 宇智波家老大  发布于 2016-03-20 15:28:00 +0800 CST  
while还有一个用法,就是do while。它与while的根本区别是,while可能会不执行,而do while至少会执行一次。因为while是先判断是否符合条件再循环,而do while是先执行一次,再判断条件。如果条件符合,继续循环,不符合则停止。

它的格式是:

do{循环内容}while(条件)

举个栗子:

var i=1
do{
print("interesting");
i++;
}while(i<1);

载入后,输出了一次“interesting”。

可以看到,因为i=1,并不小于1,但是仍然执行了一次,所以说do while用法在某些时候很有用。

本节结束。

楼主 宇智波家老大  发布于 2016-03-20 15:29:00 +0800 CST  
第三节 自定义函数(重要)

自定义函数是一个非常重要,也非常有用的部分。本节请务必认真学习。

首先,自定义函数的作用是方便调用。比如说我们需要把一个语句在一个js不同的地方调用多次,如果这个语句短了还好,如果很长就很麻烦。而且如果有什么变故,需要把这段语句改动,就更加麻烦。这时候我们就需要用自定义函数。

格式如下:

function 函数名(参数){函数体}

参数和函数体都可以为空,函数名不可为空。

函数名的命名规则和变量命名规则相同,同样的,函数名也不能为关键字,也不能与某个变量名一致。(关键字表见附表)

楼主 宇智波家老大  发布于 2016-03-20 15:35:00 +0800 CST  
function是一个固定语句,说明这是一个自定义函数。

函数体就是调用以后会执行的内容,里面可以是任何语句。

值得一提的是,自定义函数不能嵌套,也就是在一个自定义函数里写上另一个自定义函数。如:

function interesting(){
function exciting(){
}
}

这是不可以的。

下面是一个自定义函数的例子:

function interesting(){
print("duang");
}

但是,函数在自定义了以后载入不会被执行,因为它没有被触发。

楼主 宇智波家老大  发布于 2016-03-20 15:35:00 +0800 CST  
调用一个自定义函数的格式:

函数名(参数)

interesting();
function interesting(){
print("exciting");
}

函数定义一般放在后面。

这只是一小部分,当你真正深入了js,你就会发现自定义函数的强大之处。

本节结束。

楼主 宇智波家老大  发布于 2016-03-20 15:35:00 +0800 CST  
第四节 自定义函数(参数部分)

下面是一个调用和定义自定义函数的例子:

interesting();
function interesting(){
print("exciting");
}

之前我已经说过,它的格式是

function 函数名(参数){函数体}

参数里面填的是变量,如果不止一个就用英文输入法的逗号隔开。

参数里的变量只能在函数体里使用。这些变量会在调用函数后被赋值。

同理,调用函数时也需要写上参数。顺序要和自定义函数里的顺序一致,数量一致。多个则用逗号隔开。

楼主 宇智波家老大  发布于 2016-03-20 15:37:00 +0800 CST  
JavaScript里,如果自定义的函数有参数而你在调用的时候没写,则默认为放弃该参数,为undefined(未找到)。如果调用的参数比自定义的参数多,则无视多出部分。

还有,虽然函数定义的时候不能嵌套,但是调用的时候可以。

举个栗子:

interesting("然","并","卵");
function interesting(stra,strb,strc){
print(stra);
print(strb);
print(strc);
}

执行后,输出的是“然”“并”“卵”三个浮动框。

以上自行理解,我讲的尽力了。。。我已经尽全力用通俗易懂的语言讲了

楼主 宇智波家老大  发布于 2016-03-20 15:37:00 +0800 CST  
第五节 值

有五种原始类型,分别为:

Boolean
String
Number
Null
Undefined

检查一个值的原始类型,可以用typeof。

举个栗子:

var a="interesting";
print(typeof a);

输出的是String。因为“interesting”属于字符串。

我们再举个栗子:

var a=2333;
print(typeof a);

输出的是Number。

使用typeof之后会返回下面的其中一个:

number
string
boolean
undefined
object

number是在检测为“数字”的时候返回的

string是在检测为“字符串”的时候返回的

boolean是在检测为“布尔值”的时候返回的

undefined是在检测为“未找到”时返回的

object是在检测为“Null”时返回的

前三个应该不需要我多说,跳过。我们重点说说undefined和null。

楼主 宇智波家老大  发布于 2016-03-20 15:38:00 +0800 CST  
undefined是“未找到”,也就是在这个变量未赋值时,变量类型默认为undefined。

举个栗子:

var a;
print(typeof a);

返回的是undefined。这里提一下:变量我们一般都是在声明的时候直接给这个变量赋值,比如说var a=1。但是不代表var a是不可以的,var的作用是声明变量,直接赋值与否取决于本人。

比如说刚刚的例子:

var a;
print(typeof a);

第一行只是声明了一个变量a,并没有直接赋值(也就是没有初始化(没有初始值)),那么这个变量在原始类型里属于undefined。

如果这个变量没有声明,如:

print(typeof interesting);

输出的也是undefined。但是没有声明的变量只能用typeof一个,使用其他的任何一个语句都会报错。这个报错的具体暂且不提,放到以后。

楼主 宇智波家老大  发布于 2016-03-20 15:38:00 +0800 CST  
举个栗子:

print(interesting==true);

这样会引起报错。因为interesting是一个没有声明的变量。

如果要让他可以正常运行,就要声明interesting这个变量。如:

var interesting;/*你也可以直接赋值*/
print(interesting==true);/*判断interesting是否为true*/

这样就会不再报错并输出false。

如果函数也没有明确返回值的时候,输出的也是undefined。这个返回值是什么我会在下节讲。

举个栗子:

function interesting(){}
print(interesting()==true);

输出的是false。

最后就是这个null,因为undefined是由null演变(大概)而来的,所以JavaScript里,默认undefined=null。举个栗子:

print(undefined==null);

输出的是true。

虽然null和undefined名义上是相等的,但是你要明白,它们的意义不同。undefined是一个没有赋值的变量默认值,而null表示的是一个不存在的对象。

对于非常大(或非常小),你可以用科学计数法来表示。

当然,有专门的值来表示无穷大/小。就是Infinity。

Number_POSITIVE_INFINITY
Number_NEGATIVE_INFINITY

的值都是Infinity。

楼主 宇智波家老大  发布于 2016-03-20 15:39:00 +0800 CST  
因为无穷大数可以正也可以为负,所以你可以对任何一个数调用isFinite()。举个栗子:

var a=666*233333
if(isFinite(a)){
print("interesting");
}else{
print("exciting");
}

输出的是interesting。

最后一个特殊值:NaN(Not a Number)。

因为没有和它等大的数值,所以它与无穷大一样不能参与计算。而且,NaN也是唯一一个与自身不相等的值。举个栗子:

print(NaN==NaN);

输出的是false!

因为这个,所以一般不会用NaN。但是isNaN是一个很好的选择,举个栗子:

print(isNaN("interesting"));

输出的是true。

print(isNaN("2333"));

输出的是false。

这个isNaN的大致意思就是“是不是不是Number”(PS:看着有点晕但是自行理解),不是Number返回的是“true”,是Number返回的是false。

以上自行理解,本节结束。

楼主 宇智波家老大  发布于 2016-03-20 15:39:00 +0800 CST  
最后一课 把JavaScript和Minecraft关联在一起
ModPE

首先来说一下钩子函数。

它的格式和自定义函数一模一样,唯一的不同点在于你不需要事先定义它。而且也不需要调用。

当你执行了一个特定事件时,视为触发。

就像之前那个铁剑点地爆炸js一样,没有写出调用,但是可以直接执行。

之后就是内置函数,它们也是传说中的“自定义函数”。与钩子函数不同的是,它们虽然也不需要你来定义,但是可以直接调用。比如explode就是一个内置函数。

以上就是我们ModPE教程的所有,本教程正式结束。

楼主 宇智波家老大  发布于 2016-03-20 15:39:00 +0800 CST  

楼主:宇智波家老大

字数:13654

发表时间:2016-03-20 23:05:00 +0800 CST

更新时间:2016-08-28 12:44:41 +0800 CST

评论数:436条评论

帖子来源:百度贴吧  访问原帖

 

热门帖子

随机列表

大家在看