JavaScript_初识

1、Javascript

   1、什么是Javascript

      Javascript运行于Javascript【解释器/引擎】中的解释性脚本语言

 

      Javascript运行环境:

      1、Javascript解释器:NodeJS

      2、嵌入在浏览器中的内核(引擎)

 

   2、Javascript 发展

      1、1992年 Nombas公司 开发了一款脚本语言 ScriptEase ,可以嵌入在网页中

      2、1995年 Netscape公司 为 Navigator2.0浏览器开发了一款脚本语言 LiveScript ,为了赶时髦 将其命名为 Javascript。Javascript与Java没有一点关系

      3、1996年,Microsoft ,为了IE3.0,发布了一个Javascript克隆版本 JScript

      4、1997年 Javascript1.1 作为草案提交给了 ECMA(欧洲计算机制造商协会) --> ECMA-262标准 -->ECMAScript

 

 

      Javascript (JS)的组成:

      1、核心(ECMAScript,ES)

      2、文档对象模型(DOM,DocumentObject Model)

      3、浏览器对象模型(BOM,BorowserObject Model)

 

      Javascript特点

      1、任何编辑工具都可以编写Javascript,语法类似于Java,C,...

      2、无需编译

      3、弱类型语言

         由值来决定数据类型

 

          强数据类型:由数据类型 决定值

      4、基于对象的编程语言

         万物皆对象

 

     

      Javascript的用途

      1、客户端Javascript

         浏览器中运行

 

          1、客户端数据计算

          2、表单验证

             非空验证

             数据范围验证

          3、浏览器事件的触发和处理

          4、网页特效制作

          5、服务器的异步数据提交(ajax)

      2、服务器端Javascript

         1、分布式运算

          2、实时服务器

          3、窗口应用

          4、网络应用

 

2、使用Javascript

   1、浏览器内核

      负责页面内容的渲染,由两部分组成:

      1、内容排版引擎 -- 解析 HTML 和 CSS

      2、脚本解释引擎 -- 解析 Javascript

     

      浏览器             内核    内容引擎    脚本引擎

      Microsoft IE       Trident  --         Chakra

      Mozilla Firefox    Gecko    --        Monkey系列

      Apple Safari       Webkit  Webcore     Nitro

      Google Chrome      Webkit  Webcore       V8

      Opera              Presto    --        Carakan

      Opera(2013 -)      Webkit  Webcore       V8

   2、Javascript运行环境

      1、安装独立的Javascript解释器-- NodeJS

      2、浏览器内核嵌入的解释器运行

         1、在console中输入脚本运行

          2、将JS脚本嵌入在HTML页面

             1、html元素的事件完成

             2、<script></script>元素中编写JS代码

                <script></script>可以出现在页面的任何一个位置处,只能包含Javascript代码

             3、外部的脚本文件

                1、创建独立的***.js 的脚本文件

                2、在页面的任何位置 对 js文件进行引入

                   <scriptsrc="***.js"></script>

 

3、Javascript代码调试

 

 

 

运算符和表达式:

 

程序:人的想法在计算机中的执行

运算符:程序中模拟人想法的符号

表达式:由数据,变量和运算符组成的公式

        也叫语句

表达式的执行过程:从左向右读

       边读边用变量中的值替换变量所在位置

       再开始执行

       最后,表示都会返回一个值,作为结果

    注意:Chrome控制台中默认输出最后一个表达式的返回值

 

1. 算数运算:+ - * / %

    隐式转换:默认所有类型都转为number,

        特殊:+运算中,有字符串,都变为字符串,+运算变为字符串拼接

    %:模运算,取余数:

       m%n,m除以n,取除不尽的余数部分

      何时使用:1. 判断能否被整除时

              2. 取余数,余数不可能>除数

2. 关系运算:>  <   >=  <=  !=   ==

         做比较,做判断

            结果只可能时true/false

     隐式转换:默认都转为number,再比较

           如果参与比较的*都*是字符串,则按位PK每个字符的unicode号。如果前几位都相等,就比长度。

 

    特殊关系运算:

   1.判断是不是NaN:不能用==判断

         var bool=!isNaN(num)

         何时使用:判断num是不是数字

           如果num是数字,或可以隐式转为数字,返回true

           如果num不是数字,或无法隐式转为数字,返回false

      2. null 和 undefined:底层其实一样

         null==undefined 返回true

         全等===:类型相同,且数值相等

                 不带隐式转换

         问题:如果参与比较的是不同类型,就要手动强制转换再比较。

         何时使用:区分null和undefined

                  或确实需要不带隐式转换

 

