黑马程序员技术交流社区

标题: 前端基础杂集 [打印本页]

作者: S.妖妖    时间: 2019-6-5 19:26
标题: 前端基础杂集
HTML标签

基础标签:
    <!DOCTYPE> 定义文档类型(声明于文档最前面的位置)
    <html>定义HTML文档
    <head>头标签,用于指定HTML文档的一些属性,引入外部资源 <title>定义文档标题(浏览器标签处显示)
    <body>定义文档内容 <h1>到<h6>定义标题(标题大小从1-6)
    <p>定义段落
    <hr>定义水平线
        *属性:
            color:颜色
            width:宽度
            size:高度
            align:对其方式
            (center)居中
            (left)左对齐
            (right)右对齐
   
    <br>定义简单的换行
    <!--...--> 定义注释
格式标签:
    <em>定义强调文本
    <small>定义小号文本
    <i>字体斜体
    <font>字体标签
    <center>定义文本居中
        属性:
            color:颜色
            size:大小
            face:字体
    <b>定义粗体文字
图像标签:
    <img>
链接标签:
    <a> 定义超链
        属性:
            href:指定访问资源的URL(同一资源定位符)
            target:指定打开资源的方式
                * _self:默认值,在当前页面打开
                * _blank:在空白页面打开
列表标签:
    <ul>定义无序列表
    <li>定义列表项目
   
    <ol>定义有序列表
    <li>定义列表项目
   
    <dl>定义自定义列表
    <dt>定义自定义列表中的项目
    <dd>定义自定义列表项目的描述
   
表单标签:
    <form>定义供用户输入HTML表单
        属性:
            action:指定提交数据的URL(表单提交的路径)
            method:指定提交方式
               
                提交方式用7种(两个常用的):
                get:不太安全,地址栏会显示提交的参数,会封装到请求体(HTTP协议),请求参数长度有限制
                post:较为安全,地址栏不会显示提交的参数,会封装到请求体中(HTTP协议),请求参数长度限制
        *表单项数据提交必须指定name属性
    <input>定义输入控件(输入框)
        属性:
            type:改变元素展示样式
                * text:文本输入框,默认值
                * placeholder:指定输入框的提示信息,输入内容后提示自动内容自动清空
                * password:密码输入框
                * radio:单选框
                    *想要实现多个单选框效果,多个单选框name属性值必须一样,一般给每个单选框提供value属性
                    *checked属性,可以指定默认值
                * checkbox:复选框
                * file:文件选择框
                * hidden:隐藏域,用于提交一些信息
                * 按钮:
                    * submit:提交按钮,可以提交表单
                    * button:普通按钮
                    * image:图片提交按钮(src属性指定图片路径)
                    
    <textarea> 定义多行的文本输入控件
        属性:
            cols:指定列数,每一行有多少个字符
            rows:默认多少行
    <select>定义选择列表(下拉列表)
        * option:指定列表项(子元素)
    <label>定义input元素的标注
        * 注意:
            lable的for属性一般会和input的id属性值对应,(用于获取焦点)
表格标签:
    <table>定义表格
        属性:
            width:宽度
            border:边框
            cellpadding:定义内容和单元格的距离
            cellspacing:定义单元格之间的距离,如果指定为0,单元格转为实线
            bgcolor:背景深颜色
            align:对齐方式
    <tr>定义表格中的行
        属性:
            bgcolor:背景颜色
            align:对齐方式
            
    <th>定义表头单元格
        属性:
            <caption>表格标题
            <thead>表示表格的头部分
            <tbody>表示表格的体部分
            <tfoot>表示表格的脚部分
    <td>定义表格中的单元(列)
        属性:
            colspan:合并列
            rowspan:合并列
样式/节:
    <style>滴定仪文档的样式信息
    <div>定义文档中的节(每一个div占满一整行,块级标签)
    <span>定义文档中的节(文本信息再一行展示,行内标签,内联标签)
语义化标签:
    <header>:页眉
    <footer>:页脚
