html5

66 阅读6分钟

day01

1.javaScript简称JS,是一个运行在客户端浏览器端的解释型弱类型面向对象脚本语言。
2.什么是解释型?什么是编译型?
    ①解释型:在运行程序之前,不需要检查语法是否正确,直接运行,遇到错误后停止后续代码运行。
    ②编译型:在运行程序之前,需要先检查语法是否正确,如果不正确,直接不运行。
3.什么是弱类型?什么是强类型?
    ①弱类型:变量保存的数据可以是随意的,数据类型由数据本身来决定。
    ②强类型:由数据类型来决定变量能保存什么数据。
4.面向对象
    ①对象名.属性名:
    ②对象名.方法名():
5.特点
    ①编写js的工具有很多种
    ②解释型
    ③弱类型
    ④面向对象
    ⑤可以做一切css完成不了的效果
6.如何使用js
    ①在html中写上一个script标签
        <script>js代码</script>
    ②创建一个x.js文件,然后引入
        <script src='x.js'>js文件</script>
7.输出方式/打桩输出/检查错误
    ①在控制台输出 console.log(输出的内容)
    ②在页面上输出 document.write(输出的内容)
        缺点:绑定点击事件后,会替换掉原本已经布局好的html内容
    ③在浏览器自带的警告框输出 alert(输出的内容)
        缺点:会卡住整个页面
8.变量和常量
    ①变量 创建后可以随时更改
    when:以后反复使用的数据,需要提前存入一个变量中,在后续修改的时候也更加方便
    why:为了方便
    how:var 变量=值;
    ②常量 创建后不可以修改
    how:const 常量=值;
    ③特殊
        不能以数字开头
        建议使用驼峰命名法或者下划线
        命名要见名之意
        如果变量名为name,那么不管数据类型是什么最后都会转为字符串
        变量名不可以是关键字
        变量名可以只创建不赋值,默认值为undefined
        多个变量连续创建可以简写,中间用逗号隔开,最后用分号结尾
        
 9.数据类型有哪些?分为两大类
     ①基本类型
         Number       数字
         String       字符串
         Boolean      布尔
         NullUndefined    未定义
     ②引用类型
 10.运算符
     ①算术运算符 +、-、*、/、%
         %取余,两个数字相除取余数
         任意数字%2判断奇偶数
         取出某个数字的后n位
             console.log(1234%10); //4
         带有隐式转换,默认将左右两边转换为数字再运算
             True -> 1 false-> 0 undefined -> NaN  Null -> 0  "100" -> 100  100px -> NaN
             NaN 参与任何算计运算结果为NaN,参与任何比较运算都为false
         +运算符如果碰上一个字符串,左右两边会变为字符串然后进行拼接
 
     ②关系/比较运算符 >、<、>=、<=、==、!=、===、!==
         在通过条件进行判断是否满足来进行不同的代码运行时使用
         结果一定是布尔值
         带有隐式转换,左右变为数字进行比较 数字<字母A-Z<字母a-z<汉字
         如果左右两边是字符串,则按每个字符的十六进制Unicode号进行比较
         NaN参与比较运算都为false 利用!isNaN来进行判断
         undefined==null 结果为true 利用undefined === null来解决
     ③逻辑运算符
         && 与 全真为真,一假为假
         || 或 一真为真,全假为假
         !  非
     ④赋值运算符 =、+=、-=、*=、/=、%=
         i=i+1 -> i+=1
     ⑤自增自减运算符
         每次固定+1
         前++返回加了之后的值,后++返回的是加了之前的旧值
     ⑥位运算
         左移m<<n  -->m左移了n位  m*n^2
         右移m>>n  -->m右移了n位  m/n^2

day02

    1.程序的流程控制语句
        ①顺序结构 自上而下
        ②分支结构 通过条件判断要走的分支
        ③循环结构 通过条件判断是否重复执行代码
    2.分支结构
      ①if分支
          if(条件){操作;}
          if(条件){操作;}else{操作2;}
          if(条件){操作;}else if(操作2;)else{操作3;}
          注意:
              分支只要满足了一个条件,就不会再执行其他代码
              else if 想写多少写多少
              else可以省略,但是不建议
              分支可以嵌套
      ②Switch...case分支
          switch(值/表达式){
              case 值: 操作;
              case2: 操作2;
              default: 操作;
          }
          特殊:
              默认只要一个case满足,后续所以操作都会全部做完,通过在每个case最后添加关键字break来解决。
              case在做比较时不带隐式转换
              default可以不写,但是不建议
      ③if分支和Switch分支的区别
          Switch分支执行效率高,速度快,但是需要知道结果才能使用Switch分支
          if分支可以做范围比较,但是执行效率慢,速度慢
  3.三目运算
      语法:
          条件1?操作1:默认操作;  if...else
          条件1?操作1:条件2?操作2:默认操作; if..else if...else
      注意:
          默认操作不可以省略
          如果操作比较复杂,不能使用三目运算。建议if分支或者Switch分支
          

  4.强制转换
      ①.转字符串
          E.toString(); E不能是undefinednullundefinednull不能做任何的.操作
          String(X); 完全等效隐式转换,是隐式转换的底层原理,不如+""
      ②.转数字
          parseInt(str/num) 从左到右依次读取每个字符,碰到非数字就停止转换,如果第一个字符就是非字符则为NaN,不认识小数点
          parseFloat(str)   从左到右依次读取每个字符,碰到非数字就停止转换,如果第一个字符就是非字符则为NaN,认识第一个遇到的小数点
          number(x) 完全等效隐式转换,是隐式转换的底层原理,不如*1
      ③转布尔
          boolean(x);万能的完全等效隐式转换,是隐式转换的底层原理,不如!!X 只有6个会转换为false  undefinednullNaNfalse""                                          

day03

    循环结构
        反复执行相同或相似的操作
        三要素:
            循环条件
            循环体
            循环变量
    三种循环
        while循环
            var 循环变量=x;
            while(循环条件){
                循环体;
                循环变量变化;
            }
            特殊:死循环  while(true){操作}
                如何退出循环   break 结束整个循环  continue 结束当前循环
        
       for循环
           for(var 循环变量=x;循环条件;循环变量变化){
               循环体;
           }
           特殊:死循环 for(;;){操作;} 注意小括号内的;不能省略
           
       while循环和for循环的区别
           不确定循环次数的时候用while循环,确定循环次数的时候用for循环
           两者原理都一样
           
       do..while循环
           var 循环变量=x;
                do{
                    循环体;
                    循环变量变化;
                }while(循环条件)
      while循环和do..while循环的区别
          第一次条件满足是二者都一样,第一次条件不满足时,do..while会执行一次而while不会执行
          
  function(函数)
      函数,也称之为方法,先定义好以后可以重复使用的代码
      使用方法
          定义函数
              function 函数名(){
                  操作
              }
          调用函数
              在js内部写函数名()
              在html页面绑定点击事件,<e onclick="函数名()"></e> e可以是任何元素
     何时使用
         不希望打开页面立刻执行
         用户自己触发
         每一个独立的功能都封装为一个函数
     带有形参的函数
         function 函数名(形参,..){
             操作;
         }
         形参:其实就是一个变量,但是不需要赋值
         
         调用带形参的函数
             函数名(实参,..)
         注意:传参的时候,顺序不能乱,且实参和形参在数量和顺序上都得一一对应
         
         不带形参的函数用于执行一些固定操作
         带形参的函数根据传入的实参的不同来,执行操作结果略微不同
         
         循环和函数的区别
             循环几乎一瞬间就一一执行完毕
             函数需要调用才会执行