JavaScript的核心(三)--语句、函数

语句

一、判断语句
1、if语句:

if(case 1){代码1;}
else if(case 2){代码2;}
if(n==1){
	//执行代码块1
}else{
	if(n==2){
		//执行代码块2
	}else{
		if(n==3){
			//执行代码块3
		}else{
			//如果所有判断都为false,执行该代码块
		}
	}
}
else{代码3;}

2、switch语句:

switch(n)
   {
     case 1:
       执行代码块 1
       break;
     case 2:
       执行代码块 2
       break;
     default:
       如果n即不是1也不是2,则执行此代码
 }

二 、循环语句

1、for循环:

for(initialize;test;incremenet){
	statement
}

2、for in

for(variable in object){
	statement
}

3、while循环

var num = 1;         //声明循环变量
while (num<=10){    //判断循环条件;
	document.write(num+"<br />");//执行循环体;
	num++;
}

三、其他

1、break和continue的区别和作用
(1)break
 有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止。 这时我们可以使用break来完成。break用于完全结束一个循环,跳出循环体执行循环后面的语句。

var str = "hello";
for (var item of str){
    if(item ==="e"){
        break
    }
    console.log(item);  // h e 
}

(2)continue
 continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。可以理解为continue是跳过当前循环中剩下的语句,执行下一次循环。

var str = "hello";
for (var item of str){
    if(item ==="=-){
        continue
    }
    console.log(item);  // h e o
}

2、return语句
在函数语句结束时执行,并返回表达式的值作为函数的结果;
一般来讲,为事件处理函数返回return:false; ,作用在于阻止默认事件行为和取消默认动作,比如,在默认情况下点击一个元素,那么页面就会跳转到元素href属性指定的页,那当你用return false;时,就相当于一个终止符,而return true相当于一个执行符。

function a(){
return 20;//这个时候,函数a=20,函数中下面的内容将不再执行
document.write(888);//由于上面已经return了,这条代码不会执行
}

return true:返回正常的处理结果,如果用这个就返回终止下面的代码。

return false.:
1.通常让函数返回false,是想当不满足或满足一定条件时,阻止默认默认事件的发生(即继续执行下面的代码),但是注意:return false只在当前函数有效,并不会影响其他外部函数的执行.

2.返回错误的处理结果

3.终止处理。

4.阻止提交表单(οnsubmit=“return false”;)。
      
3、throw语句

throw 语句允许我们创建自定义错误。
正确的技术术语是:创建或抛出异常(exception)。

throw aaaaaa;

4、JavaScript语句小结
如果把 throw 与 try 和 catch 一起使用,我们可以生成自定义的错误消息。
在这里插入图片描述
在这里插入图片描述

函数

一、函数定义的方法

(1)函数声明语法

function sum(n1,n2){
 return n1+n2;
}

(2)函数表达式

var sum=function(n1,n2){
   return n1+n2;
}

二、函数的属性和方法
1、函数的属性有两个:length和prototype
(1)length表示函数接收命名参数的个数

function a(name){
	//函数体
}
function b(name,age){
 //函数体
}
function c(){
 //函数体
}
 
a.length //1
b.length //2
c.length //0

(2)prototype

无论什么时候,只要创建了一个新函数,就会根据一组特定的规则为该函数创建一个prototype属性,默认情况下prototype属性会默认获得一个constructor(构造函数)属性,这个属性是一个指向prototype属性所在函数的指针

function Person(){

}

在这里插入图片描述
2、方法apply()和call()

JavaScript中每个函数都有call()和apply()方法
相同点:
都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域。

一般来说,this总是指向调用某个方法的对象,但是使用call()和apply()方法时,就会改变this的指向。

apply()

window.number = 'one';
document.number = 'two';

  var s1 = {number: 'three' };
  function changeColor(){
      console.log(this.number);
  }

  changeColor.apply();         //one (默认传参)
  changeColor.apply(window);   //one
  changeColor.apply(document); //two
  changeColor.apply(this);     //one
  changeColor.apply(s1);       //three

call()

 window.color = 'red';
 document.color = 'yellow';

  var s1 = {color: 'blue' };
  function changeColor(){
      console.log(this.color);
  }

  changeColor.call();         //red (默认传递参数)
  changeColor.call(window);   //red
  changeColor.call(document); //yellow
  changeColor.call(this);     //red
  changeColor.call(s1);       //blue

不同点
apply()方法 接收两个参数,一个是函数运行的作用域(this),另一个是参数数组。
语法:apply([thisObj [,argArray] ]);,调用一个对象的一个方法,2另一个对象替换当前对象
call()方法 第一个参数和apply()方法的一样,但是传递给函数的参数必须列举出来。
语法:call([thisObject[,arg1 [,arg2 [,…,argn]]]]);,应用某一对象的一个方法,用另一个对象替换当前对象。

  function add(a,b){
        return this.ar + this.br + c + d;
    }

    var s = {ar:1, br:2};
    console.log(add.call(s,3,4)); // 1+2+3+4 = 10
    console.log(add.apply(s,[5,6])); // 1+2+5+6 = 14 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值