前端开发概述

什么是前端开发

前端开发也叫做web前端开发,它指的是基于web的互联网产品的页面(也可叫界面)开发及功能开发。

什么是互联网产品

互联网产品就是指网站为满足用户需求而创建的用于运营的功能及服务,百度搜索、淘宝、QQ、微博、网易邮箱等都是互联网产品。

前端需要的技术

UI设计师设计出来的页面样式效果图

把效果图布局成页面: HTML语言和CSS语言

页面功能的开发:javascript和一些框架

HTML语言

HTML概述

什么是HTML语言

HTML是 HyperText Mark-up Language 的首字母简写,意思是超文本标记语言,超文本指的是超链接,标记指的是标签,是一种用来制作网页的语言,这种语言由一个个的标签组成,用这种语言制作的文件保存的是一个文本文件,文件的扩展名为html或者htm,一个html文件就是一个网页,html文件用编辑器打开显示的是文本,可以用文本的方式编辑它,如果用浏览器打开,浏览器会按照标签描述内容将文件渲染成网页,显示的网页可以从一个网页链接跳转到另外一个网页。

HTML文档类型

xhtml 1.0 是html5之前常用的一个版本,不过目前html5已经基本取代了xhtml 1.0,在html5中增加了标签元素以及元素属性。

第一个HTML

<!DOCTYPE html>  <!-- 文档声明-->
<html lang="en">  <!-- 定义html文档的整体,en定义网页的语言为英文,定义为中文是zh-CN,没啥关系,一般作为分析统计用-->
<head> <!-- head标签负责对网页进行一些设置以及定义标题,设置包括定义网页的编码格式,外链css样式文件和javascript文件等-->
    <meta charset="UTF-8">
    <title>Title</title> <!-- 标题的内容会显示在标题栏-->
</head>
<body> <!--内编写网页上显示的内容 -->
注释: <!-- 这是一段注释 -->
什么是前端
</body>
</html>

HTML标签

标题标签

通过 <h1>、<h2>、<h3>、<h4>、<h5>、<h6>,标签可以在网页上定义6种级别的标题。6种级别的标题表示文档的6级目录层级关系,比如说: <h1>用作主标题,其后是 <h2>,再其次是<h3>,以此类推。搜索引擎会使用标题将网页的结构和内容编制索引,所以网页上使用标题是很重要的。

段落标签

段落标签: <p>标签定义一个文本段落,一个段落含有默认的上下间距,段落之间会用这种默认间距隔开

换行标签

代码中成段的文字,直接在代码中回车换行,在渲染成网页时候不认这种换行,如果真想换行,可以在代码的段落中插入<br> 或者<br |/>来强制换行

空格

代码中成段的文字,如果文字间想空多个空格,在代码中空多个空格,在渲染成网页时只会显示一个空格,如果想显示多个空格,可以使用空格的字符实体,代码如下:&nbsp;

在网页上显示 “<” 和 “>” 会误认为是标签,想在网页上显示“<”和“>”可以使用它们的字符实体,比如: 3 &lt; 5 &gt

html块标签

块元素 <div>: 表示一块内容,没有具体的语义,但是非常重要

行内元素<span> : 表示一行中的一小段内容,没有具体的语义

图像标签

<img>标签可以在网页上插入一张图片,它是独立使用的标签,它的常用属性有:

  • src属性 定义图片的引用地址
  • alt属性 定义图片加载失败时显示的文字,搜索引擎会使用这个文字收录图片、盲人读屏软件会读取这个文字让盲人识别图片,所以此属性非常重要。
<img src="images/pic.jpg" alt="产品图片" />

绝对路径和相对路径

像网页上插入图片这种外部文件,需要定义文件的引用地址,引用外部文件还包括引用外部样式表,javascript等等,引用地址分为绝对地址和相对地址。

  • 绝对地址:相对于磁盘的位置去定位文件的地址
  • 相对地址:相对于引用文件本身去定位被引用的文件地址

绝对地址在整体文件迁移时会因为磁盘和顶层目录的改变而找不到文件,相对路径就没有这个问题。相对路径的定义技巧:

  • “ ./ ” 表示当前文件所在目录下,比如:“./pic.jpg” 表示当前目录下的pic.jpg的图片,这个使用时可以省略。
  • “ ../ ” 表示当前文件所在目录下的上一级目录,比如:“../images/pic.jpg” 表示当前目录下的上一级目录下的images文件夹中的pic.jpg的图片

链接标签