CSS样式(Cascading Style Sheets)

作用:
    美化网页
    HTML代码构建网页整体布局
    CSS美化网页,两者缺一不可
内部样式:(作用域:当前标签中)
    在head标签内定义style标签
外部样式:(作用域:谁引用,谁就可以使用该样式)
    定义CSS资源文件
    在head标签内,定义link标签,引用外部资源文件
基础语法:
    选择器{
        属性名1:属性值1;
        属性名2:属性值2;
        ...
    }
    选择器具有相似特征的元素
   
选择器:
    作用:选择指定标签,并为指定标签设置样式
    1. 基础选择器
                   1. id选择器:选择具体的id属性值的元素.建议在一个html页面中id值唯一
                    * 语法:#id属性值{}
            2. 元素选择器:选择具有相同标签名称的元素
                    * 语法: 标签名称{}
                * 注意:id选择器优先级高于元素选择器
            3. 类选择器:选择具有相同的class属性值的元素。
                    * 语法:.class属性值{}
                    * 注意:类选择器优先级高于元素选择器
        2. 扩展选择器:
                1. 选择所有元素:
                        * 语法: *{}
                2. 并集选择器:
                        * 选择器1,选择器2{}
               
                3. 子选择器:筛选选择器1元素下的选择器2元素
                        * 语法:  选择器1 选择器2{}
                4. 父选择器:筛选选择器2的父元素选择器1
                        * 语法:  选择器1 > 选择器2{}

                5. 属性选择器:选择元素名称,属性名=属性值的元素
                        * 语法:  元素名称[属性名="属性值"]{}

                6. 伪类选择器:选择一些元素具有的状态
                        * 语法: 元素:状态{}
                        * 如: <a>
                                * 状态:
                                        * link:初始化的状态
                                        * visited:被访问过的状态
                                        * active:正在访问状态
                                        * hover:鼠标悬浮状态
3. 属性
        1. 字体、文本
                * font-size:字体大小
                * color:文本颜色
                * text-align:对其方式
                * line-height:行高
        2. 背景
                * background:
        3. 边框
                * border:设置边框,复合属性
        4. 尺寸
                * width:宽度
                * height:高度
        5. 盒子模型:控制布局
                * margin:外边距
                * padding:内边距
                        * 默认情况下内边距会影响整个盒子的大小
                        * box-sizing: border-box;  设置盒子的属性,让width和height就是最终盒子的大小

                * float:浮动
                        * left
                        * right
JavaScript

