码迷,mamicode.com
首页 > Web开发 > 详细

前端JS02

时间:2016-07-31 00:20:25      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

1.1   复习       

  JS为什么要分数据类型

开房, 正规的开房

如果来一个老师到上海出差,   开一个房   开一个单间

如果来两个老师    两个男老师   开两个房间

如果是两个老师,夫妻        肯定一个房间,大床间   

就像数据一样,不同的数据类型,开辟的空间是不一样的,运算的方式和效率也是不一样的。

1.1.1  变量的重复赋值      

  变量中的,如果是数字的话,可以重复的赋值,会将原值覆盖掉。

如果是字符串的话,就不一样的,字符串比较特殊,具有不可变性。如果重复的操作一块内存空间的话,一定要注意一个效率的问题。  

1.2  If  else-if   

 If(判断条件){  一般是boolean类型的值或是关系表达式或是逻辑表达式

要执行的代码;

}else if(判断条件){

要执行的代码;

}else if(判断条件){

要执行的代码;

}...else {

 要执行的代码;

}

执行过程:

 程序首先运行到if处,先进入小括号中,判断条件是否成立,如果成立,也就是小括号里面返回true,则进入大括号执行里面的代码,如果条件不成立,也就是返回false,则依次的判断下面的else if对应的小括号中的条件是否成立,也就是返回true,如果成立则进入对应的大括号里面执行代码,如果都不成立,也就是返回False,则要看最后有没有else,如果有else,则进入else里面的大括号执行里面的代码,否则退出程序,执行后面的代码。

是多用来做区间的判断情况的。

1.3  三元运算符  

表达式1(关系表达式或是逻辑表达式)? 表达式2:表达式3;

如果表达式1成立,也就是最终求解出一个True的结果或是 表达式1返回true,则表达式2的值是整个表达式的值,如果表达式1不成立,也就是求解出的结果是false,则表达式3是整个表达式的值。

一般多用于两种情况的语境。

  var sex = 1;
//    if(sex == 1) {
//        console.log("男");
//    }else{
//        console.log("女");
//    }

    var a = sex == 1?"男":"女";
    console.log(a);

 

  var str = prompt("请输入两个人名中的一个,‘秦桧’,‘岳飞’");
//    if(str =="岳飞"){
//        console.log("忠臣");
//    }else {
//        console.log("奸臣");
//    }
    var s =   str =="岳飞"?"忠臣":"奸臣";
    console.log(s);

 

表达式:  就是一个可以计算出结果的式子

var a = 100;

比如说: a=1, “abc”, 100>20; a;

1.4  Switch-case  

switch(){ 一般是一个变量或是计算后的定值

case 1

 要执行的代码;

break;

case 2

 要执行的代码;

Break;

 

Case 3

 要执行的代码;

Break;

 

Case 4

 要执行的代码;

Break;

...

Default:

要执行的代码;

Break;

}

执行过程:

当程序执行到switch处,先进入小括号,计算里面值,然后拿着这个定值依次和大括号中case里面的值进行匹配,如果匹配成功,则执行对应的case中的代码,遇到break,则跳出当前swicth-case结构,如果匹配都不成功,则要看结构是否有default,如果有,则执行default中的代码,遇到break跳出结构,如果没有default,则直接跳出swicth-case结构,执行后面的代码。

多用于多条件的定值判断 。

注意:case中的值的数据类型一定要与switch小括号中的值的数据类型一致。

1.5  If-elseif  switch-case的区别

相同点:都可以实现多分支结构

不同点:

if-else if:可以处理区间范围

switch:一般 只能用于定值比较

三者的区别:

if有条件的执行一条语句     一种情况

if-else有条件的执行一条或另一条语句    两种情况中的一种

switch有条件的执行一组语句中的一条语句   多种情况中的一种

1.6  短路运算

转换为boolean类型的值后为false的情况:

0NaN, “”, null,undefined

&&         || 

//    var a = 100;
//    var b = 20;
//    var c = a+b>100 && a-b <50;
//    console.log(c);

//   var d =  true && false;
//    console.log(d);

    //var e = "abc"&&"amn";
    // &&找假 先看第一个表达式的值,如果第一个表达式不是boolean类型的话,会先将此值进行隐式转换,转换成boolean的值,如果转换后的值为true,则直接返回第二个值,不管第二值是真还是假,如果第一个数据为假,则直接返第一个数, 不管第二个数是真不是假。
    //console.log(e);

    var f = NaN && "aaa";
    console.log(f);

//&& 操作数两边如果都不是布尔类型,会先把操作数转换成布尔类型,返回,值是false的那个操作数
//&& 如果两边都是false返回第一个操作数

 

 

|| 找真的