<a>标签可以在网页上定义一个链接地址,它的常用属性有:

  • href属性 定义跳转的地址
  • title属性 定义鼠标悬停时弹出的提示文字框
  • target属性 定义链接窗口打开的位置
    • target="_self" 缺省值,新页面替换原来的页面,在原来位置打开
    • target="_blank" 新页面会在新开的一个浏览器窗口打开
<a href="#"></a> <!--  # 表示链接到页面顶部   -->
<a href="http://www.itcast.cn/" title="跳转的传智播客网站">传智播客</a>
<a href="2.html" target="_blank">测试页面2</a>

有编号列表

有序列表

在网页上定义一个有编号的内容列表可以用

  1. 配合使用来实现,代码如下:

    <ol>
        <li>列表文字一</li>
        <li>列表文字二</li>
        <li>列表文字三</li>
    </ol>
    
    无序列表

    在网页上定义一个无编号的内容列表可以用

    • 配合使用来实现,代码如下:

      <ul>
          <li><a href="#">新闻标题一</a></li>
          <li><a href="#">新闻标题二</a></li>
          <li><a href="#">新闻标题三</a></li>
      </ul>
      

      表格

      <table>标签:声明一个表格,它的常用属性如下:

      • border属性 定义表格的边框,设置值是数值
      • cellpadding属性 定义单元格内容与边框的距离,设置值是数值
      • cellspacing属性 定义单元格与单元格之间的距离,设置值是数值
      • align属性 设置整体表格相对于浏览器窗口的水平对齐方式,设置值有:left | center | right

      2、<tr>标签:定义表格中的一行

      3、<td>和<th>标签:定义一行中的一个单元格,td代表普通单元格,th表示表头单元格,它们的常用属性如下:

      • align 设置单元格中内容的水平对齐方式,设置值有:left | center | right
      • valign 设置单元格中内容的垂直对齐方式 top | middle | bottom
      • colspan 设置单元格水平合并,设置值是数值
      • rowspan 设置单元格垂直合并,设置值是数值

      表单

      表单用于搜集不同类型的用户输入,表单由不同类型的标签组成,相关标签及属性用法如下:

      1、<form>标签 定义整体的表单区域

      • action属性 定义表单数据提交地址
      • method属性 定义表单提交的方式,一般有“get”方式和“post”方式

      2、<label>标签 为表单元素定义文字标注

      3、<input>标签 定义通用的表单元素

      • type属性
        • type="text" 定义单行文本输入框
        • type="password" 定义密码输入框
        • type="radio" 定义单选框
        • type="checkbox" 定义复选框
        • type="file" 定义上传文件
        • type="submit" 定义提交按钮
        • type="reset" 定义重置按钮
        • type="button" 定义一个普通按钮
        • type="image" 定义图片作为提交按钮,用src属性定义图片地址
        • type="hidden" 定义一个隐藏的表单域,用来存储值
      • value属性 定义表单元素的值
      • name属性 定义表单元素的名称,此名称是提交数据时的键名

      4、<textarea>标签 定义多行文本输入框

      5、<select>标签 定义下拉表单元素

      6、<option>标签 与<select>标签配合,定义下拉表单元素中的选项

      注册表单实例:

      <form action="http://www..." method="get">
      <p>
      <label>姓名:</label><input type="text" name="username" />
      </p>
      <p>
      <label>密码:</label><input type="password" name="password" />
      </p>
      <p>
      <label>性别:</label>
      <input type="radio" name="gender" value="0" /> 男
      <input type="radio" name="gender" value="1" /> 女
      </p>
      <p>
      <label>爱好:</label>
      <input type="checkbox" name="like" value="sing" /> 唱歌
      <input type="checkbox" name="like" value="run" /> 跑步
      <input type="checkbox" name="like" value="swiming" /> 游泳
      </p>
      <p>
      <label>照片:</label>
      <input type="file" name="person_pic">
      </p>
      <p>
      <label>个人描述:</label>
      <textarea name="about"></textarea>
      </p>
      <p>
      <label>籍贯:</label>
      <select name="site">
          <option value="0">北京</option>
          <option value="1">上海</option>
          <option value="2">广州</option>
          <option value="3">深圳</option>
      </select>
      </p>
      <p>
      <input type="submit" name="" value="提交">
      <!-- input类型为submit定义提交按钮  
           还可以用图片控件代替submit按钮提交,一般会导致提交两次,不建议使用。如:
           <input type="image" src="xxx.gif">
      -->
      <input type="reset" name="" value="重置">
      </p>
      </form>
      

      CSS

      CSS概述

      为了让网页元素的样式更加丰富,也为了让网页的内容和样式能拆分开,CSS由此思想而诞生,CSS是 Cascading Style Sheets
      的首字母缩写,意思是层叠样式表。有了CSS,html中大部分表现样式的标签就废弃不用了,html只负责文档的结构和内容,表现形式完全交给CSS,html文档变得更加简洁。

      CSS基本语法及页面引用

      基本语法

      css的定义方法是:

      选择器 { 属性:值; 属性:值; 属性:值;}

      选择器是将样式和页面元素关联起来的名称,属性是希望设置的样式属性每个属性有一个或多个值。代码示例:

      /*
          css注释 ctrl+shift+"/"
      */
      
      
      div{ 
          width:100px; 
          height:100px; 
          color:red 
      }
      

      css页面引入方法

      1、外联式:通过link标签,链接到外部样式表到页面中。

      <link rel="stylesheet" type="text/css" href="css/main.css">
      

      2、嵌入式:通过style标签,在网页上创建嵌入的样式表。

      <style type="text/css">
          div{ width:100px; height:100px; color:red }
          ......
      </style>
      

      3、内联式:通过标签的style属性,在标签上直接写样式。

      <div style="width:100px; height:100px; color:red ">......</div>
      
      <!DOCTYPE html>
      <html lang="zh-CN">
      <head>
          <meta http-equiv="content-Type" charset="UTF-8">
          <meta http-equiv="x-ua-compatible" content="IE=edge">
          <style>
              #d2 {color: green}
          </style>
          <link rel="stylesheet" href="style.css">
          <title>Title</title>
      </head>
      <body>
      <div id="d1" style="color: red">我是一个div标签</div>
      <div id="d2">我是一个div</div>
      <div id="d3">我是一个div</div>
      </body>
      </html>
      
      /*
      这是 测试CSS引入的一个文件
      */
      
      #d3 {color: blue}
      

      CSS文本设置

      常用的应用文本的css样式:

      • color 设置文字的颜色,如: color:red;

      • font-size 设置文字的大小,如:font-size:12px;

      • font-family 设置文字的字体,如:font-family:'微软雅黑';

      • font-style 设置字体是否倾斜,如:font-style:'normal'; 设置不倾斜,font-style:'italic';设置文字倾斜

      • font-weight 设置文字是否加粗,如:font-weight:bold; 设置加粗 font-weight:normal 设置不加粗

      • line-height 设置文字的行高,设置行高相当于在每行文字的上下同时加间距, 如:line-height:24px;

      • font 同时设置文字的几个属性,写的顺序有兼容问题,建议按照如下顺序写: font:是否加粗 字号/行高 字体;如: font:normal 12px/36px '微软雅黑';

      • text-decoration 设置文字的下划线,如:text-decoration:none; 将文字下划线去掉

      • text-indent 设置文字首行缩进,如:text-indent:24px; 设置文字首行缩进24px

      • text-align 设置文字水平对齐方式,如text-align:center 设置文字水平居中

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
          <style>
              #t1 {color: green;
                  font-size:13px;
                  font-family: '微软雅黑';
                  font-style:italic;
                  font-weight:bold;
                  line-height: 24px;
                  text-decoration:underline;
                  text-align: center;
              }
      
          </style>
      
          <div id="t1">为了让网页元素的样式更加丰富,也为了让网页的内容和样式能拆分开,CSS由此思想而诞生,CSS是 Cascading Style Sheets
      的首字母缩写,意思是层叠样式表。有了CSS,html中大部分表现样式的标签就废弃不用了,html只负责文档的结构和内容,表现形式完全交给CSS,html文档变得更加简洁。</div>
      
      </head>
      <body>
      
      
      </body>
      </html>
      

      css颜色表示法

      css颜色值主要有三种表示方法:

      1、颜色名表示,比如:red 红色,gold 金色

      2、rgb表示,比如:rgb(255,0,0)表示红色,

      RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。

      3、16进制数值表示,比如:#ff0000 表示红色,这种可以简写成 #f00,而16进制数值表示则就是将rgb的数值转换成3个16进制数来进行表示

      css选择器

      常用的选择器有如下几种:

      1、标签选择器

      标签选择器,此种选择器影响范围大,建议尽量应用在层级选择器中。
      举例:

      *{margin:0;padding:0}
      div{color:red}   
      
      
      <div>....</div>   <!-- 对应以上两条样式 -->
      <div class="box">....</div>   <!-- 对应以上两条样式 -->
      
      2、id选择器

      通过id名来选择元素,元素的id名称不能重复,所以一个样式设置项只能对应于页面上一个元素,不能复用,id名一般给程序使用,所以不推荐使用id作为选择器。
      举例:

      #box{color:red} 
      
      <div id="box">....</div>   <!-- 对应以上一条样式,其它元素不允许应用此样式 -->
      
      3、类选择器

      通过类名来选择元素,一个类可应用于多个元素,一个元素上也可以使用多个类,应用灵活,可复用,是css中应用最多的一种选择器。
      举例:

      .red{color:red}
      .big{font-size:20px}
      .mt10{margin-top:10px} 
      
      <div class="red">....</div>
      <h1 class="red big mt10">....</h1>
      <p class="red mt10">....</p>
      
      4、层级选择器

      主要应用在选择父元素下的子元素,或者子元素下面的子元素,可与标签元素结合使用,减少命名,同时也可以通过层级,防止命名冲突。
      举例:

      .box span{color:red}
      .box .red{color:pink}
      .red{color:red}
      
      <div class="box">
          <span>....</span>
          <a href="#" class="red">....</a>
      </div>
      
      <h3 class="red">....</h3>
      
      5、组选择器

      多个选择器,如果有同样的样式设置,可以使用组选择器。
      举例:

      .box1,.box2,.box3{width:100px;height:100px}
      .box1{background:red}
      .box2{background:pink}
      .box2{background:gold}
      
      <div class="box1">....</div>
      <div class="box2">....</div>
      <div class="box3">....</div>
      
      6、伪类及伪元素选择器

      常用的伪类选择器有hover,表示鼠标悬浮在元素上时的状态,伪元素选择器有before和after,它们可以通过样式在元素中插入内容。

      .box1:hover{color:red}
      .box2:before{content:'行首文字';}
      .box3:after{content:'行尾文字';}
      
      
      <div class="box1">....</div>
      <div class="box2">....</div>
      <div class="box3">....</div>
      

      Css的内容还有非常的多,包括模型,浮动,定位等等,但是这部分不是我们学习的重点,我们只需要学会什么是CSS,并且能够试着修改它的部分属性即可,我们已经有非常多优秀的前端开源框架,去做这部分的属性,提供给我们最编辑的使用方法,比如 layui、 elementUI等等,他们都提供了最简便的使用方式,让我们能够构建复杂的界面,layui更是面向后端服务器端开发者的框架。

      JavaScript

      JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互。 JavaScript是浏览器解释执行的,前端脚本语言还有JScript(微软,IE独有),ActionScript( Adobe公司,需要插件)等。

      前端三大块
      1、HTML:页面结构
      2、CSS:页面表现:元素大小、颜色、位置、隐藏或显示、部分动画效果
      3、JavaScript:页面行为:部分动画效果、页面与用户的交互、页面功能

      JavaScript嵌入页面的方式

      1、行间事件(主要用于事件)

      <input type="button" name="" onclick="alert('ok!');">
      

      2、页面script标签嵌入

      <script type="text/javascript">        
          alert('ok!');
      </script>
      

      3、外部引入

      <script type="text/javascript" src="js/index.js"></script>
      
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
          <script type="text/javascript" src="index.js"></script>
      </head>
      <body>
          <input type="button" name="" onclick="alert('ok!');">
          <script type="text/javascript">
          alert('ok!');
      </script>
      </body>
      </html>
      
      alert('ok!');
      

      变量

      JavaScript 是一种弱类型语言,javascript的变量类型由它的值来决定。 定义变量需要用关键字 'var'

       var iNum = 123;
       var sTr = 'asd';
      
       //同时定义多个变量可以用","隔开,公用一个‘var’关键字
      
       var iNum = 45,sTr='qwe',sCount='68';
      

      变量类型

      5种基本数据类型:
      1、number 数字类型
      2、string 字符串类型
      3、boolean 布尔类型 true 或 false
      4、undefined undefined类型,变量声明未初始化,它的值就是undefined
      5、null null类型,表示空对象,如果定义的变量将来准备保存对象,可以将变量初始化为null,在页面上获取不到对象,返回的值就是null

      1种复合类型:
      object

      javascript语句与注释

      1、一条javascript语句应该以“;”结尾

      <script type="text/javascript">    
      var iNum = 123;
      var sTr = 'abc123';
      function fnAlert(){
          alert(sTr);
      };
      fnAlert();
      </script>
      

      2、javascript注释

      <script type="text/javascript">    
      
      // 单行注释
      var iNum = 123;
      /*  
          多行注释
          1、...
          2、...
      */
      var sTr = 'abc123';
      </script>
      

      变量、函数、属性、函数参数命名规范

      1、区分大小写
      2、第一个字符必须是字母、下划线(_)或者美元符号($)
      3、其他字符可以是字母、下划线、美元符或数字

      获取元素方法一

      可以使用内置对象document上的getElementById方法来获取页面上设置了id属性的元素,获取到的是一个html对象,然后将它赋值给一个变量,比如:

      <script type="text/javascript">
          var oDiv = document.getElementById('div1');
      </script>
      ....
      <div id="div1">这是一个div元素</div>
      

      上面的语句,如果把javascript写在元素的上面,就会出错,因为页面上从上往下加载执行的,javascript去页面上获取元素div1的时候,元素div1还没有加载,解决方法有两种:

      第一种方法:将javascript放到页面最下边

      ....
      <div id="div1">这是一个div元素</div>
      ....
      
      <script type="text/javascript">
          var oDiv = document.getElementById('div1');
      </script>
      </body>
      

      第二种方法:将javascript语句放到window.onload触发的函数里面,获取元素的语句会在页面加载完后才执行,就不会出错了。

      <script type="text/javascript">
          window.onload = function(){
              var oDiv = document.getElementById('div1');
          }
      </script>
      
      ....
      
      <div id="div1">这是一个div元素</div>
      

      操作元素属性

      获取的页面元素,就可以对页面元素的属性进行操作,属性的操作包括属性的读和写。

      操作属性的方法
      1、“.” 操作
      2、“[ ]”操作

      属性写法

      1、html的属性和js里面属性写法一样
      2、“class” 属性写成 “className”
      3、“style” 属性里面的属性,有横杠的改成驼峰式,比如:“font-size”,改成”style.fontSize”

      通过“.”操作属性:

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
      <input type="text" name="" id="input1" value="这是一个输入框">
      </body>
      <script type="text/javascript">
      
          window.onload = function(){
              var oInput = document.getElementById('input1');
              oInput.value = "233333";
              oInput.style.color = 'blue';
              oInput.style.fontSize = '24px';
          }
      
      </script>
      </html>
      

      innerHTML
      innerHTML可以读取或者写入标签包裹的内容

      对象.innerText 设置标签里面的文本

      对象.innerHTML设置可以为标签设置html内容

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
      <input type="text" name="" id="input1" value="这是一个输入框">
      <a id="aHref" href="www.baidu.com">百度</a>
      </body>
      <script type="text/javascript">
      
          window.onload = function(){
              var oInput = document.getElementById('input1');
              oInput.value = "233333";
              oInput.style.color = 'blue';
              oInput.style.fontSize = '24px';
      
              var aHref = document.getElementById('aHref')
              //aHref.innerText = '腾讯'
              aHref.innerHTML = '<p>这是一个测试<p/>';
      
          }
      
      </script>
      </html>
      

      函数

      函数就是重复执行的代码片。

      函数定义与执行

      <script type="text/javascript">
          // 函数定义
          function fnAlert(){
              alert('hello!');
          }
          // 函数执行
          fnAlert();
      </script>
      

      变量与函数预解析
      JavaScript解析过程分为两个阶段,先是编译阶段,然后执行阶段,在编译阶段会将function定义的函数提前,并且将var定义的变量声明提前,将它赋值为undefined。

      <script type="text/javascript">    
          fnAlert();       // 弹出 hello!
          alert(iNum);  // 弹出 undefined
          function fnAlert(){
              alert('hello!');
          }
          var iNum = 123;
      </script>
      

      提取行间事件
      在html行间调用的事件可以提取到javascript中调用,从而做到结构与行为分离。

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
      <input type="text" name="" id="input1" value="这是一个输入框">
      <input type="button" value="弹出输入的内容" onclick="fnAlert()">
      </body>
      <script type="text/javascript">
      
              function fnAlert(){
                  var oInput = document.getElementById('input1');
                  inputValue = oInput.value;
                  alert(inputValue)
              }
      
      </script>
      </html>
      

      匿名函数

      定义的函数可以不给名称,这个叫做匿名函数,可以将匿名函数直接赋值给元素绑定的事件来完成匿名函数的调用。

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
      <input type="text" name="" id="input1" value="这是一个输入框">
      <input type="button" value="弹出输入的内容" id="button1">
      </body>
      <script type="text/javascript">
      
          var but1 = document.getElementById('button1');
          but1.onclick = function () {
              var oInput = document.getElementById('input1');
              inputValue = oInput.value;
              alert(inputValue)
          }
      
      </script>
      </html>
      

      函数传参

      <script type="text/javascript">
          function fnAlert(a){
              alert(a);
          }
          fnAlert(12345);
      </script>
      

      函数'return'关键字
      函数中'return'关键字的作用:
      1、返回函数执行的结果
      2、结束函数的运行
      3、阻止默认行为

      <script type="text/javascript">
      function fnAdd(iNum01,iNum02){
          var iRs = iNum01 + iNum02;
          return iRs;
          alert('here!');
      }
      
      var iCount = fnAdd(3,4);
      alert(iCount);  //弹出7
      </script>
      

      条件语句

      通过条件来控制程序的走向,就需要用到条件语句。

      运算符
      1、算术运算符: +(加)、 -(减)、 *(乘)、 /(除)、 %(求余)
      2、赋值运算符:=、 +=、 -=、 *=、 /=、 %=
      3、条件运算符:=、>、>=、<、<=、!=、&&(而且)、||(或者)、!(否)

      if else

      var iNum01 = 3;
      var iNum02 = 5;
      var sTr;
      if(iNum01>iNum02){
          sTr = '大于';
      }
      else
      {
          sTr = '小于';
      }
      alert(sTr);
      

      理解练习
      制作单个按钮点击切换元素的显示和隐藏效果

      多重if else语句

      var iNow = 1;
      if(iNow==1)
      {
          ... ;
      }
      else if(iNow==2)
      {
          ... ;
      }
      else
      {
          ... ;
      }
      

      switch语句
      多重if else语句可以换成性能更高的switch语句

      var iNow = 1;
      
      switch (iNow){
          case 1:
              ...;
              break;
          case 2:
              ...;
              break;    
          default:
              ...;
      }
      

      数组及操作方法

      数组就是一组数据的集合,javascript中,数组里面的数据可以是不同类型的。

      定义数组的方法

      //对象的实例创建
      var aList = new Array(1,2,3);
      
      //直接量创建
      var aList2 = [1,2,3,'asd'];
      

      操作数组中数据的方法
      1、获取数组的长度:aList.length;

      var aList = [1,2,3,4];
      alert(aList.length); // 弹出4
      

      2、用下标操作数组的某个数据:aList[0];

      var aList = [1,2,3,4];
      alert(aList[0]); // 弹出1
      

      3、join() 将数组成员通过一个分隔符合并成字符串

      var aList = [1,2,3,4];
      alert(aList.join('-')); // 弹出 1-2-3-4
      

      4、push() 和 pop() 从数组最后增加成员或删除成员

      var aList = [1,2,3,4];
      aList.push(5);
      alert(aList); //弹出1,2,3,4,5
      aList.pop();
      alert(aList); // 弹出1,2,3,4
      

      5、unshift()和 shift() 从数组前面增加成员或删除成员

      var aList = [1,2,3,4];
      aList.unshift(5);
      alert(aList); //弹出5,1,2,3,4
      aList.shift();
      alert(aList); // 弹出1,2,3,4
      

      6、reverse() 将数组反转

      var aList = [1,2,3,4];
      aList.reverse();
      alert(aList);  // 弹出4,3,2,1
      

      7、indexOf() 返回数组中元素第一次出现的索引值

      var aList = [1,2,3,4,1,3,4];
      alert(aList.indexOf(1));
      

      8、splice() 在数组中增加或删除成员

      var aList = [1,2,3,4];
      aList.splice(2,1,7,8,9); //从第2个元素开始,删除1个元素,然后在此位置增加'7,8,9'三个元素
      alert(aList); //弹出 1,2,7,8,9,4
      

      多维数组
      多维数组指的是数组的成员也是数组的数组。

      var aList = [[1,2,3],['a','b','c']];
      
      alert(aList[0][1]); //弹出2;
      

      批量操作数组中的数据,需要用到循环语句

      循环语句

      程序中进行有规律的重复性操作,需要用到循环语句。

      for循环

      for(var i=0;i<len;i++)
      {
          ......
      }
      
      <script type="text/javascript">
          var aList = [1,2,3,4];
          for(var i=0;i<aList.length;i++){
              alert(aList[i])
          }
      </script> 
      

      while循环

      var i=0;
      
      while(i<8){
          ......
          i+;
      }
      
      <script type="text/javascript">
          var aList = [1,2,3,4];
          var i = 0;
          while(i<aList.length){
              alert(aList[i])
              i = i + 1;
          }
      </script>
      

      数组去重

      var aList = [1,2,3,4,4,3,2,1,2,3,4,5,6,5,5,3,3,4,2,1];
      
      var aList2 = [];
      
      for(var i=0;i<aList.length;i++)
      {
          if(aList.indexOf(aList[i])==i)
          {
              aList2.push(aList[i]);
          }
      }
      
      alert(aList2);
      

      字符串处理方法

      1、字符串合并操作:“ + ”

      var iNum01 = 12;
      var iNum02 = 24;
      var sNum03 = '12';
      var sTr = 'abc';
      alert(iNum01+iNum02);  //弹出36
      alert(iNum01+sNum03);  //弹出1212 数字和字符串相加等同于字符串相加
      alert(sNum03+sTr);     // 弹出12abc
      

      2、parseInt() 将数字字符串转化为整数

      var sNum01 = '12';
      var sNum02 = '24';
      var sNum03 = '12.32';
      alert(sNum01+sNum02);  //弹出1224
      alert(parseInt(sNum01)+parseInt(sNum02))  //弹出36
      alert(sNum03)   //弹出数字12 将字符串小数转化为数字整数
      

      3、parseFloat() 将数字字符串转化为小数

      var sNum03 = '12.32'
      alert(parseFloat(sNum03));  //弹出 12.32 将字符串小数转化为数字小数
      

      4、split() 把一个字符串分隔成字符串组成的数组

      var sTr = '2017-4-22';
      var aRr = sTr.split("-");
      var aRr2= sTr.split("");
      
      alert(aRr);  //弹出['2017','4','2']
      alert(aRr2);  //弹出['2','0','1','7','-','4','-','2','2']
      

      5、charAt() 获取字符串中的某一个字符

      var sId = "#div1";
      var sTr = sId.charAt(0);
      alert(sTr); //弹出 #
      

      6、indexOf() 查找字符串是否含有某字符

      var sTr = "abcdefgh";
      var iNum = sTr.indexOf("c");
      alert(iNum); //弹出2
      

      7、substring() 截取字符串 用法: substring(start,end)(不包括end)

      var sTr = "abcdefghijkl";
      var sTr2 = sTr.substring(3,5);
      var sTr3 = sTr.substring(1);
      
      alert(sTr2); //弹出 de
      alert(sTr3); //弹出 bcdefghijkl
      

      8、toUpperCase() 字符串转大写

      var sTr = "abcdef";
      var sTr2 = sTr.toUpperCase();
      alert(sTr2); //弹出ABCDEF
      

      9、toLowerCase() 字符串转小写

      var sTr = "ABCDEF";
      var sTr2 = sTr.toLowerCase();
      alert(sTr2); //弹出abcdef
      

      字符串反转

      var str = 'asdfj12jlsdkf098';
      var str2 = str.split('').reverse().join('');
      
      alert(str2);
      

      调试程序的方法

      1、alert

      2、console.log

      3、document.title

      Jquery

      jquery介绍

      jQuery是目前使用最广泛的javascript函数库。据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库。微软公司甚至把jQuery作为他们的官方库。

      jQuery的版本分为1.x系列和2.x、3.x系列,1.x系列兼容低版本的浏览器,2.x、3.x系列放弃支持低版本浏览器,目前使用最多的是1.x系列的。

      jquery是一个函数库,一个js文件,页面用script标签引入这个js文件就可以使用。

      <script type="text/javascript" src="js/jquery-1.12.2.js"></script>
      

      jquery的口号和愿望 Write Less, Do More(写得少,做得多)

      1、http://jquery.com/ 官方网站
      2、https://code.jquery.com/ 版本下载

      jquery加载

      将获取元素的语句写到页面头部,会因为元素还没有加载而出错,jquery提供了ready方法解决这个问题,它的速度比原生的 window.onload 更快。

      <script type="text/javascript">
      
      $(document).ready(function(){
      
           ......
      
      });
      
      </script>
      

      可以简写为:

      <script type="text/javascript">
      
      $(function(){
      
           ......
      
      });
      
      </script>
      

      jquery选择器

      jquery用法思想一
      选择某个网页元素,然后对它进行某种操作

      jquery选择器
      jquery选择器可以快速地选择元素,选择规则和css样式相同,使用length属性判断是否选择成功。

      $('#myId') //选择id为myId的网页元素
      $('.myClass') // 选择class为myClass的元素
      $('li') //选择所有的li元素
      $('#ul1 li span') //选择id为为ul1元素下的所有li下的span元素
      $('input[name=first]') // 选择name属性等于first的input元素
      

      对选择集进行过滤

      $('div').has('p'); // 选择包含p元素的div元素
      $('div').not('.myClass'); //选择class不等于myClass的div元素
      $('div').filter('.myClass'); //选择class等于myClass的div元素
      $('div').eq(5); //选择第6个div元素
      

      选择集转移

      $('div').prev(); //选择div元素前面紧挨的同辈元素
      $('div').prevAll(); //选择div元素之前所有的同辈元素
      $('div').next(); //选择div元素后面紧挨的同辈元素
      $('div').nextAll(); //选择div元素后面所有的同辈元素
      $('div').parent(); //选择div的父元素
      $('div').children(); //选择div的所有子元素
      $('div').siblings(); //选择div的同级元素
      $('div').find('.myClass'); //选择div内的class等于myClass的元素
      

      判断是否选择到了元素
      jquery有容错机制,即使没有找到元素,也不会出错,可以用length属性来判断是否找到了元素,length等于0,就是没选择到元素,length大于0,就是选择到了元素。

      var $div1 = $('#div1');
      var $div2 = $('#div2');
      alert($div1.length); // 弹出1
      alert($div2.length); // 弹出0
      ......
      <div id="div1">这是一个div</div>
      

      jquery样式操作

      jquery用法思想二
      同一个函数完成取值和赋值

      操作行间样式

      // 获取div的样式
      $("div").css("width");
      $("div").css("color");
      
      //设置div的样式
      $("div").css("width","30px");
      $("div").css("height","30px");
      $("div").css({fontSize:"30px",color:"red"});
      

      特别注意
      选择器获取的多个元素,获取信息获取的是第一个,比如:$("div").css("width"),获取的是第一个div的width。

      操作样式类名

      $("#div1").addClass("divClass2") //为id为div1的对象追加样式divClass2
      $("#div1").removeClass("divClass")  //移除id为div1的对象的class名为divClass的样式
      $("#div1").removeClass("divClass divClass2") //移除多个样式
      $("#div1").toggleClass("anotherClass") //重复切换anotherClass样式
      

      绑定click事件

      给元素绑定click事件,可以用如下方法:

      $('#btn1').click(function(){
      
          // 内部的this指的是原生对象
      
          // 使用jquery对象用 $(this)
      
      })
      

      获取元素的索引值
      有时候需要获得匹配元素相对于其同胞元素的索引位置,此时可以用index()方法获取

      var $li = $('.list li').eq(1);
      alert($li.index()); // 弹出1
      ......
      <ul class="list">
          <li>1</li>
          <li>2</li>
          <li>4</li>
          <li>5</li>
          <li>6</li>
      </ul>
      

      jquery特殊效果

      fadeIn() 淡入
      
          $btn.click(function(){
      
              $('#div1').fadeIn(1000,'swing',function(){
                  alert('done!');
              });
      
          });
      
      fadeOut() 淡出
      fadeToggle() 切换淡入淡出
      hide() 隐藏元素
      show() 显示元素
      toggle() 切换元素的可见状态
      slideDown() 向下展开
      slideUp() 向上卷起
      slideToggle() 依次展开或卷起某个元素
      

      尺寸相关、滚动事件

      1、获取和设置元素的尺寸

      width()、height()    获取元素width和height  
      innerWidth()、innerHeight()  包括padding的width和height  
      outerWidth()、outerHeight()  包括padding和border的width和height  
      outerWidth(true)、outerHeight(true)   包括padding和border以及margin的width和height
      

      2、获取元素相对页面的绝对位置

      offset()
      

      课堂练习

      加入购物车动画

      3、获取浏览器可视区宽度高度

      $(window).width();
      $(window).height();
      

      4、获取页面文档的宽度高度

      $(document).width();
      $(document).height();
      

      5、获取页面滚动距离

      $(document).scrollTop();  
      $(document).scrollLeft();
      

      6、页面滚动事件

      $(window).scroll(function(){  
          ......  
      })
      

      jquery属性操作

      1、html() 取出或设置html内容

      // 取出html内容
      
      var $htm = $('#div1').html();
      
      // 设置html内容
      
      $('#div1').html('<span>添加文字</span>');
      

      2、prop() 取出或设置某个属性的值

      // 取出图片的地址
      
      var $src = $('#img1').prop('src');
      
      // 设置图片的地址和alt属性
      
      $('#img1').prop({src: "test.jpg", alt: "Test Image" });
      

      json

      json是 JavaScript Object Notation 的首字母缩写,单词的意思是javascript对象表示法,这里说的json指的是类似于javascript对象的一种数据格式,目前这种数据格式比较流行,逐渐替换掉了传统的xml数据格式。

      javascript自定义对象:

      var oMan = {
          name:'tom',
          age:16,
          talk:function(s){
              alert('我会说'+s);
          }
      }
      

      json格式的数据:

      {
          "name":"tom",
          "age":18
      }
      

      与json对象不同的是,json数据格式的属性名称和字符串值需要用双引号引起来,用单引号或者不用引号会导致读取数据错误。

      json的另外一个数据格式是数组,和javascript中的数组字面量相同。

      ["tom",18,"programmer"]