3. 逻辑运算:将多个关系运算联合得出最终结论。只可能返回true/false

   隐式转换:默认都转为Boolean类型

   何时使用:多个条件综合得出结论时

    && : "而且",两个条件必须都满足时才为true

         只要任意一个条件为false,整个结果为false

    || : "或者",只要一个条件满足就返回true

         除非所有条件都为false,整个结果才为false

    ! : "不/不是",用于颠倒一个判断的true和false

 

  ***短路逻辑:如果前一个条件已经可以得出最终结论,则后续条件*不再执行*!

    利用短路逻辑时,逻辑运算不一定都返回true/false

    &&:1个条件,一件事,满足就做,不满足就不做

        if(条件){事}

        利用短路逻辑: 条件&&(事)

             何时使用短路代替if:只有操作步骤简单时。

        强调:&&后的语句,一般用()包裹

    ||:在两个值之间二选一使用,相当于默认值/备用值

        值1||值2 : 如果值1有效(Boolean(值1)为true)

                      就使用值1,否则使用值2作为备用

    鄙视题:alert(4&&5);//5

           alert(4||5);//4

          alert(0&&5);//0

           alert(0||5);//5

 

4. 位运算:移动数据的二进制位置

       左移:m<<n 读作m左移n位,相当于m* 2的n次方

       右移:m>>n 读作m右移n位,相当于m/ 2的n次方

       无符号右移0位: m>>>0 相当于取整!

 

5. 扩展赋值运算:修改变量中的值,再存回变量中

         简写:一句话实现2个操作:计算并赋值

     包括:+= -= *=/= %=

      仅以+=: a=a+5;都要简写为a+=5; 也称累加

      以此类推: a=a-5;简写为: a-=5;

                a=a*5; 简写为: a*=5; 也称累乘

 

     更简化:如果只是累加1或累减1

              a=a+1 可简写为: a++;

              a=a-1 可简写为: a--;

  ****仅以++为例:可前可后

        如果单独一句话,写前写后都一样

        如果++参与复杂表达式中:

           相同点:变量中的值,总是被+1

           不同点:前++,返回加1后的*新*值

                   后++,返回加1前的*旧*值

 

 

 

 

 

1、语法规范

   1、语句

      被Javascript引擎所解释执行的一句代码

      组成:

           表达式、关键字、运算符

           

            运算符:+,-,*,/,%,> ....

            关键字:var

            表达式:由一个或多个运算符以及一个或多个操作数组成的。 如:1+2,

      特点:以分号表示结束

            console.log();

             document.write();

             window.alert();

      习惯:一行只写一条语句

            i++;

      注意:严格区分大小写

            console.log();

             console.Log();

      2、注释

         单行注释://

          多行注释:/* */

             /*

                  /*

                    

                    */

            

             */

 

             /*

             console.log();

             /*window.alert();

             document.write()*/

             console.log();*/