ECMAscript客户端脚本语言的标准:
    1.基础语法:
        与HTML结合方式:
            1.内部JS:
            定义<Script>,标签内容就是JS代码
            2.外部JS:
            定义<Script>,通过src属性引入外部的JS文件
         *注意:
            1.<Script>可以定义在HTML页面的任何地方,但是定义的位置影响执行顺序
            2.<Script>可以定义多个
    2.注释
        1.单行注释: //注释内容
        2.多行注释:/*注释内容*/
    3.数据类型:
        1.原始数据类型(基本数据类型):
            1.number:数字(整数/小数/NaN(not a  number 一个不是数字的数字类型))
            2.String:字符串(javascript中字符也叫做字符串)
            3.boolean:true和false
            4.null:一个对象为空的占位符
            5.undefined:未定义,没有初始化的,变量没有初始化则默认赋值为undefined
         2.引用数据类型:对象
    4.变量
        1.变量:一小块存储的内存空间
        2.java语言的强类型语言,而javascript是弱类型语言
            *强类型:在开辟变量存储空间时,定义空间将来存储的数据类型,只能存储固定类型数据
            *弱类型:在开辟变量存储空间时,不定义空间将来存储数据类型,可以存放任意类型的数据
        3.语法:
            var 变量名 = 初始化值;
    5.运算符
        1.一元运算符,只有一个运算数的运算符
            * ++,--,+(正号),-(负号)
            *++(--)在前,先自增(自减),在运算
            *++(--)在后,先运算,再自增(自减)
            *+(-):正负号
            *注意:再JS中能够,运算数不是运算符所要求的类型,那么js引擎会自动将运算数进行类型转换
                *其他类型转number:
                    1.String转number:按照字面值转换,如果字面值不是数字,则转为NaN(不是数字的数字)
                    2.Boolean转number:true转为1,false转为0
        2.算数运算符:
        + - * / %...
        3.赋值运算符:
        = += -= ...
        4.比较运算符:
        > < >= <= == ===(全等于)
            *比较方式
                1.类型相同:直接比较
                    *字符串:按照字典比较顺序,按位逐一比较,直到得出大小为止
                2.类型不同:先进行类型转换,在比较
                    * ===:全等于在比较值钱,先判断类型,如果类型不一样,则直接返回false
        5.逻辑运算符:
        && || !
            *其他类型转boolean:
                1.number:0或NaN为假,其他为真(null,0,NaN,undefined,""(空字符),false)以上都为false
                2.String:除了空字符(""),其他都为true
                3.null&undefined:都是false
                4.对象:所有对象都为true
   5.三元运算符:(? :)
        *语法:
            *表达式?值1:值2;
    6.流程控制语句:
    7.JS特殊语法:
        1.语句以分号(;)结尾,如果一行只有一条语句,分号可以省略
        2.变量的定义使用var关键字,也可以不使用
            *用:定义的变量是局部变量
            *不用:定义的变量是全局变量
        2.基本对象:
            *function:函数(方法)对象
                1.创建:
                    方式1:var 变量名 = new Function(形式参数列表,方法体);
                    方式2:
                    function 方法名称(形式参数列表){
                        方法体
                    }
                    方式3:
                    var 方法名 =function(形式参数列表){
                        方法体
                    }
                2.方法:
                3.属性:
                    length:代表形参的个数
                4.特点:
                    1.方法定义时,形参的类型不用写,返回值类型也不写
                    2.方法时一个对象,如果定义名称相同的方法,会覆盖
                    3.在JS中,方法的调用只与方法的名称有关,和参数列表无关
                    4.在方法声明中有一个隐藏的内置对象(数组),arguments封装所有实际参数
                    5.调用:
                        方法名称(实际参数列表)
        3.Array数组对象
            1.创建:
                1.var arr = new Array(元素列表);
                2.var arr = new Array(默认长度);
                3.var arr = [元素列表];
            2.方法:
                join(参数):将数组中的元素按照指定的分隔符拼接成字符串
                push()向数组的末尾添加一个或多个元素,并返回新的长度
            3.属性:
                length:数组的长度
            4.特点:
                1.JS中,数组元素的类型可变的
                2.JS中,数组的长度可变
        4.boolean
        5.Date:日期对象
            1.创建:
                var date = new Date();
            2.方法:
                toLocaleString():返回当前date对象对应的时间本地字符串格式
                getTime():获取毫秒值,返回当前日期对象描述时间到1970年1月1日零点的毫秒值
        6.Math:数学对象
            1.创建:
                特点:Math对象不用创建直接使用,Math.方法名();
            2.方法:
                random():返回0~1之间的随机数(含0不含1)
                ceil(X):对数进行上舍入
                floor(x):对数进行下舍入
                round(X):把数四舍五入为最接近的整数
            3.属性:
                PI
    7.number
    8.String
    9.RegExp:正则表达式对象
        1.正则表达式定义字符串穿的组成规则
            1.单个字符:[]
            如: [a] [ab] [a-zA-Z0-9_]
                                            * 特殊符号代表特殊含义的单个字符:
                                                    \d:单个数字字符 [0-9]
                                                    \w:单个单词字符[a-zA-Z0-9_]
                    2. 量词符号:
                                            ?:表示出现0次或1次
                                            *:表示出现0次或多次
                                            +:出现1次或多次
                                            {m,n}:表示 m<= 数量 <= n
                                                    * m如果缺省: {,n}:最多n次
                                                    * n如果缺省:{m,} 最少m次
                    3. 开始结束符号
                                            * ^:开始
                                            * $:结束
                            * $:结束
            2. 正则对象:
                    1. 创建
                            1. var reg = new RegExp("正则表达式");
                            2. var reg = /正则表达式/;
                    2. 方法       
                            1. test(参数):验证指定的字符串是否符合正则定义的规范
    10.Global
            1. 特点:全局对象,这个Global中封装的方法不需要对象就可以直接调用。  方法名();
            2. 方法:
        encodeURI():url编码
            decodeURI():url解码
   
            encodeURIComponent():url编码,编码的字符更多
            decodeURIComponent():url解码
   
            parseInt():将字符串转为数字
            * 逐一判断每一个字符是否是数字,直到不是数字为止,将前边数字部分转为number
            isNaN():判断一个值是否是NaN
             * NaN六亲不认,连自己都不认。NaN参与的==比较全部问false
   
            eval():讲 JavaScript 字符串,并把它作为脚本代码来执行。
