关于第一次学习JavaScript第一周的复习(已自闭)

100 阅读7分钟

Monday

1、
    了解JavaScript相关知识:由ECMAScriptES),DOM , BOM三部分组成
        ESJavaScript核心语法
        DOM:文档对象类型
        BOM:浏览对象类型
2、  
    了解js中常见的五种数据类型
        1.数字类型 Number (数字)
        2.字符串类型 String  ("")
        3.布尔型   Boolean   (truefalse)
        4.Null     空        (null)
        5.undefined  未定义   (undefined)
3、
    定义变量和常量:
        变量 var 变量名= 变量;
        常量 const 常量名 = 常量;
       *变量可以随意变化 常量一旦定义就不可更改
       *变量名不能随意定义:1.不能使用关键字
                          2.尽量见名知意
                          3.使用拼音会不够装杯
4JavaScript三中输出方式:
        console.log();  在控制台输出(一般常用)
        alert();        在页面弹出提示框 但会卡住页面内容,所以一般不用
        document.write();在页面出现 会占据页面内容,一般也不常用

感受: 初来乍到,感觉良好

Tuesday

算术运算符:+ - * / % :
    %:取余 m%2 == 0 偶数
          m%2 == 1  奇数
          m%n —> 结果不会小于n
1、算术运算符中的隐式转换
    在运算过程中,一般会将两边都默认转换为Number类型在进行转换
    *在加法运算中,如果出现字符串类型,则会默认将两边都转换为字符串类型,再进行拼接操作
        例如:consol.log("12"+2);  控制台会出现122而不是14;
    *在除加法以外的算术运算中字符串也会转换为Number类型再进行计算,但如果字符串中包含非数字字符,则结果为NaN
        例如:console.log("abc"*1); 控制台会出现NaN
2.NaN:全称为not a number
    1NaN确实是一个Number类型,但不是一个正常的数字
    2NaN不能和任何数据相等 甚至不能等于自己,所以在运算中没用任何作用
    3.正常的判断方法都无法判断是否为NaN  解决办法:isNaN(); 判断是否为NaN
                                              !isNaN(); 判断是否为有效数字
3、用户输入框:prompt()
4、查看数据类型:typeof()
5、数据类型转换:
    转换为Number类型:
        parseInt();  转换为一个整数
        parsefloat(); 和parseInt几乎一样 但是可以识别第一个小数点 和parse一样最大的作用就是去掉单位
        Number:     可以将所有数据转换为Number类型 但作用不大,相当于隐式转换,还不如*1,-0,/1
    转换为字符串类型:
        .toString(); 没有太大的意义 因为页面上所有的内容都属于字符串类型 无需转换
6、函数基础
    创建函数function 函数名(形参) {
                函数体
            }
    调用函数 函数名(实参)
    *形参相当于变量名 实参也就是实际参数
    *函数一般用于不想一打开页面就开始触发事件的情况
    *并且它可以多次触发,最好可以绑定一个按钮然后等待用户触发:<elem onclick="函数名"></elem>
    *形参和实参可以不添加 一般使用在固定不变化的操作上面
    *如果需要根据不同的实参来实现不同的操作,则需要为函数添加形参和实参
7、分支结构 
    语法:if(判断条件){
            若符合判断条件则执行这里面想进行的操作
        }else//意为否则 {
            若不符合判断条件则执行这里面想进行的操作
        }
     *最后一个else可以省略但最好不要省略,如果前面的条件都不满足,所有的分支都白写
     *分支是从上往下进行的,且只会执行一条,所以上面的判断条件最好不要包含下面的判断条件,不然下面的分支也白写
8、比较运算符
   m>=n m大于等于n
   m<=n m小于等于n
   m>n  m大于n
   m<n  m小于n
   m==n m等于n
   m!=n m不等于n
   m===n m的值和类型都和n相等
9、逻辑运算符
    ||   或者      只要满足一个就为true
    &&   与 并且   只有全部满足才为true 否则为false
    !   颠倒布尔值 !true == flase;  !false == true;

第二天还未意识到事情的严重性(即将自闭)

Wednesday

一、while循环
    1、语法: var 循环变量 = n;
             while(循环条件) {循环体;循环变量变化}
       *先判断循环变量是否符合循环条件 符合则进行循环
       *循环变量一直变化到不符合循环条件就会停止循环
       *循环变量的变化可以不写,但会变成死循环
    2、死循环
       语法:while(true){循环体}
       *死循环会一直进行,内存也会不断增加到浏览器崩溃
       *一般需要搭配break来结束循环
   3、循环退出语句:break;