2、变量

  

   内存 : 临时性保存据算计程序在【运行过程中】要用到的数据。

  TB->GB->MB->KB->B->bit

   8bit = 1B

   1024B=1kb

   Javascript

 

 

   硬盘 : 永久性保存数据

 

 

  0x000000000000000000a13247aaccxx

 

   1、什么是变量

      就是内存中的一段空间,用于保存程序运行过程中要用到的数据。就是存储数据的容器。

   2、什么是变量名

      内存空间的一个别名,为了方便记忆。即变量的名字。

 

  

   3、变量的声明

      到内存中开辟一段空间用于保存数据

      语法:

           var 变量名称;

            eg:

              声明一个变量,保存名称

              var name;

              声明一个变量,保存年龄

              var age;

           

       赋值:将数据保存进变量

             运算符:= 

                      赋值运算符

              语法:

              变量名=值;

              name="张无忌";

              age=58.5;

 

              ****

              var name;

              name="张无忌";

 

         初始化:声明变量并赋值

             var 变量名称=值;

 

         注意:没有被赋值的变量自动取值为undefined

 

         var name;

         var age;

         var hobby;

 

         一条语句中声明多个变量:

         var name,age,hobby;

         var name="张三丰",age=30;

      4、变量名命名规范

         1、要求

             1、不允许使用关键字以及保留关键字命名

                标准关键字:

                eg : var , function , if , for,true,false ...

                保留关键字:

                class,int,float,double ... ...

          2、命名规范

             1、可以包含字母、数字、下划线 _、$

             2、不能以数字开头

                var name;

                var name1;

                var 1name;错误

             3、不允许重复

             4、尽量见名知意

                var name;

                var age;

 

                var a,b,c,d,....aa,ab,ac,ad;

                var xingming,nianling;

             5、推荐采用

                  匈牙利命名法

                        控件缩写+功能

                        txtName

                        rdoGender

                        chkHobby

                        selCity

                    下划线命名法

                        _功能名称

                        _name;

                        _age;

                    驼峰命名法

                      如果变量名称由多个单词组成,第一个单词全部小写,第二个单词开始,首字符变大小

                      userName

                      txtusernmae --> txtUserName

      5、变量使用注意问题

         1、未初始化变量的使用

             只定义未赋值,值为undefined

             未定义,使用,错误,not defined

          2、在可能的情况下,声明变量时尽量初始化

             var age=10;

             var name="张三";

             var isHappy=true;

          3、将变量的声明和赋值分开操作

             var name;

             var age;

             ..........

             ..........

             name="";

             age=18;

          4、对变量进行的存取操作

             1、设置变量的值(赋值,存)

                 =

                   var name="张三丰";//张三丰

                   name="张无忌";//张无忌

                   name+="殷素素";//张无忌殷素素

                   name = name +"张翠山";//张无忌殷素素张翠山

 

                   name =name+""; ==> name+="";

 

                   "张无忌"="张翠山"+"殷素素";//错误

 

                   特殊:

                      var i=10;

                      i++;

                      ++i; ==> i=i+1;

                   注意:赋值时,=的左边一定是变量

             2、获取变量的值(取值)

                 var uname="张无忌";

                   console.log(uname);

 

                   var newName = uname;

                   uname : 取值操作(=右边使用)

                   newName : 赋值操作(=左边使用)

 

        汉堡名称:香辣鸡腿堡

         配餐名称:薯条

         饮料名称:Cola

3、运算符

   1、算数运算符

      +,-,*,/,%

      %:取余(模),计算两个数字相除后的余数

        5%2 结果为 1

         3%5 结果为 3

 

         常用场合:

            1、获取数字的最后一位

               1234

               1234%10=123 ... 4

               1234%100 = 12 ... 34

             

            2、判断奇偶性 或 判断 是某数字的倍数

               58 % 2 结果是否为 0?

 

 

               78 是 3的倍数吗??

               78 % 3 结果是否为 0 ?

         + :

            1、求和:数字类型的数值求和

            2、"" 与 +联用 ,作用是追加

               "张无忌" + 123 结果为:张无忌123

               123 + "张无忌" 结果为:123张无忌

 

               12+25 结果为:37

 

               "12"+25 结果为:1225

               '12'+25 结果为:1225

         注意:由算数运算符 与 操作数 组成的表达式,称为 算数表达式

4、常量的使用

   1、什么是常量

      声明好之后,在程序运行过程中,不允许被修改的数据,称之为常量

   2、目的

      防止用户在误操作情况下,修改了 不允许 被更改的数据

      var pi = 3.14;

      pi = 3.15;

   3、适合声明成常量的数据

      1、常理型数据

         pi : 3.14

          Jan : 31

          ...

      2、根据业务需求 来定义

         max : 500

   4、语法

      通过 const 关键字声明

      const 常量名=值;

      常量名称:通常使用大写字母表示

        

         const PI=3.14;

 

      定义一个圆的半径 ,计算该圆的周长和面积

      周长:2 * pi *r

      面积:pi * r *r

 