var n = "abc" || "kkk";
console.log(n);
// 找真的 ,如果两个值不是boolean类型的话,是先将当前的对象转换成对应的boolean类型的值,如果第一个值转换后为True,则直接返回,如果转换后,第一个值为false,则返回第二值。

 

 

逻辑非  !        !对象

如果操作数是对象,返回false

如果操作数是空字符串,返回true

如果操作数是非空字符串,返回false

如果操作数是0,返回true

如果操作数是任意非0值,返回false

如果操作数是null,undefined,NaN,返回true

上面的规则可以简化成

转换为false的值:false""0NaNnullundefined

!!"abc"结果是什么

1.7  While

循环: 所谓循环就是重复的做同一件事情

while 循环

while(循环条件){

    循环体(要执行的代码);

}

执行过程:

当程序 运行到while处,首先进入小括号判断循环条件是否成立,如果成立,也就是值为true,则进入大括号执行里面的循环体,执行完毕之后,再次回到小括号中判断 循环条件是否成立,如果成立则再次进入大括号执行里面的循环体,往复循环。只要是循环,肯定会有一行代码能够改变循环条件,如果没有代码改变循环条件,我们称这样的循环叫死循环。

while(true){

循环体;

}

1.8  Do- while  

 Just   do   IT

Do{

循环体;

} while(循环条件)

执行过程:

程序执行到do处,先进入大括号执行里面的循环体,然后带着执行结果到达while的小括号,判断里面的循环条件是否成立,如果成立,则再次进入大括号执行里面的循环体,如果不成立,则跳出当前do-while循环。

特点,至少执行一次循环体,然后再判断 循环条件。

While的特点:

先判断循环条件,再执行循环体,有可能 一次循环体都不执行。

1.9  For循环

 一般多用于已知次数的循环

 for(表达式1;表达式2;表达式3){

循环体;

}

 执行过程:

程序运行到for处,进入小括号中,先执行表达式1,声明变量,并赋初值,然后执行表达式2,判断循环条件是否成立,如果条件成立,则进入大括号执行里面的循环体,第一次循环的时候,并不执行表达式3,第一次循环执行完毕之后,执行表达式3,改变循环条件,然后再执行表达式2,判断循环条件是否成立,如果成立,则再次执行循环体,如果不成立,则跳出循环。

1.10  循环的嵌套

 一个循环里面包含着另一个的循环

对于循环的嵌套来说,外面的循环循环一次,里面的循环循环N

for(var i=0;i<6;i++){
     for(var j=0;j<10;j++){
         console.log("循环嵌套");
    }
}

1.11  break  

 两种用法 :

  第一种用在swicth-case 用于跳出当前程序

 第二种,是用在循环当中,一般是用while或是for循环当中,与if搭配使用,作用就是立即跳出当前循环,后面的代码都不再执行。

也常见用于死循环的跳出。

While(true){

}

1.12  continue    继续的意思

一般也是用于循环当中,当遇到continue关键字的时候,立马停止本次循环,然后回到循环条件处,判断 循环条件是否成立,如果成立则继续下一次循环,如果不成立,则退出当前循环。

只结束当前本次循环,continue后面的代码都不再执行。

1.13  数组

数组 就是数据的有序列表。存储的是一组数据,这组数据可以是任意类型,而且数组中的元素可以随时的动态添加。

1.13.1 使用构造函数创建数组

// 第一种,用构造函数的方式创建 数组
 var  arr = new Array();// 创建了一个空数组,长度为0
// 数组就是数据的有序列表,这个顺序是按编号来的,默认以0开始,这个编号 叫做数组的索引或是下标
arr[0] = 100;
arr[1] = 99;
arr[2] = 98;
 arr[10]=96;
 console.log(arr.length);
 console.log(arr);// 直接打印数组 ,就可以看到数组里面的数据
 alert(arr);

 

 

 

var arr = new Array(6); //创建了一个长度为6的数组
arr[0]=100;
arr[7]=102;
console.log(arr.length);
console.log(arr);

JS的特性就是弱类型的动态语言,比如数组里面的元素是可以随时动态添加的,数组的长度会随着里面数据的变化而变化。

JS中的数组可以存储任何类型的数据,而且大小可以动态的改变,与PC中的内存大小相当。

1.13.2  使用字面量的方式创建数组

 var arr = [100,98,96,99,93,95,97,69,89,58,87];
//console.log(arr[0]);
//console.log(arr[arr.length-1]);

for(var i=0;i<arr.length;i++){
    console.log(arr[i] +"===="+i);
}
 //console.log(arr.length);

 

前端JS02

标签:

原文地址:http://www.cnblogs.com/wangkang894/p/5722026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!