一:条件语句补充:
1.switch case:条件判断语句
switch(表达式){case 常量表达式1:语句; break;.....default:语句n+1;} :小括号里的表达式会和大括号里的条件比对

2.break:跳出switch语句,不再执行。必须放在循环里

3.countinue:终止本次循环,进行下一循环。

4.初始引用值:
(1)数组:数组的下标从0开始。
数组的长度:arr.length。
遍历数组:把数组的每一位都拿出来:for(var i = 0;i < arr.length; i++){console.log(arr[i])}

(2)对象:存储数据的仓库,比数组更直观。
var obj = { lastName: "lan"}
obj:对象名,花括号里面可以有属性或者方法,属性或者方法都是用来存储数据的
键(key):lastName:属性名,属性和属性之间用逗号隔开
值(value):lan:属性值(value) 值:存放真实的数据,可以是字符串、数组、对象、boolean等都可以。
取值:对象名.属性名;
赋值:对象名.属性名 = 所要赋给它的值

注意:1. 属性和属性之间用逗号隔开。
2. 属性名和属性值之间用冒号。

编程形式的区别:javascript:既面向对象也面向过程
面向过程:是一种以过程为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。(C语言)。第一步干嘛,第二步干嘛。
面向对象:把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。(java)
面向对象和面向过程的区别:面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭。
蛋炒饭:最后的一道工序肯定是把米饭和鸡蛋混在一起炒匀。
盖浇饭:则是把米饭和盖菜分别做好,你如果要一份红烧肉盖饭呢,就给你浇一份红烧肉;如果要一份青椒土豆盖浇饭,就给浇一份青椒土豆丝。

三: typeof操作符:区分这个数据是什么类型。
如:typeof(123):number ;typeof("123"):string。
typeof能返回6个值:number string boolean(前面三个是基础值) object undefined function
返回object:{} 、[]、null。

四:类型转换:
1.字符串也可以运算,如:"2"-"1" 结果:1。
2.显示类型转换:明明白白告诉你,我就是转换类型的,可以直接用。number(mix);parseInt(string,radix);parseFloat(string);toString(radix);String(mix);Boolean();
(1)number(mix):把括号里的东西转换成数字。
var num = Number("123"); console.log(typeof(num) + " : "+num)结果:number:123。 Number:把括号里的东西转换成数字。
注意:
1. null转换数字为0。
2. undefind 、1234abc、 abc不能转换为数字,但会转换为数字类型,会打印NaN。看起来不是数字的就不能转换为数字。
3. NaN:转换不了数字,又要转换为数字类型时出现。
4. “-123”,结果是 -123。
5. true,false,null都可以转换为数字:1,0,0
(2)parseInt(string,radix):
1)parseInt(string):把括号里的东西转换成整值。
注意:
1.字符串也可以转换为数字。如 var demo = ("123.9"); var num = parseInt(demo); 结果是:num: 123。
2. true,false,null转换后是:NaN。
2) parseInt(string,radix):radix的取值范围是2-36
进制转换:var demo = "10" ; var num = parseInt(demo,16);:以16进制为基底,把 10(分号里的东西)转换成10进制。结果是16。
3)独特功能:砍断原则:从数字为往后看,看到非数字位截止,返回非数字位之前的数。
如:var demo = "123abc" ; var num = parseInt(demo);结果是:123。
(3)parseFloat(string):从数字为往后看,看到第一个点的以外的非数字位截止,返回第一个点的以外的非数字位之前的数。
var demo = "123.2abc" ; var num = parseFloat(demo);结果是:123.2。
(4)String(mix):和Number一样,只不过String是转化为字符串。
(5)Boolean:试图把里面的东西转换为boolean类型。
注意:转换成布尔值为false的 undefind ,null , NaN, “”,0。
(6)toString(radix):
1)想把这个东西转换为字符串。用法不一样:想把谁转换为字符串,谁就 .toString。
如:var demo = "123" ; var num = demo.toString;console.log(typeof(num) + " : "+num);结果是:string:123。
注意:除了两个之外不能用:undifined和null,会报错。
2)还可以进制转换:var demo = 123 ; var num =
demo.toString(8);console.log(typeof(num) + " : "+num);:123以10进制为基底转换为目标进制8进制。结果是:string:173。
(7)toFixed:保留几位有效数字。var demo = 123.2687 ; var num = demo.toFixed(3) 结果是:123.268 :保留三位小数,并且四舍五入。
2进制转换为16进制:
2进制可以转换为10进制(parseInt),10进制可以转换为16进制(toString)。var num= "10101010" ; var test = parseInt(num,2);console.log(test.toString(6));

  1. 隐式类型转换:怎么转换的不知道。内部进行显式类型转换
    (1 ) isNaN():当你把一个数放到括号里去的时候,它能帮你判断这个数是不是NaN,然后给你返回回来。
    如:NaN:true;123:false ;"123": false ;"abc":true; undefined: true; null:false。
    Number("abc")----> NaN:把括号里的变量拿出来,放到Number里面,通过Number的转换,转换出来的结果再和NaN进行比对,如果是NaN返回的是true,否则是false。
    (2 )++ / -- + / -(一元正负):
    ++:++之前会把前面的东西用Number转换:先调用Number,把你弄成数字再说。

       var a = "123"; a++; 结果:124; Number(“123”)。     
       var a = "abc"; a++; 结果:NaN。    
       var a = "abc"; a++; typeof(a); 结果:number:即使你转换不了数字,但是你也是数字类型的人。

    +(正):都会把它变换成数字。调用的是Number。

          var a = +"abc"; console.log(a + “: “ + typeof(a));结果是NaN:number。                                                                       

    (3)+: var a = "a" + 1; 调用的是String。当加号两侧有一个东西是字符串的话,它就会调用string,把两个全变为字符串。
    (4)- * / %: ----->number:调用的是number。

       var a = "1"*1;console.log(a + “: “ + typeof(a));结果是:1:number
       var a = "a"*1;:(Number(a)*Number(1));结果是NaN:number                                                             

    (5)&& || !:
    (6)< > <= >=:字符串和字符串比:转化为ASCII码比较。
    字符串和数字比较时,会转化成数字。

        如:var a =”3” > 2;console.log(a + “: “ + typeof(a));结果是true:boolean    

    (7)== !=

    小练习:

       false > true; 结果:false :因为转换为数字,0不大于1 
        undefined > 0; undefined < 0; undefined == 0;  结果是false
        null > 0; null < 0;  null == 0; 结果是false
        undefined == null;结果是true
       NaN == NaN;结果是false  (唯一一个自己不等于自己,非数不等于任何东西)   

    (8)=== !== :不发生类型转换,视觉上等于就等于,视觉上不等于就不等于。分别是绝对等于和绝对不等于。

                 如: 1===1 结果是true   1===”1” 结果是false 
                      1!==1 结果是false   1!==”1” 结果是true
                      NaN === NaN  结果是false

    (9)typeof(a):把变量放到typeof里面去,不会报错,会返回值:undefined。返回的值是字符串类型的。仅有这一种情况变量没有定义不报错。

               console.log(typeof(a)); 结果是undefined。
               console.log(typeof(typeof(a))); 结果是string。