5、数据类型

   1、什么是数据类型

      保存在内存中的数据的类型,根据不同的类型内存中所开辟的空间也不一样

   2、数据类型

      1、原始类型 (基本类型)

         1、number 类型

             数字

             可以表示 32 位(4字节)的整数,或64位(8字节)的浮点数

             浮点数:小数

 

             var age;

             age=12; //number

             age=24.5;//number

 

          2、string 类型

             字符串

             一系列的文本数据

             注意:赋值时,必须使用 " " 或 ' ' 扩起

             var name="张三丰";//string

             var age = "12"; //string

 

             特殊字符,可以通过转移字符实现

             "Hello World"

             console.log(""HelloWorld"");错误

             \ 作为开始

               \" : 表示一个 "

               \' : '

               \n : 换行

               \t : 制表符

               \\ : \

        

               console.log("Hello World");

          3、boolean 类型

             布尔

             只表示 肯定(真)  或  否定(假)的数据

             值:true(真) 和 false(假)

             使用场合:作为程序的条件(判断、循环)

             在与 number 类型做运算时,true=1,false=0

          4、null 类型

             空

          5、undefined 类型

             未定义

             表示 不存在的数据

      2、引用类型

         Object

          Number

          Boolean

          String

          Date

1、数据类型转换

2、函数

3、分支结构

*******************************

1、数据类型转换

   数据类型:number,string,boolean,null,undefined

   var a = 123;

   var b = "123";

   var c = 1.23;

 

   var result = b +56; //179

 

   1、什么是数据类型转换

      允许数据在各个类型之间灵活的转变

   2、隐式转换

      不需要认为参与,由程序自动完成

      +

      var a = "123";

      var b = 56;

      var result = a + b; //12356

 

      通过 typeof(参数) 函数帮助查看指定数据的类型

 

      NaN : Not a Number

      isNaN() :

         isNaN("abc") :true

          isNaN(123) : false

   3、强制数据类型转换

      转换函数

      1、toString()

      var a = 123;

      a.toString();

 

      var b = ""+a;//string

      var c = a+"";//string

 

      2、

         "123"

          "Hello World"

 

          1、parseInt(参数)

              碰到第一个非数字的字符,停止转换

              如果第一个字符就是非数字的,结果为NaN

              parseInt("123"); --> 123

              parseInt("123ABC"); --> 123

              parseInt("123.456"); -->123

              parseInt("ABC123"); --> NaN

          2、parseFloat(参数)

             将字符串转换为小数

       3、弹出一个输入框

          var num =window.prompt("请输入xxxx",0);

           var num = prompt("请输入xxxx",0);

2、函数

   函数(function),也叫方法(method),或过程(procedure)

   1、什么是函数

      是一段被【预定义】好,并且可以被反复使用的代码块。

      代码块:允许包含多条语句。

      是一个独立的功能体。

 

      console.log();

      alert(); -->alert("弹出内容");

      document.write();

      parseInt(xxx);

      parseFloat()

      prompt()

   2、定义函数

      定义函数的过程:封装

      1、语法

         关键字:function

          function 函数名(){

                   //多条语句

          }

 

        

          定义一个函数,功能为, 在控制台上打印输出 Hello World

   3、调用函数

      直接使用 函数名() 进行调用

      1、<script></script>任何一个位置处

      2、通过HTML元素事件来调用

   4、参数

 

      //制作一个函数 做 10+ 10的运算

        function add(){

                   console.log(10+10);

         }

 

         function add1(){

                   console.log(100+200);

         }

 

         function add1(){

                   console.log(1000+2000);

         }

 

         语法:function 函数名(参数列表){

                  参数列表:用,隔开的多个变量名(参数名)

               }

 

               function zhaZhiJi(fruit){

                   console.log("传递过来的水果是:"+ fruit);

               }

*************************************************