JavaScript(BOM,DOM)

BOM

* 功能:控制html文档的内容
* 获取页面标签(元素)对象:Element
        * document.getElementById("id值"):通过元素的id获取元素对象

* 操作Element对象:
        1. 修改属性值:
                1. 明确获取的对象是哪一个?
                2. 查看API文档,找其中有哪些属性可以设置
        2. 修改标签体内容:
                * 属性:innerHTML
                1. 获取元素对象
                2. 使用innerHTML属性修改标签体内容
1. 概念:Browser Object Model 浏览器对象模型
* 将浏览器的各个组成部分封装成对象。

2. 组成:
        * Window:窗口对象
        * Navigator:浏览器对象
        * Screen:显示器屏幕对象
        * History:历史记录对象
        * Location:地址栏对象

3. Window:窗口对象
    1. 创建
    2. 方法
         1. 与弹出框有关的方法:
            alert()        显示带有一段消息和一个确认按钮的警告框。
            confirm()        显示带有一段消息以及确认按钮和取消按钮的对话框。
                * 如果用户点击确定按钮,则方法返回true
                * 如果用户点击取消按钮,则方法返回false
            prompt()        显示可提示用户输入的对话框。
                * 返回值:获取用户输入的值
         2. 与打开关闭有关的方法:
            close()        关闭浏览器窗口。
                * 谁调用我 ,我关谁
            open()        打开一个新的浏览器窗口
                * 返回新的Window对象
         3. 与定时器有关的方式
            setTimeout()        在指定的毫秒数后调用函数或计算表达式。
                * 参数:
                    1. js代码或者方法对象
                    2. 毫秒值
                * 返回值:唯一标识,用于取消定时器
            clearTimeout()        取消由 setTimeout() 方法设置的 timeout。

            setInterval()        按照指定的周期(以毫秒计)来调用函数或计算表达式。
            clearInterval()        取消由 setInterval() 设置的 timeout。

    3. 属性:
        1. 获取其他BOM对象:
            history
            location
            Navigator
            Screen:
        2. 获取DOM对象
            document
    4. 特点
        * Window对象不需要创建可以直接使用 window使用。 window.方法名();
        * window引用可以省略。  方法名();


4. Location:地址栏对象
        1. 创建(获取):
                1. window.location
                2. location

        2. 方法:
                * reload()        重新加载当前文档。刷新
        3. 属性
                * href        设置或返回完整的 URL。


5. History:历史记录对象
    1. 创建(获取):
        1. window.history
        2. history

    2. 方法:
        * back()        加载 history 列表中的前一个 URL。
        * forward()        加载 history 列表中的下一个 URL。
        * go(参数)        加载 history 列表中的某个具体页面。
            * 参数:
                * 正数:前进几个历史记录
                * 负数:后退几个历史记录
    3. 属性:
        * length        返回当前窗口历史列表中的 URL 数量。
事件

* 功能: 某些组件被执行了某些操作后,触发某些代码的执行。
* 造句:  xxx被xxx,我就xxx
        * 我方水晶被摧毁后,我就责备对友。
        * 敌方水晶被摧毁后,我就夸奖自己。

