语句
一、判断语句
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