1、分支结构

   1、运算符 - 比较运算符

      > , < , >= , <=, == , !=

 

      >= : 3 >= 5 False

           5 >= 5 True

      == : 判断等于,判断两个操作数,是否相等,相等则为true,不等则为false

           3 == 5 : False

            3 == 3 : True

      != : 3 != 5 : True

           "a" !="a" :False

      以上运算符的返回值 全部为 boolean 类型

   2、流程图

      通过流程图表示程序的走向

      1、矩形:长方形,表示数据的处理

      2、平行四边形:表示输入和输出

      3、菱形:表示条件判断

  

   3、程序的流程控制

      程序=数据结构 + 算法;

         数据结构:程序运行中所需要的数据元素

          算法:将要做的事情通过一系列的逻辑串起来

 

      任何程序或算法都有结构:

         1、顺序结构

             代码从头到尾除注释以外,按照出现的顺序去执行

          2、选择(分支)结构

             根据条件判断哪一块的程序要被执行,哪一块的程序不被执行

          3、循环结构

             根据条件判断,反复的执行某一段程序

   4、if语句

      满足某个条件时,执行某些操作,不满足则不执行

      语法:

         if(条件){

                   //某些操作

          }

          当条件结果为 true 时,则执行if语句块中的语句

          当条件结果为 false时,则不执行if语句块中的语句

      1、由比较运算符 组成的表达式 称为:条件表达式、逻辑表达式

      2、if 条件中,如果不是boolean类型表达式,那么进行隐式转换

         以下值中,都会默认转换为false

          if(0){}

          if(0.0){}

          if(null){}

          if(undefined){}

          if(NaN){}

     if(""){}

        

 

          var a = prompt("请输入一段话:");

          if(a){

                   //语句块;

          }

       3、if 语句块 {} 的问题

          当if语句块中【只有一条语句】时,{}可以省略

           if(a){

                   console.log("Success!");

           }

           等价于

           if(a)

                   console.log("Success!");

 

 

    5、if - else结构

         语法:

             if(条件){

                   语句块1

             }else{

                   语句块2

             }

         判断条件

            如果条件的值为 true ,则执行语句块1

            如果条件的值为 false,则执行语句块2

    6、输入 考试成绩

       如果 成绩 等于 100分 , 奖励一台兰博基尼

       如果 成绩 大于等于90 分,奖励一台奥迪

       如果 成绩 大于等于80 分,奖励一台奥拓

       如果 成绩 大于等于70 分,奖励一台摩托车

       如果 成绩 大于等于60 分,奖励一台自行车

       否则 ,提示 ,该干啥干啥去

 

       1、多重if结构

          在一套完整结构中,允许判断多个条件,最终,最多只能选择一个条件去运行

 

           语法:

            if(条件1){

                   语句块1;

            }else if(条件2){

                   语句块2;

            }else if(条件3){

                   语句块3;

            }else{

                   //以上条件都不满足的时候,最终执行的语句块(此块可选);

            }

 

            if(){

           

            }

            if(){

           

            }

            if(){

           

            }

克莱托指数:

   公式:体重(kg) / 身高(m) * 身高(m)

       20以下 :偏瘦

       20 - 25 : 正常

       25(不包括)以上 : 偏旁

 

 

1、克莱托指数

   公式 :体重(kg) / (身高(m) * 身高(m))

   < 20 : 偏瘦

   > 20 <25 : 正常

   > 25 : 偏旁

 

   步骤:

         1、输入体重(weight)  、 身高(height) 并且保存

          2、计算克莱托指数(klt)

          3、判断 klt 的范围

          4、使用多重if结构完成判断

2、编写 “个人所得税计算器”函数

   计算个税的方法:

   3500 以下免征

   3500 ~ 5000 部分 缴纳 3%

       4000 : 500元 缴纳 3%

       8000 : 1500元 缴纳 3% ,剩余(3000元)的按下个梯度算

 

       45

 

   5000 ~ 9000 部分 缴纳 10%

         8000 : 1500元 缴纳 3% ,剩余(3000元)的按10%缴纳

         12000 : 3500 以下免征 ,1500元 3% , 4000元 10%,剩余3000元按下个梯度算

 

         400

   9000 以上部分 缴纳 20%

        12000 : 3500 以下免征 ,1500元 3% , 4000元 10%,剩余3000元缴纳20%

 

         600

*******************************************************