二、for循环
    1、语法: for(var 循环变量=n;循环条件;循环变量变化){循环体};
    *while拥有的特点for也拥有,for的使用更加简洁,所以一般都使用for循环
    *循环变量可以设置多个
    *死循环写法:for$(;;){}
  循环总结:1、while循环一般不使用,只有在不确定循环次数时可以使用
           2、for循环作为日常使用,因为大部分情况都可以确定循环次数
三、数组
  I、数组的定义:多个元素或数据组成一个集合,将他保存在一个变量之中
               数组的每一个元素都有一个唯一的编号,称为:下标
               下标从0开始,一直到元素数量-1
                   举例:[a,b,c,d] a的下标为0,d的下标为4-1=3
  Ⅱ、数组的创建:
          直接量方式:var arr = [];//空数组
                     var arr = [数据,数据];
          构建函数方式:var arr = new Array();//空数组
                      var arr = new Array(数据,数据);
          *两种方式作用相同 且直接量方式更加简单,所以按照摸鱼定理来讲一般使用直接量方式
  Ⅲ、数组的访问:
          获取数据:arr[下标];
              *下标越界:下标不存在,在引用了不存在的下标就会造成下标越界
              *如果获取数据时下标越界,则会出现undefined
          添加数据:arr[下标]=新数据;
              *如果下标处已有数据,则会替换掉原有数据
              *如果出现下标越界,会使数组变成一个稀疏的数组,空缺的中间会被undefined顶替,且下标也不在连续
  Ⅳ、数组对象的唯一属性:
          arr.length//下标的最大值+1,也就是数组的长度
          应用arr.length的三个固定套路:arr[arr.length]=新数据;//在最后添加一个新元素
                                      arr[arr.length-n];    //获取倒数第n个元素
                                      arr.length-=n;        //减去最后n个元素
  V、遍历数组:将数组中每一个元素都提取出来
          公式:for(var i=0;i<length;i++){
                                 arr[i];
                              }
    *一般用于对每个元素都执行相同或相似的操作
    
  Ⅵ、数组三大特点
          1.不限制元素长度
          2.不限制元素类型
          3.不限制下标越界,但最好不要越界

第三天、逐渐难搞,自闭开始,一学就会,动手就废

Thursday

1、通过HTML属性查找DOM元素
     通过id:   var elem=document.getElementById("id名");
         *返回的是单个DOM元素,可以进行直接操作
         *如果id有多个,则只会找到第一个,如果未找到则返回null

     通过类名: var elems=document/parent.getElementsByClassName("类名");
     通过标签: var elems=document/parent.getElementsByTagName("标签名");
         *返回的是一个DOM集合,不能直接用来操作,需要添加下标或遍历得到所有元素才能操作
         *如果未找到则返回一个空集合
         *可以使用parent来代替document,前提是parent是一个已被找到的父元素
     
2、通过元素之间的关系来查找DOM元素
    *首先需要找到一个元素xx
    *除子元素为集合以外,其他都为单个元素
        1、父元素:xx.parentNode 
        2、子元素:xx.children
        3、第一个儿子:xx.firstElementChild 
        4、最后一个儿子:xx.lastElementChild 
        5、前一个兄弟:xx.previousElementSibling
        6、后一个兄弟:xx.nextElementSibling 
        
3、操作DOM元素  例:<标签名 属性名="属性值" style="样式">内容</标签名>
        内容:innerHTML(双标签:识别标签)/innerText(双标签:纯文本)/value(input)
                获取:标签名.内容属性;
                修改:标签名.内容属性="新内容"
         
         属性:
                获取:标签名.属性名
                修改:标签名.属性名="新属性值"
                
         样式:
                获取:标签名.style.css属性名
                修改:标签名.style.css属性名="新css属性值"
                *只能获取内联样式
                *css属性名改为驼峰式命名 例:background-color -> backgroundColor
4、元素绑定:
        单个DOM元素:xx.onclick=function(){
                                    this//当前元素
                                }
        DOM元素集合:for(var i=0;i<elems.length;i++){
                      elems[i].onclick=function(){
                      this//当前元素
                     }
                   }

第四天,已自闭,开始抓狂,文科生的悲哀(::>_<::)