* 如何绑定事件
        1. 直接在html标签上,指定事件的属性(操作),属性值就是js代码
                1. 事件:onclick--- 单击事件

        2. 通过js获取元素对象,指定事件属性,设置一个函数
DOM

* 概念: Document Object Model 文档对象模型
* 将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作

* W3C DOM 标准被分为 3 个不同的部分:

        * 核心 DOM - 针对任何结构化文档的标准模型
                * Document:文档对象
                * Element:元素对象
                * Attribute:属性对象
                * Text:文本对象
                * Comment:注释对象

                * Node:节点对象,其他5个的父对象
        * XML DOM - 针对 XML 文档的标准模型
        * HTML DOM - 针对 HTML 文档的标准模型





   * 核心DOM模型:
        * Document:文档对象
                1. 创建(获取):在html dom模型中可以使用window对象来获取
                        1. window.document
                        2. document
                2. 方法:
                        1. 获取Element对象:
                                1. getElementById()        : 根据id属性值获取元素对象。id属性值一般唯一
                                2. getElementsByTagName():根据元素名称获取元素对象们。返回值是一个数组
                                3. getElementsByClassName():根据Class属性值获取元素对象们。返回值是一个数组
                                4. getElementsByName(): 根据name属性值获取元素对象们。返回值是一个数组
                        2. 创建其他DOM对象:
                                createAttribute(name)
                    createComment()
                    createElement()
                    createTextNode()
                3. 属性
        * Element:元素对象
                1. 获取/创建:通过document来获取和创建
                2. 方法:
                        1. removeAttribute():删除属性
                        2. setAttribute():设置属性
        * Node:节点对象,其他5个的父对象
                * 特点:所有dom对象都可以被认为是一个节点
                * 方法:
                        * CRUD dom树:
                                * appendChild():向节点的子节点列表的结尾添加新的子节点。
                                * removeChild()        :删除(并返回)当前节点的指定子节点。
                                * replaceChild():用新节点替换一个子节点。
                * 属性:
                        * parentNode 返回节点的父节点。


* HTML DOM
        1. 标签体的设置和获取:innerHTML
        2. 使用html元素对象的属性
        3. 控制元素样式
                1. 使用元素的style属性来设置
                        如:
                                 //修改样式方式1
                        div1.style.border = "1px solid red";
                        div1.style.width = "200px";
                        //font-size--> fontSize
                        div1.style.fontSize = "20px";
                2. 提前定义好类选择器的样式,通过元素的className属性来设置其class属性值。
事件监听机制:

* 概念:某些组件被执行了某些操作后,触发某些代码的执行。       
* 事件:某些操作。如: 单击,双击,键盘按下了,鼠标移动了
* 事件源:组件。如: 按钮 文本输入框...
* 监听器:代码。
* 注册监听:将事件,事件源,监听器结合在一起。 当事件源上发生了某个事件,则触发执行某个监听器代码。


* 常见的事件:
        1. 点击事件:
                1. onclick:单击事件
                2. ondblclick:双击事件
        2. 焦点事件
                1. onblur:失去焦点
                2. onfocus:元素获得焦点。

        3. 加载事件:
                1. onload:一张页面或一幅图像完成加载。

        4. 鼠标事件:
                1. onmousedown        鼠标按钮被按下。
                2. onmouseup        鼠标按键被松开。
                3. onmousemove        鼠标被移动。
                4. onmouseover        鼠标移到某元素之上。
                5. onmouseout        鼠标从某元素移开。
               
               
        5. 键盘事件:
                1. onkeydown        某个键盘按键被按下。       
                2. onkeyup                某个键盘按键被松开。
                3. onkeypress        某个键盘按键被按下并松开。

        6. 选择和改变
                1. onchange        域的内容被改变。
                2. onselect        文本被选中。

        7. 表单事件:
                1. onsubmit        确认按钮被点击。
                2. onreset        重置按钮被点击。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2