1、循环结构

   问题:

      1、在控制台上打印输出1句Hello World

         console.log("HelloWorld");

      2、在控制台上打印输出10句Hello World

         console.log("HelloWorld");

          console.log("Hello World");

          console.log("Hello World");

          console.log("Hello World");

          console.log("Hello World");

          console.log("Hello World");

          console.log("Hello World");

          console.log("Hello World");

          console.log("Hello World");

          console.log("Hello World");

      3、在控制台上打印输出1000句Hello World

      4、将 1000 句 Hello World 更改为 "世界 你好!"

      5、输出格式 "第n遍 世界 你好" n (1~1000)

 

 

      以上部分内容 在Javascript中,完全可以通过 "循环结构" 来搞定

      生活中的循环:

        1、活着

         2、上学、上班

         3、地球 自转、公转

 

         特点:

              1、做重复性 或 相似性的操作

              2、都会有显示的结束

     

      什么是循环:循环,重复的执行相同 或 相似的操作

      循环的基本要素:

         1、循环体 : 相同或 相似的操作

          2、循环条件:循环的次数,可以表示循环的开始或结束

 

          没有结束的循环:称之为 死循环

 

  

   1、while循环

      1、语法结构

         while(条件判断){

                   //循环体

          }  

 

          条件为 true 时,则执行一遍循环体中的所有语句;再回来判断条件,若条件为true,则再执行循环体 ... 直到 条件为 false时,则结束循环

      2、循环实现

         1、在控制台上打印输出10句Hello World

             循环条件:从第1遍开始打印 , 到第10遍结束

             循环体:console.log("Helloworld");

 

             注意:一定要去更新循环条件,否则容易引发死循环

          2、将 1 - 100之间所有的数字 进行累加求和

             循环条件:从 1 开始  到  100 结束

             循环体:

                  循环条件的 变量要参与到循环操作中来

                    循环变量 就可以表示 1-100之间的每一个数字

 

                   最终:将 循环变量  累加即可

 

                    更新循环条件

          3、将 1-100之间 所有的 奇数 进行累加求和

             循环条件:从 1 开始  到  100 结束

             循环体:

                 1、判断 i 的奇偶性,如果为奇数, 则累加到sum之后

                   2、循环条件(循环变量)以2递增

       3、循环 流程控制

          提前终止循环结构

           1、break语句

              作用:break 用在循环体中,用于退出循环

              程序碰到 break 语句后,break后面的循环体操作都不会被执行,并且程序的流程会跳到循环结构以外的下一条语句去执行

           2、使用场合:

              在不确定循环次数的条件下,可以随时终止循环

              while(true){

                   if(输入内容 =="exit"){

                            break;

                   }

              }

 

            

         随机数:  Math.random() 表示一个随机数(0-1)

        

         总结:

             在确定循环次数的条件下 , while流程

                  

             1、声明循环条件 var i=1;

             2、编写循环体while(i<=10){}

             3、在循环体 更新循环条件(循环变量) i++

 

   2、for循环

      解决问题:与 while循环基本一致,确定了循环次数的条件下使用

      语法:for(表达式1;表达式2;表达式3){//循环体}

            表达式1 :声明循环条件

             表达式2 :满足循环的条件 ==> while(条件)

             表达式3 :更新循环变量

 

      通过 while 循环打印 10遍 Hello World

      var i=1;//表达式1

      while(i<=10 //表达式2 ){

         console.log("HelloWorld");

         i++; //表达式3

      }

 

      ==> for循环结构

      for(var i=1;i<=10;i++){

         console.log("HelloWorld");

      }

 

      for循环的流程:

      1、计算 表达式1 的值

      2、计算 表达式2 的值,如果为true则执行循环体,否则退出。

      3、执行循环体

      4、计算 表达式3 的值

      5、计算表达式2 ,如果为true,继续执行循环体,否则退出

 

      请输入一个数字:5

      1*5=5  2*5=10 3*5=15  4*5=20  5*5=25

      console.log("");

 

      for循环的特殊用法:

      1、表达式1位置可以为空

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

 

          如果省略表达式1的话,那么需要在循环外面,对表达式1进行声明

          for(var i=1;i<10;i++){

                   //

          }

                  

 

 

          var i=1;

          for(;i<10;i++){

                   //

          }

      2、省略表达式2

         for(var i=1;;i++){

                   //死循环

          }

          注意:如果省略了表达式2的话,需要在循环体内,将其内容补充完整

          for(var i=1;;i++){

                   if(i > 10){

                            break;

                   }

          }

      3、省略表达式3

         for(var i=1;i<10;){

                   //死循环

          }

          注意:如果省略表达式3,要么在循环体重补充表达式3,要么 增加条件允许循环退出

          for(var i=1;i<10;){

                   ...

                   i++;

          }

 

          for(var i=1;i<10;){

                   if(条件){

                            break;

                   }

          }

       4、for(;;){

                  

          }

 

 

           var i=1;

           for(;;){

                   if(i > 10){

                      break;

                   }

                   console.log("HelloWorld");

                   i ++;

           }

       5、表达式1,表达式3 位置处内容多样化

          多样化:

             表达式1的位置处,可以一次性声明多个变量,多变量之间用 , 分隔

             表达式3的位置处,可以一次性更改多个循环变量, 用 , 分隔

             0 + 6 = 6

             1 + 5 = 6

             2 + 4 = 6

             3 + 3 = 6

             ....

             6 + 0 = 6

 

2、数组(创建、访问)

   问题:保存学员的姓名 ?

       var name1 = "";

       var name2 = "";

       ..

       var name589 ="";

 

       多数据的保存 和 管理的问题 ?

   1、数组

      多个元素组成的集合,可以在一个变量中存储多个数据值

 

      数组中元素的数据类型可以相同,也可以不同

      所有元素都按照【线性顺序】排列

      线性顺序:

         除第一个元素外,每个元素都有唯一的一个前驱元素

          除最后一个元素外,每个元素都有唯一的一个后继元素。

 

      数组是通过下标(索引)来标识每个元素的位置,下标时从 0 开始 , 最大值 数组元素个数 - 1

   2、数组的初始化

      1、一维数组的使用

         1、声明数组

             1、var 数组名 =[];//声明一个不包含任何元素的空数组

             2、var 数组名 =[元素1,元素2,元素3];//声明一个包含3个元素的数组

               eg : var names = ["张三丰","张翠山","张无忌"];

             3、var 数组名 =new Array();

             4、var 数组名 =new Array(元素1,元素2,元素3);

               eg : var girls = new Array("赵敏","周芷若","小昭");

          2、访问数组元素

             无论设置还是获取,都与数组元素的 索引 相关

             1、设置数组元素的值

                var names = ["张三丰","张翠山","张无忌"];

                语法: 数组名[索引值]=值;

 

                names[0] = "ZSF"; //修改数组中,第一个元素的值为 ZSF

 

                names[3] = "谢逊"; //追加新元素(指定索引的元素不存在时,则追加)

             2、获取数组元素的值

                语法:数组名[索引值];

                     var name = names[0];

             3、获取数组长度

                获取数组中元素的个数,即数组长度

                属性:length

                使用方式:数组名.length

         3、循环遍历数组元素

            遍历数组:通过循环的方式,获取数组中的每一个元素

            实现方式:使用 for 循环、数组的length属性、元素的索引

             var names = ["张三丰","张翠山","张无忌"];

             for(var i=0;i<names.length;i++){

                   console.log(names[i]);

             }

            

             //倒序

             for(var i=names.length-1;i>=0;i--){

                   console.log(names[i]);

             }

1、DOM概述

   1、DHTML

      Dynamic HTML :动态的HTML

      DHTML 不是技术 标准 规范,是将现有的网页技术(html,css,javascript)进行整合运用。通过该理念,要求能在 网页被 下载后仍然能够实现 “实时变换页面元素”的效果

      DHTML功能:

        1、动态改变页面元素

         2、与用户进行交互,从而提升用户体验

         3、DHTML 包含:BOM 与 DOM

 

         DHTML = HTML + CSS +Javascript

   2、BOM 与 DOM

      1、BOM

         Browser Object Model 浏览器对象模型

          直接操作和访问浏览器窗口的,比如 :历史记录、地址栏信息、状态栏信息。能够让Javascript 与 浏览器 产生交互行为。

          BOM 没有相关的标准的,但所有的浏览器都支持。

      2、DOM

         Document Object Model 文档对象模型

          直接操作 html 文档,  与浏览器无关

          定义了访问和操作html文档的标准方法

          由W3C定义相关标准

   3、DOM概述

      W3CDOM标准三部分:

         1、核心DOM :针对任何结构化文档(html,xml) 的标准模型

          2、XML DOM :针对XML文档的标准模型,只能操作XML文件

          3、HTML DOM :针对 HTML文档的标准模型,只针对HTML文档

 

          页面被加载时,浏览器会自动创建页面的文档对象模型

          HTML页面中所有的节点(标记、属性、文本)组成一个文档树(DOM树,节点树)

 

          document对象 是 DOM树的根(根对象)

        

       DOM发展过程:

         共三级:

            DOM 1级 :定义基本的顶层操作方法

            DOM 2级 :

                 Core :扩展了更多的方法和属性

                   Style :允许操作HTML元素的样式

                   Traversal andRange :遍历DOM树的方法

                   Event :定义标准化事件,IE8不支持

           DOM 3级 :扩充了新方法、属性、新类型

     4、DOM树

        根 : document

         文档中的 元素、属性、文本、注释都是树中的节点

         元素(HTML) :Element Node

         文本 :TextNode

         属性 :Attribute Node

         注释 :CommentNode

2、DOM操作

   1、选取元素

      根据DOM提供的方法,获取页面中的一个/一组元素

      1、通过ID获取元素

         document.getElementById("元素id值");

          <a href="http://www.baidu.com"id="anchor">百度</a>

 

          var a =document.getElementById("anchor");

      2、通过 标签名 获取一组元素

        node.getElementsByTagName("标签名");

          node : 已经获取的元素节点对象(DOM对象)

          注意:返回值为数组

      3、通过 class 名获取一组元素

         node.getElementsByClassName("className");

          注意:返回值为数组

        

         .bgColor{

                   background:red;

         }

 

         <divid="d1"></div>

         document.getElementById("d1").className="bgColor";

       4、节点关系

          属性:

                   父节点:parentNode

                   子节点:

                      获取第一个子节点:firstChild

                      获取最后一个子节点:lastChild

                      获取所有子节点:childNodes

 

                      获取第一个元素节点:firstElementChild

                      获取最后一个元素节点:lastElementChild

 

                      注意:属性节点,不能通过子节点的方式直接获取到的。

                   兄弟节点:

                      previousSibling : 上一个兄弟节点

                      nextSibling : 下一个兄弟节点

***********************************************

1、读取和修改节点

   1、元素的内容

      <div>

         <p>....</p>

      </div>

      <div><h1>普通文本</h1></div>

 

      属性:

         1、控制元素节点的HTML内容

             属性:innerHTML

                   可以 获取 、设置

 

                     var div =document.getElementById("d1");

 

                     div.innerHTML="<h1>zzzz</h1>";

                     var content = div.innerHTML;

          2、控制元素节点的文本内容

             属性:textContent

                     可以 获取 、设置

 

                     innerText

                     可以 获取 、设置 文本内容

                     不足:Firefox 不支持

   2、元素的属性

      <a id=""target="" href=""></a>

 

      属性 :属性集合(数组)

       属性名:attributes

              返回 NamedNodeMap数组对象

      1、读取属性

          1、element.attributes[index].value;

           2、element.attributes["属性名"].value ;

           3、element.getAttributeNode("属性名").value;

           4、element.getAttribute("属性名");

      2、修改/设置属性值

         1、element.setAttribute("属性名","值");

             问题:IE8 及以下浏览器 不支持

          2、element.setAttributeNode(属性节点对象);

            创建属性节点对象:

             var attrNode =document.createAttribute("属性名称");

             attrNode.nodeValue = "值";

      3、element.attrName

         元素.属性名 = 值'

          var value = 元素.属性名;

 

          注意:对 class 属性处理 必须通过 className属性操作

 

           

   3、元素的样式

      1、内联样式

         属性:style

          <a style="">百度</a>

          var a =document.getElementById("anchor");

           style对象中的属性名都是css样式属性名称经过变化的结果

           background-color  --> backgroundColor

           font-size --> fontSize

 

           style.变换后的样式名称

           a.style.fontSize="12px"

           a.style.backgroundColor="#e4393c";

 

           语法:

              元素.style.变换后的样式名称 = 值;

            var value = 元素.style.变换后的样式名称;

           注意:

             1、标准模式下,带单位的属性设置时,必须加单位。同时,取值时,返回的数据中也包含单位。

             2、使用该方式取值时,仅仅在内联样式下有效

      2、获取 计算的样式(内部、外部样式表的数据)

         除IE 外,其他所有浏览器都采用 DOM标准方法完成取值。

          IE 拥有自己的属性、方法

          DOM :

             document.defaultView.getComputedStyle(元素对象).样式属性;

          IE :

             元素对象.currentStyle.样式属性;

 

             if(元素对象.currentStyle){

                   //IE 方法

             }else{

                   //DOM 方法

             }

      3、修改样式表中的样式(内部、外部)

         1、获取 所有的 样式表对象

             var sheets = document.styleSheets;

             var sheet = sheets[0];

          2、获取样式表中所有的样式规则

             var ruels = sheet.rules;

          3、获得集合中包含目标属性的规则

             var rule = ruels[index];

          4、设置 样式规则中的样式属性

             rule.style.属性名=值;

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值