HTML+CSS+JavaScript知識(shí)點(diǎn)整理2

  • CSS選擇器
1、基本選擇器
(1)“*”選擇器:通配符
    描述:將匹配所有的HTML標(biāo)記,所有的標(biāo)記都會(huì)改變的。
    語法:*{ color:red; }
    注意:“*”盡量少用,因?yàn)镮E6不支持。
    
(2)標(biāo)簽選擇器
    描述:將匹配指定的HTML標(biāo)記。
    語法:h1{ color:red; }
    注意:CSS標(biāo)簽選擇器,與HTML標(biāo)記的名稱一樣,但不能加尖括號(hào)。
    
    
    (3)class選擇器(類選擇器)——類選擇器是使用頻率最高的
    描述:給一類HTML標(biāo)記加樣式。這里所指的“一類”是:每個(gè)HTML標(biāo)記都有一個(gè)class屬性,且class的值一樣。class屬性是公共屬性,每個(gè)HTML標(biāo)記都有。
    類選擇器的名稱,必須以“.”開頭,后限HTML標(biāo)記的class屬性的值。如:.box{ color:red; }
    HTML標(biāo)記的class屬性的值,不能以數(shù)字開頭。

(4)id選擇器
    描述:給指定id的元素添加樣式。
    注意:網(wǎng)頁中HTML標(biāo)記的id屬性的值,必須是唯一的。
    每一個(gè)HTML標(biāo)記都有一個(gè)id的公共屬性。
    注意:id屬性一般是給JS使用的,不是讓你來加樣式的。class屬性只能給CSS用,不能給JS用的。
    id選擇器的名稱,必須以“#”開頭,后跟HTML標(biāo)記的id屬性的值。


2、組合選擇器
(1)多元素選擇器
    描述:給多個(gè)元素加同一個(gè)樣式,多個(gè)選擇器之間用逗號(hào)“,”隔開。
    舉例:h1,p,div,body{color:red;}
(2)后代元素選擇器(最常用)
    描述:給某個(gè)標(biāo)簽的某一個(gè)后代元素加樣式。選擇器之間用“空格”隔開。
    舉例:div  .title{ color:red;}

(3)子元素選擇器
    描述:給某個(gè)元素的子元素添加樣式。
    舉例:div > h1.title{color:red;}
    
    
4. CSS偽類選擇器:給超鏈接加的樣式(鏈接的不同狀態(tài)加樣式)
一個(gè)超鏈接,有四個(gè)狀態(tài):
    正常狀態(tài)(:link):鼠標(biāo)沒放上之前鏈接的樣式。
    放上狀態(tài)(:hover):鼠標(biāo)放到鏈接上時(shí)的樣式。
    激活狀態(tài)(:active):按住鼠標(biāo)左鍵不松開的樣式,這個(gè)狀態(tài)特殊短暫。
    訪問過的狀態(tài)(:visited):按下鼠標(biāo)左鍵,并彈起,這時(shí)的樣式效果。
在平常工作中,會(huì)使用以下寫法,來給鏈接加不同的樣式:
a:link, a:visited{ color:#444; text-decoration:none; }  //將“正常狀態(tài)”和“訪問過的狀態(tài)”合二為一。
a:hover{ color:#990000; text-decoration:underline; }  //“鼠標(biāo)放上”單做一種效果


  • CSS注釋
CSS注釋:/*CSS注釋內(nèi)容*/
HTML注釋:<!—HTML注釋-->

CSS尺寸屬性
    width:元素寬度,一定要加px單位。
    height:元素高度。
CSS字體屬性
    font-size:文字大小。如:font-size:14px;
    font-family:字體。如:font-family:微軟雅黑;
    font-style:斜體,取值:italic。如:font-style:italic;
    font-weight:粗體,取值:bold。如:font-weight:bold;
CSS文本屬性
    color:文本顏色
    text-decoration:文本修飾線,取值:none(無)、underline(下劃線)、overline(上劃線)、line-through(刪除線)
    text-align:文本水平對(duì)齊方式,取值:left、center、right
    line-height:行高,可以用固定值,也可以用百分比。如:line-height:24px;   line-height:150%;
    text-indent:首行縮進(jìn)。如:text-indent:28px;
    letter-spacing:字間距。

CSS列表屬性

list-style:列表樣式,取值:none。去掉項(xiàng)目符號(hào)或編號(hào)前面的各種符號(hào)。


CSS邊框?qū)傩裕好總€(gè)元素都可以加邊框線

    border-left:左邊框線。
    格式:border-left:粗細(xì)  線型  線的顏色;
    線型:none(無線)、solid(實(shí)線)、dashed(虛線)、dotted(點(diǎn)狀線)
    舉例:border-left:5px  dashed  red;
    border-right:右邊框線。
    
    border-top:上邊框線。
    border-bottom:下邊框線。
    border:同時(shí)給四個(gè)邊加邊框線。

CSS內(nèi)邊距屬性:邊框線到內(nèi)容間的距離

注意:平常我們所說的width和height屬性,它們指內(nèi)容的寬度和高度,不含內(nèi)、外邊距、邊框線。
    padding-left:左內(nèi)填充距離,左邊線到內(nèi)容間的距離。
    padding-right:右內(nèi)填充距離,右邊線到內(nèi)容間的距離。
    padding-top:上內(nèi)填充距離,上邊線到內(nèi)容間的距離。
    padding-bottom:下內(nèi)填充距離,下邊線到內(nèi)容間的距離。
    縮寫形式
    padding:10px;   //四個(gè)邊的內(nèi)填充分別為10px
    padding:10px 20px;  //上下為10px,左右為20px
    padding:5px 10px 20px;  //上為5px,左右為10px,下為20px
    padding:5px 10px 15px 20px;  //順序一定是“上右下左”

CSS外邊距屬性:邊線往外的距離


    margin-left:左邊線往外的距離。
    margin-right:右邊線往外的距離
    margin-top:上邊線往外的距離。
    margin-bottom:下邊線往外的距離。
    簡(jiǎn)寫式
    margin:10px;   //四個(gè)外邊距分別為10px
    margin:10px 20px  //上下外邊距10px,左右外邊距20px
    margin:5px 10px 15px;  //上外邊距5px,左右外邊距10px,下外邊距15px
    margin:5px 10px 15px 20px;  //順序一定是“上右下左”

CSS背景屬性

    background-color:背景顏色。
    background-image:背景圖片地址。如:background-image:url(images/bg.gif)
    background-repeat:背景平鋪方式,取值:no-repeat(不平鋪)、repeat-x(水平方向)、repeat-y(垂直方向)
    background-position:背景定位。格式:background-position:水平方向定位 垂直方向定位;
    用英文單詞定位:background-position: left|center|right  top|center|bottom;
    
    用固定值定位:background-position: 50px  50px; //背景距離容器的左邊50px,容器頂端50px
    用百分比定位:background-position: 50%  50%;  //水平居中,垂直居中
    用混合定位:background-position: left  10px;   //背景靠左邊齊,距離容器頂端10px
    簡(jiǎn)寫方式
    background:背景色  背景圖  平鋪方式  定位方式;
    舉例:background:url(images/bg.gif) no-repeat center center;
    舉例:background: #ccc url(images/bg.gif) no-repeat left 10px;

  • CSS浮動(dòng)和清除
    float:讓元素浮動(dòng),取值:left(左浮動(dòng))、right(右浮動(dòng))
    clear:清除浮動(dòng),取值:left(清除左浮動(dòng))、right(清除右浮動(dòng))、both(同時(shí)清除上面的左浮動(dòng)和右浮動(dòng))

1、CSS浮動(dòng)
    浮動(dòng)的元素,將向左或向右浮動(dòng),浮動(dòng)到包圍元素的邊上,或上一個(gè)浮動(dòng)元素的邊上為止。
    浮動(dòng)的元素,不再占空間了,并且,浮動(dòng)元素的層級(jí)要高于普通元素。
    浮動(dòng)的元素,一定是“塊元素”。不管它原來是什么元素。
    如果浮動(dòng)的元素,沒有指定寬度的話,浮動(dòng)后它將盡可能的變窄。因此,浮動(dòng)元素一般要定寬和高。
    一行的多個(gè)元素,要浮動(dòng)一起浮動(dòng)。

浮動(dòng)的功能:可以實(shí)現(xiàn)將多個(gè)塊元素并列排版。

如何讓包圍元素,包住浮動(dòng)元素?
你就需要在浮動(dòng)元素的下邊,使用清除浮動(dòng)操作。

<style type="text/css">
    .box .div3{
        width:100px;
        height:100px;
        background-color:blue;
        float:right;
    }
    .clear{clear:both;}
</style>

<body>
    <div class="box">
        <div class="div1"></div>
        <div class="div2"></div>
        <div class="div3"></div>
        <div class="clear"></div>
    </div>
</body>

2、CSS清除浮動(dòng)

CSS清除浮動(dòng)的功能有兩個(gè):(1)可以包圍元素從“視覺上”包住浮動(dòng)元素(2)清除之下的其它元素將恢復(fù)默排版。
有浮動(dòng),就得有清除。
如果包圍元素指定了高度了,那么可以不使用清除功能。

CSS繼承性

CSS屬性繼承:外層元素的樣式,會(huì)被內(nèi)層元素進(jìn)行繼承。多個(gè)外層元素的樣式,最終都會(huì)“疊加”到內(nèi)層元素上。

什么樣的CSS屬性能被繼承呢?
    CSS文本屬性都會(huì)被繼承的:
        color、 font-size、font-family、font-style、 font-weight
        text-align、text-decoration、text-indent、letter-spacing、line-height
    提示:<body>中的CSS屬性,會(huì)被所有的子元素繼承。


CSS優(yōu)先級(jí)(權(quán)值)
(1)單個(gè)選擇器的優(yōu)先級(jí)
    行內(nèi)樣式 > id選擇器 >  class選擇器 > 標(biāo)簽選擇器
    
    (2)多個(gè)選擇器的優(yōu)先級(jí)
    多個(gè)選擇器的優(yōu)先級(jí),一般情況下,指向越準(zhǔn)確,優(yōu)先級(jí)越高。
    特殊情況下,我們需要假設(shè)一些值:
        標(biāo)簽選擇器      優(yōu)先級(jí)為1
        類選擇器        優(yōu)先級(jí)為10
        Id選擇器        優(yōu)先級(jí)為100
        行內(nèi)樣式        優(yōu)先級(jí)為1000
        
        計(jì)算以下優(yōu)先級(jí):
.news h1{color:red;}     優(yōu)先級(jí):10 + 1 = 11
.title{color:blue;}        優(yōu)先級(jí):10

div.news h1{color:red;}   優(yōu)先級(jí):1 + 10 + 1 = 12
h1.title{color:blue;}      優(yōu)先級(jí):1 + 10 = 11
    

display屬性

    功能:規(guī)則網(wǎng)頁元素如何顯示的問題。
    取值:none(隱藏)、block(以塊元素顯示)、inline(以行內(nèi)元素顯示)
    block:可以實(shí)現(xiàn)將行內(nèi)元素轉(zhuǎn)成塊元素。
    inline:可以實(shí)現(xiàn)將塊元素轉(zhuǎn)成行內(nèi)元素

overflow屬性:當(dāng)內(nèi)容溢出時(shí),該如何顯示
overflow:當(dāng)內(nèi)容溢出時(shí),溢出的內(nèi)容該如何顯示。取值:visible(可見)、hidden(隱藏)、scroll(出現(xiàn)滾動(dòng)條)、auto(自動(dòng))



cursor光標(biāo)類型
cursor:網(wǎng)頁中光標(biāo)的類型,取值:text(文本)help(幫助)、wait(等待)、pointer(手形)等

CSS定位

    position:元素定位方式,取值static、fixed、relative、absolute
    static:靜態(tài)定位(默認(rèn)狀態(tài)、不定位)。
    Fixed:固定定位。
    Relative:相對(duì)定位。
    Absolute:絕對(duì)定位。
定位方式,要與定位屬性配合使用
    定位坐標(biāo):指定定位的元素,偏移目標(biāo)元素多遠(yuǎn)的距離。
    left:定位元素,距離目標(biāo)元素左邊的距離。
    top:定位元素,距離目標(biāo)元素上邊的距離。
    right:定位元素,距離目標(biāo)元素右邊的距離。
    bottom:定位元素,距離目標(biāo)元素下邊的距離。
    
    1、固定定位,position:fixed
    固定定位,是相對(duì)于瀏覽器窗口來進(jìn)行的定位。
    固定定位,不占空間,層級(jí)要高于普通元素。它不會(huì)隨著網(wǎng)頁的滾動(dòng)而滾動(dòng)。
    如果不指定定位坐標(biāo)的話,固定定位元素的位置在原地不動(dòng)。
    固定定位元素,一定是“塊元素”,不管原來它是什么元素。

2、相對(duì)定位,position:relative;
    相對(duì)定位,是相對(duì)于“原來的自己”進(jìn)行定位。
    相對(duì)定位,依然占空間,層級(jí)高于普通元素。
    如果不指定定位坐標(biāo)的話,相對(duì)定位元素的位置在原地不動(dòng)。
    相對(duì)定位,原來是行內(nèi)元素,定位后還是行內(nèi)元素;原來是塊元素,定位后還是塊元素。


3、絕對(duì)定位,position:absolute
    相對(duì)于祖先定位元素(相對(duì)定位,絕對(duì)定位),來進(jìn)行的定位。
    如果它的父元素沒有進(jìn)行任何定位的話,再往上找定位元素。
    如果一直找到<body>都沒有找到定位元素的話,那就相對(duì)于<body>來進(jìn)行定位。
    絕對(duì)定位元素,不占空間,層級(jí)要高于普通元素。
    如果不指定定位坐標(biāo)的話,絕對(duì)定位元素的位置在原地不動(dòng)。
    絕對(duì)定位元素,是一個(gè)“塊元素”。

HTML引入CSS的方法

1、嵌入式
    通過<style>標(biāo)記,來引入CSS樣式。
    語法格式:<style type = “text/css”></style>
    提示:<style>中的CSS樣式,只能給當(dāng)前網(wǎng)頁來使用。
          同一個(gè)網(wǎng)頁中,<style>標(biāo)記可以多次出現(xiàn)。

2、外聯(lián)式
    通過<link>標(biāo)記,來入引一個(gè)外部的CSS文件(.css),這樣的話,可以實(shí)現(xiàn)公共的CSS代碼被多個(gè)網(wǎng)頁共享。
    <link rel = “stylesheet”  type = “text/css”  href = “css/public.css”  />
    <link>標(biāo)記的常用屬性
    rel:也就是引入的是什么類型的文件。取值:stylesheet
    type:內(nèi)容類型。
    href:引入的CSS文件地址。
提示:<link>標(biāo)記放在<head>標(biāo)記中。
 同一個(gè)網(wǎng)頁,可以使用多個(gè)<link>來鏈入多個(gè)外部樣式文件。


3、行內(nèi)式(主要用于JS控制元素的樣式)
    每一個(gè)HTML標(biāo)記,都有一些公共的屬性:class、id、title、style。

HTML標(biāo)記中的style屬性的值,與CSS中樣式一模一樣。
提示:行內(nèi)樣式中,CSS代碼不能寫的過多;
行內(nèi)樣式中,多個(gè)CSS屬性不能換行,也就是一行寫完。
行內(nèi)樣式優(yōu)先級(jí)是最高的,比ID選擇器還要高。

CSS表格屬性

border-collapse:表格邊框線合并,取值:collapse。

  • 盒子模型
我們可以把每一個(gè)HTML標(biāo)記,都看成是一個(gè)“盒子”。
這個(gè)“盒子”有哪些特征:內(nèi)容的高度或高度、邊框線、內(nèi)填充、外邊距。
“盒子”的總寬度:內(nèi)容的寬度 + 邊框?qū)挾?2 + 左填充*2 + 左外邊距*2

上下外邊距合并問題——這是一種現(xiàn)象
    什么情況下?上下外邊距會(huì)合并呢?
    上下兩個(gè)塊元素,如果每一個(gè)元素都指定了四個(gè)外邊距,那么上下相鄰的那個(gè)外邊距會(huì)發(fā)生合并的現(xiàn)象,合并后取其中較大的外邊距。


如何要實(shí)現(xiàn)上下兩個(gè)<div>之間的距離為100px,該如何實(shí)現(xiàn)呢?
1、  上下兩個(gè)<div>其中一個(gè)只指定margin-bottom:100px,而另一個(gè)<div>的margin-top:0px,這樣可以實(shí)現(xiàn)。
2、  可以在上下兩個(gè)<div>中間,添加一個(gè)空的<div>,并給空<div>指定高度為100px,也可以實(shí)現(xiàn)。


  • 全局CSS設(shè)置
1、清除所有的標(biāo)記的內(nèi)外邊距
    body,ul,li,a,img,p,input{ margin:0; padding:0; }
2、去除項(xiàng)目符號(hào)或編號(hào)前面的符號(hào)
    ul,ol,li{ list-style:none; }
3、全局鏈接效果
    a:link , a:visited{color:#444;text-decoration:none;}
    a:hover{color:red;}
4、網(wǎng)頁中所有的文字大小顏色
    body{ font-size:12px; font-family:宋體; color:#ccc; }
5、去除圖片的鏈接邊框線
    img{border:0;}
    
    
6、全局的類樣式
    .floatL{ float:left; }
    .floatR{ float:right; }
    .clear{clear:both;}
    .blank10{ height:10px; clear:both; }
    .red{ color:red; }
    .blue{ color:blue; }    
    
同一個(gè)class屬性,可以指定多個(gè)類名樣式,多個(gè)類樣式之間用空格隔開。


  • 常用的兼容性調(diào)試技巧
1、實(shí)現(xiàn)所有瀏覽器主頁居中
    Firefox下主頁居中代碼:.box{margin:0px auto}
    IE5.5下主頁居中代碼:body{text-align:center;}
    
    將以上兩種代碼,合在一齊書寫:
    
    body{
        font-size:20px;
        color:#333;
        font-family:Arial;
        text-align:center; /*ie5,6主頁居中*/
        background-color:#ccc url(../images/img.png) repeat-x;
        
    }
    
    .box{
        width:1000px;
        margin:0px auto;
        text-align:left;
    }
    
    2、單行文本上下居中
    h1{
        height:30px;
        line-height:30px;
}


3、在IE6下,左右margin會(huì)加倍,應(yīng)該是IE6下的一個(gè)bug
提示:排版時(shí),能使用padding解決的,堅(jiān)決不用margin。如果實(shí)在想用的話,就使用其中一邊。
解決的方案:使用 display:inline;

  • CSS HACK
針對(duì)不同瀏覽器,書寫不同的CSS代碼的過程,稱為“CSS HACK”。
也就是說:寫一個(gè)CSS代碼,讓IE6識(shí)別,其它瀏覽器不識(shí)別。
下面,針對(duì)不同瀏覽器,有幾個(gè)符號(hào):
    這些符號(hào)是在CSS屬性的前面加的,用于分辨不同的瀏覽器版本。
    “*”IE6和IE7都識(shí)別。如:.box{ *background-color:red; }
    “_”只有IE6識(shí)別。如:.box{ _background-color:green;}

注意:CSSHACK不是W3C的標(biāo)準(zhǔn),因此,我們盡量少用。如果你調(diào)試兼容性,調(diào)試不好時(shí),可以偶爾用一下。

JavaScript部分

JavaScript是一種小型的、輕量級(jí)的、面向?qū)ο蟮?、跨平臺(tái)的客戶端腳本語言。
JavaScript是嵌入到瀏覽器軟件當(dāng)中的去的,只要你的電腦有瀏覽器就可以執(zhí)行JS程序了。
JavaScript是一種面向?qū)ο蟮某绦蛘Z言。
在程序中,對(duì)象是由“屬性”和“方法”構(gòu)成。
在現(xiàn)實(shí)中,男女朋友就是一個(gè)“對(duì)象”?!皷|西”就是“對(duì)象”。一個(gè)“物體”就是“對(duì)象”。

    
“對(duì)象”有各種各樣的特征(屬性),如:身高、體重、年齡、姓名、學(xué)歷等。
“對(duì)象”有很多方法。“人”這個(gè)對(duì)象,可以干什么?或者“人的行為”。如:開飛機(jī)、打電腦、上網(wǎng)等。
注意:JS中的對(duì)象只要會(huì)用就可以了,不需要我們自己去開發(fā)對(duì)象。
跨平臺(tái):JS程序可以在多種平臺(tái)下運(yùn)行,如:windows、linux、mac、IOS等。
客戶端腳本程序:JS只能在客戶端的瀏覽器來運(yùn)行,不能在服務(wù)器端來運(yùn)行。
瀏覽器是一個(gè)翻譯器,可以翻譯三種代碼:HTML代碼、CSS代碼、JavaScript代碼。
JavaScript能干什么?
    表單驗(yàn)證:是JS最基本的功能。
    動(dòng)態(tài)HTML:可以實(shí)現(xiàn)一些動(dòng)態(tài)的、重復(fù)的效果。
    交互式:人機(jī)交互,通過鍵盤或鼠標(biāo),與網(wǎng)頁中的元素進(jìn)行交互。
    
JavaScript名稱的由來?
JavaScript最初叫“LiveScript”,是網(wǎng)景公司(Netscape)公司開發(fā),為自己的瀏覽器Navigator2.0開的客戶端語言。
想借助Java的名氣很快成長(zhǎng)起來,因此改名為JavaScript。
Java和JavaScript是兩個(gè)公司的兩個(gè)“東西”。

<script></script>標(biāo)記
JS代碼也是嵌入到HTML文檔中去的。
同一個(gè)網(wǎng)頁中,可以有HTML代碼、CSS代碼、JavaScript代碼。
通過<script></script>來引入JS程序代碼
 

常用的兩個(gè)客戶端輸出方法
document.write(str)
    描述:在網(wǎng)頁的<body>標(biāo)記,輸出str的內(nèi)容。
    document意思“文檔”,就是整個(gè)網(wǎng)頁了。
    document是一個(gè)文檔對(duì)象,代表整個(gè)網(wǎng)頁。
    write()是document對(duì)象的一個(gè)輸出方法。
    “.”小數(shù)點(diǎn):通過小數(shù)點(diǎn)(.)來調(diào)用對(duì)象的方法。
    str:表示要輸出的內(nèi)容。
    
    
window.alert(str)
    描述:在當(dāng)前窗口中彈出一個(gè)警告對(duì)話框,str為對(duì)話框中顯示的內(nèi)容。
    window代表當(dāng)前瀏覽器窗口,window是一個(gè)窗口對(duì)象。
    alert()方法:彈出一個(gè)對(duì)話框。
    str:表示要輸出的內(nèi)容。


JS中的注釋
    HTML的注釋:<!—注釋內(nèi)容-->
    CSS注釋:/* 注釋 */
    JavaScript的注釋:// 或 /*  多行注釋 */


  • 變量
1、變量的概念
?   變量是變化的一個(gè)量。
?   變量可以看成是一個(gè)“未知數(shù)”。 x = 10
?   變量可以看成是一個(gè)“符號(hào)”“代號(hào)”。
?   變量可以看成是賓館的“房間號(hào)”。
?   變量一般是指程序的數(shù)據(jù)。
?   變量是在內(nèi)存中存在和運(yùn)行的。
?   變量是臨時(shí)存在的數(shù)據(jù)。我們可以把計(jì)算機(jī)內(nèi)存看成是一個(gè)一個(gè)的“小格子”。每個(gè)“小格子”里可以存儲(chǔ)一個(gè)變量的名稱和變量的值。



2、變量的聲明
    變量的聲明,就相當(dāng)于預(yù)訂賓館的“房間”。
    語法格式:var 變量名 = 變量值
    聲明變量是使用系統(tǒng)關(guān)鍵字var來進(jìn)行的。
    舉例:
    var name;         //聲明一個(gè)變量
    var name,sex,edu;  //同時(shí)聲明多個(gè)變量,多個(gè)變量間用英文下的逗號(hào)隔開
    var name = “張三”;   //一邊聲明一邊賦值
3、變量的命名規(guī)則
    變量名可以包含字母、數(shù)字、下劃線。
    變量名不能以數(shù)字開頭,可以以字母或下劃線開頭。如:var  _name;(正確的)   var 3abc;(錯(cuò)誤的)
    變量名不能是系統(tǒng)關(guān)鍵字。如:var、switch、for、try、case、else、while等。
    JS中的變量名是區(qū)分大小寫的。如:name和Name是兩個(gè)變量
    JS中變量的名稱一定要有意義。
    如果變量名由多個(gè)單詞構(gòu)成的話,該如何表示呢?
    “駝峰式命名”:第一個(gè)單詞全小寫,后面的每一個(gè)單詞首字母大寫。如:var  getUserName
    “下劃線式命名”:所有單詞全小寫,中間用下劃線連接。如:var  get_user_name
4、給變量賦值
    給變量賦值,就是往“空間”中裝東西。
    使用賦值號(hào)“=”來給變量賦值。
    語法:var 變量名 = 變量值
    舉例:var name = “張三”;
    
    “=”的理解
        將“=”右邊的“運(yùn)算結(jié)果”賦給左邊的變量名。
        應(yīng)該是“=”右邊先運(yùn)算,再把運(yùn)算的結(jié)果,賦給左邊的變量。
        “=”左邊只能是一個(gè)變量名,而不能是“運(yùn)算表達(dá)式”。

變量的數(shù)據(jù)類型

變量是有數(shù)據(jù)類型的,這個(gè)類型來源于“變量的值”,換句話說:值是什么類型的,變量就是什么類型的。
JS中變量的類型有:數(shù)值型、字符型、布爾型、undefined、null、array、object、function

1、數(shù)值型:可以進(jìn)行算術(shù)運(yùn)算的(加、減、乘、除)
    數(shù)值型包括:整型(整數(shù))和浮點(diǎn)型(小數(shù))。
     
2、字符型:用單引號(hào)或雙引號(hào)引起來的一個(gè)字符串
    注意:字符型變量不能進(jìn)行算術(shù)運(yùn)算,只能進(jìn)行“連接”運(yùn)算。
  • JS中的運(yùn)算符
運(yùn)算時(shí),只能進(jìn)行同類型運(yùn)算。如果類型不同,將進(jìn)行類型轉(zhuǎn)換。
1、算術(shù)運(yùn)算符:+、-、*、/
    var a = 10;
    var b = a + 10;  // b = a+10 = 10+10=20
    注意:如果“+”左右兩個(gè)操作數(shù),都是數(shù)值的話,將執(zhí)行“加法”運(yùn)算。
    (2)如果“+”左右有一個(gè)操作數(shù)是字符的話,那么,另一個(gè)值將轉(zhuǎn)成字符串。這兩個(gè)操作數(shù)進(jìn)行的是“連接”運(yùn)算。

    
    2、賦值運(yùn)算符:=、+=
    賦值運(yùn)算符,將“=”右邊的運(yùn)算結(jié)果,賦給左邊的變量。
    var a = 10+100;
    “+=”先加后等
        //聲明變量,并且給變量賦值

    var a = 10;
    //變量a先加20,再將運(yùn)算結(jié)果,賦給左邊的變量
    a += 20;   // 展開后 a = a + 20 = 10+20=30 

  • JS程序的基本語法
    JS是區(qū)分大小寫的。如:Name和name是兩個(gè)變量
    JS中每一條語句,一般以英文下的分號(hào)(;)結(jié)束。這個(gè)分號(hào)不是必須的。為了向PHP兼容,最好加上分號(hào)。
    運(yùn)算符和變量,以及操作之間可以使用空格分開,這樣的程序較容易閱讀。
    var a = 100   和   var a=100   是一樣的

變量的類型——就是數(shù)據(jù)類型
變量的數(shù)據(jù)類型:數(shù)值型、字符型、布爾型、未定義型、空型、數(shù)組、對(duì)象、函數(shù)
變量的數(shù)據(jù)類型,分兩大類:
    基本數(shù)據(jù)類型:數(shù)值型、字符型、布爾型、未定義型、空型。很顯著的特點(diǎn):一個(gè)變量名只能存一個(gè)值。
    舉例:var a = 10;
    復(fù)合數(shù)據(jù)類型:數(shù)組、對(duì)象、函數(shù)。顯著的特點(diǎn):一個(gè)變量名,可能存多個(gè)值。
    舉例:var arr = [10,20,30,40]
    
    1、數(shù)值型:變量能進(jìn)行數(shù)學(xué)運(yùn)算的
    數(shù)值型包括:整型、浮點(diǎn)型、NaN。
    var a = 100;
    var a = 0.9;
    var a = 0;
    數(shù)值型中還有一個(gè)很特殊的值NaN。NaN(not a number)不是一個(gè)數(shù)字。
    當(dāng)將其它數(shù)據(jù)類型,轉(zhuǎn)成數(shù)值型,轉(zhuǎn)不過去,但程序又不能報(bào)錯(cuò),這時(shí)將返回一個(gè)NaN的值。

    2、字符型:用單引號(hào)或雙引號(hào),引起來的一個(gè)字串。
    var a = “我是一個(gè)字符串”;
    var b = ‘我也是一個(gè)字符串’;
    var c = “”;
    
    單引號(hào)和雙引號(hào)之間可以相互嵌套
    單引號(hào)內(nèi)只能嵌套雙引號(hào);
    雙引號(hào)內(nèi)只能嵌套單引號(hào)。
    
    3、布爾型
    布爾型又稱邏輯型。只有兩個(gè)值:true(真)、false(假)。
    布爾型只有兩個(gè)狀態(tài)。如:性別、婚否、燈的開關(guān)、是否列入黑名單等。
    var a = true;
    var b = false;
    布爾型常用if條件判斷語句中

4、未定義型
    當(dāng)一個(gè)變量定義,但未賦值時(shí),將返回未定義型,未定義型的值只有一個(gè)undefined。
    當(dāng)一個(gè)對(duì)象的屬性不存在,也返回未定義型。
5、空型
    當(dāng)一個(gè)對(duì)象不存在時(shí),將返回空型,空型的值只有一個(gè)null。
    也可以理解為:是一個(gè)對(duì)象的占位符。
    如果你想清除一個(gè)變量的值的話,可以給賦一個(gè)null的值。
        var a = 100;
        var a = null ;  //將一個(gè)null賦給一個(gè)變量,用于清除它的值
變量的數(shù)據(jù)類型轉(zhuǎn)換
變量的類型轉(zhuǎn)換,一般情況是JS自動(dòng)轉(zhuǎn)換的,但也有些時(shí)候需要手動(dòng)轉(zhuǎn)換。
1、其它類型轉(zhuǎn)成布爾型


函數(shù)和方法的區(qū)別
Boolean(a)  //函數(shù)是可以獨(dú)立使用的
document.write(a)   //方法不能獨(dú)立使用,方法是必須要屬于哪一個(gè)對(duì)象。


2、其它類型轉(zhuǎn)成字符型
var a = “”;
//“+”左右只要有一個(gè)字符串,那么另一個(gè)一定得轉(zhuǎn)成字符串,才能運(yùn)算
var b = a + true; // b = a + true = “true”

3、其它類型轉(zhuǎn)成數(shù)值型

  • 全局函數(shù)(頂層函數(shù))
二元運(yùn)算符:運(yùn)算符左右,應(yīng)該有兩個(gè)操作數(shù)。如:10 + 20 
一元運(yùn)算符:只有一個(gè)操作數(shù)。如:typeof a  或  typeof(a)


判斷變量的數(shù)據(jù)類型:typeof()
使用一元運(yùn)算符typeof(),可以測(cè)試一個(gè)變量的類型。
typeof()測(cè)試的結(jié)果是一個(gè)類型字符串。
typeof()的結(jié)果字符串有幾種情況: “string” 、 “number” 、 “boolean” 、 “undefined” 、 “object” 、 “function”
    另外:null、對(duì)象、數(shù)組這三種類型,都將返回 “object”。

從字符串中提取整數(shù)和浮點(diǎn)數(shù)函數(shù)
parseInt()系統(tǒng)函數(shù)、全局函數(shù)
功能:在一個(gè)字符串中,從左往右提取整型。如果遇到非整型的內(nèi)容,則停止提取,并返回結(jié)果。
注意:如果第一個(gè)字符就是非整數(shù),則立即停止,并返回NaN。
parseInt(“120px”) = 120
parseInt(“120.98”) = 120
parseInt(“a120px”) = NaN



parseFloat()系統(tǒng)函數(shù)、全局函數(shù)
功能:在一個(gè)字符串中,從左往右提取浮點(diǎn)型;遇到非浮點(diǎn)型內(nèi)容,則停止提取,并返回結(jié)果。
注意:如果第一個(gè)字符是非浮點(diǎn)型,則立即停止,并返回NaN。
    parseFloat(“120px”) = 120
    parseFloat(“120.98”) = 120.98
    parseFloat(“.98”) = 0.98
    parseFloat(“a.98”) = NaN

JS運(yùn)算符
要進(jìn)行各種各樣的運(yùn)算,就要使用不同的運(yùn)算符號(hào)。
1、算術(shù)運(yùn)算符:+、-、*、/、%、++、--
    A = 10 + 20;
    A = 10 – 20;
    A = 10 * 20;
    A = 10 / 20;
    (1)“%”取余運(yùn)算符,兩個(gè)數(shù)相除,取余數(shù)。
        A = 10 % 3;  // A = 1,如果余數(shù)不為0,則兩個(gè)不能整除
        A = 10 % 2;  // A = 0,如果余數(shù)為0,則兩個(gè)數(shù)能除盡

        
(2)“++”加1運(yùn)算符、自加1
    “++”可以作前綴(++i),也可以作后綴(i++)。
    如果不賦值的話,i++和++i的結(jié)果是一樣的。
如果要賦值的話,i++和++i的結(jié)果就不一樣了


(3)“--”減1運(yùn)算符,自減1
        “--”可以作前綴(--i),也可以作后綴(i--)。
        如果不賦值的話,i--和--i的結(jié)果是一樣的。
        如果要賦值的話,i++和++i的結(jié)果就不一樣了
        “--”的例了與“++”例子一樣,自己進(jìn)行測(cè)試。

2、賦值運(yùn)算符:=、+=、-=、*=、/=
    “+=”先加后等。如:a += 10  //展開后  a = a + 10
    “-=”先減后等。如:a -= 10   //展開后  a = a - 10
    “*=”先乘后等。如:a *= 10  //展開后  a = a * 10
    “/=”先除后等。如:a /= 10   //展開后  a = a / 10
3、字符串運(yùn)算符:+、+=
    字符串只能進(jìn)行“連接”運(yùn)算,不能進(jìn)行其它運(yùn)算。
    var a = “abc”;
    var b = a + “def”;   // 結(jié)果b = a + “def” = “abc” + “def” = “abcdef”
    
    var a = “abc”;
    a += 10;   // 結(jié)果a = a + 10 = “abc” + 10 = “abc10”

4、比較運(yùn)算符:>、<、>=、<=、==、!=、===、!==
    比較運(yùn)算符的運(yùn)算結(jié)果是布爾值(true或false)。
    A = 10 > 20;       // 結(jié)果A=false
    A = 20>=20;       // 結(jié)果A=true
    A = 10%2 == 0;    // 結(jié)果A=true
    A = 10%2 == “0”;  // 結(jié)果A=true
    A = 10%3 != 0;    // 結(jié)果A=true
    A = 10%2 === “0”;  //結(jié)果A=false
    
    “=”是賦值號(hào)。如:a = 10
    “==”等于。只比較兩個(gè)變量的值,而不管類型。只要值一樣,就返回true,否則返回false。
    “===”全等于。既比較變量,也判斷類型。如果類型和值都一樣,返回true,否則返回false。

5、邏輯運(yùn)算符:&&、||、!
    邏輯運(yùn)算符的運(yùn)算結(jié)果有兩個(gè)true或false。
    “&&”邏輯與(并且關(guān)系)。如果左右兩個(gè)操作數(shù)都為true,則結(jié)果為true,否則,結(jié)果為false。
            邏輯與,就是兩個(gè)條件同時(shí)滿足時(shí),則結(jié)果為true。

6、三元運(yùn)算符:?:
    所謂“三元運(yùn)算符”就是指三個(gè)操作數(shù)。
    語法:條件表達(dá)式 ? 結(jié)果1 : 結(jié)果2
    語法:操作數(shù)1 ? 操作數(shù)2 : 操作數(shù)3
    含義:如果條件為true,則執(zhí)行“結(jié)果1”的代碼;如果條件為false,則執(zhí)行“結(jié)果2”的代碼。
    其實(shí):三元運(yùn)算符,就是if else的變形形式。



  • window.prompt()
    功能:彈出一個(gè)輸入框,讓用戶來輸入內(nèi)容。
    語法:var  year = window.prompt(text[,defaultText])
    參數(shù):
    Text:提示信息。
    defaultText:可選項(xiàng),也就是可有可無。輸入框中的默認(rèn)內(nèi)容。
    返回值
    如果單擊“確定”按鈕,返回一個(gè)字符串的數(shù)據(jù)。
    如果單擊“取消”按鈕,返回一個(gè)null。

  • if條件判斷
1、語法結(jié)構(gòu)——只判斷true,不判斷false
if(條件判斷:結(jié)果只有兩個(gè)true或false)
{
    條件為true,將執(zhí)行該代碼;
}
說明:
    if是系統(tǒng)關(guān)鍵字,必須全小寫。
    ()小括號(hào)中,是條件判斷語句,判斷的結(jié)果只有兩種可能true或false。
    {}大括號(hào)中,是條件為true時(shí),將執(zhí)行的程序代碼。
    
    2、語法結(jié)構(gòu)——既判斷true,也判斷false
if(條件判斷:結(jié)果只有兩個(gè)true或false)
{
    條件為true,將執(zhí)行該代碼;
}else
{
    條件為false,將執(zhí)行該代碼;
}
    如果條件為true,則執(zhí)行第一個(gè)大括號(hào){}中的代碼;
    如果條件為false,則執(zhí)行第二個(gè)大括號(hào){}中的代碼。
    其中,if和else都是系統(tǒng)關(guān)鍵字。else表示“否則”的意思。

  • 特殊運(yùn)算符
    new運(yùn)算符:創(chuàng)建一個(gè)對(duì)象。如:var today = new Date(); //創(chuàng)建一個(gè)當(dāng)前系統(tǒng)日期時(shí)間對(duì)象
    delete運(yùn)算符:刪除數(shù)組的元素,或者對(duì)象的屬性。
    typeof運(yùn)算符:一元運(yùn)算符,主要功能:判斷變量的類型的。如:typeof name  或  typeof(name)
    點(diǎn)運(yùn)算符(.):主要應(yīng)用在對(duì)象中,通過點(diǎn)運(yùn)算符(.)去調(diào)用屬性或方法。如:window.alert(“OK”)
    [ ]中括號(hào):主要用來訪問數(shù)組元素的。如:arr[0] = 100;  //找到下標(biāo)為0的數(shù)組元素,并重新賦值
if條件判斷語句:條件成立,執(zhí)行什么代碼;條件不成立,執(zhí)行什么代碼
結(jié)構(gòu)一:只判斷真(true),條件為假,什么也不做
if(條件判斷:判斷結(jié)果是一個(gè)布爾值)
{
    條件為真(true),執(zhí)行的代碼
}
結(jié)構(gòu)二:既判斷真,也判斷假
if(條件判斷)
{
    條件為真,執(zhí)行的代碼
}else
{
    條件為假,執(zhí)行的代碼
}
結(jié)構(gòu)三:多條件判斷
if(條件1)
{
    代碼1;
}else if(條件2)
{
    代碼2;
}else if(條件3)
{
    代碼3;
}else
{
    如果以上條件都不成立,則執(zhí)行該代碼;
}
注意:雖然有多個(gè)條件,但各條件之間是“或”的關(guān)系。每時(shí)每刻,只能有一個(gè)條件成立,不能同時(shí)滿足多個(gè)條件。



switch分支語句
描述:根據(jù)一個(gè)變量的不同取值,來執(zhí)行不同的代碼。
語法結(jié)構(gòu):
switch(變量)
{
    case 值1:
        代碼1;
        break;
    case 值2:
        代碼2;
        break;
    case 值3:
        代碼3;
        break;
    default:
        如果以上條件都不滿足,則執(zhí)行該代碼;
}
switch結(jié)構(gòu)說明:
    switch、case、break、default都是系統(tǒng)關(guān)鍵字,都必須全小寫。
    switch后的小括號(hào)():小括號(hào)內(nèi)一般是一個(gè)變量名,這個(gè)變量可能會(huì)有不同的取值。
    每個(gè)case的值,與變量的值進(jìn)行比對(duì),如果一致就執(zhí)行該case后的代碼。
    所有的case都是“或”的關(guān)系,每時(shí)每刻只有一個(gè)case會(huì)滿足條件。
    每個(gè)case中的代碼執(zhí)行完畢后,必須要用break語句結(jié)束,結(jié)束之后,程序?qū)⑻絪witch結(jié)束大括號(hào)之后運(yùn)行。
    如果不寫break語句的話,下面所有的case語句都會(huì)執(zhí)行一遍。

if多條件判斷和switch的區(qū)別
if中的條件一般是一個(gè)范圍(a>100),而switch中的條件一般是一個(gè)變量的不同取值。
while循環(huán):只要條件成立,就重復(fù)不斷的執(zhí)行循環(huán)體代碼
while(條件判斷)
{
    如果條件為true,則執(zhí)行循環(huán)體代碼
}



while循環(huán)結(jié)構(gòu)說明:
    在循環(huán)開始前,必須要對(duì)變量初始化(聲明變量,給變量給個(gè)初始值)。
    如果while的條件為true,則會(huì)重復(fù)不斷的執(zhí)行循環(huán)體中({ })的代碼。如果條件為false,則退出循環(huán)。
    在循環(huán)體中,必須要有“變量更新”的語句。換句話說:兩次循環(huán)的變量的值不能一樣,如果一樣,會(huì)造成“死循環(huán)”。


for循環(huán)
for(變量初始化 ; 條件判斷 ;  變量更新)
{
    循環(huán)體代碼;
}

break語句和continue語句
break語句
    描述:break語句,用于無條件結(jié)束各種循環(huán)(退出循環(huán))和switch。
    說明:一般情況下,需要在break語句之前加一個(gè)條件判斷。換句話說:就是條件成立了,就退出循環(huán)。
    
continue語句
    描述:結(jié)束本次循環(huán),而開始下一次循環(huán)。continue之后的代碼不再執(zhí)行了。
    說明:一般情況下,需要在continue語句之前加一個(gè)條件判斷。


  • 數(shù)組
1、數(shù)組的概念
    一組數(shù)的集合,稱為“數(shù)組”。
    var arr = [10,20,30,40,50];
    var arr = [“張三” , “男” , 24, “大?!?, “北京科技大學(xué)” , “0101-787656544” , “99887766” ];
2、數(shù)組元素
    數(shù)組中的每個(gè)值,稱為一個(gè)“數(shù)組元素”。
3、數(shù)組索引
    數(shù)組中有多個(gè)值,每個(gè)值都有一個(gè)“編號(hào)”,通過“編號(hào)”可以訪問到數(shù)組中的每個(gè)值。
    數(shù)組中的“編號(hào)”又稱“下標(biāo)”或“索引號(hào)”。
    數(shù)組中的“下標(biāo)號(hào)”是從0開始的正整數(shù)。也就是說:第1個(gè)數(shù)組元素下標(biāo)為0,第2個(gè)數(shù)組元素下標(biāo)為1,第3個(gè)數(shù)組元素下標(biāo)為2,依次類推。
    第1個(gè)數(shù)組元素的下標(biāo)一定是0,最后一個(gè)數(shù)組元素的下標(biāo)是:長(zhǎng)度-1。
    使用數(shù)組的目的,就是使用循環(huán)遍歷數(shù)組很方面。
4、數(shù)組元素的訪問
    var arr = [10,20,30,40,50];
    var arr = [“張三” , “男” , 24, “大?!?, “北京科技大學(xué)” , “0101-787656544” , “99887766” ];

    訪問的方法是:數(shù)組變量名,后跟一個(gè)中括號(hào)[],[]中括號(hào)內(nèi)是數(shù)組元素的下標(biāo)。如:arr[3]

    
5、數(shù)組的長(zhǎng)度:數(shù)組長(zhǎng)度:就是指數(shù)組中元素的總個(gè)數(shù)。

數(shù)組的創(chuàng)建方法
1、使用new關(guān)鍵字和Array()來創(chuàng)建數(shù)組
    var arr = new Array();  //創(chuàng)建一個(gè)空數(shù)組
    var arr = new Array(“周更生” , “男” , 30);  //創(chuàng)建一個(gè)數(shù)組,并初始化數(shù)組的元素



2、使用[]來創(chuàng)建
var arr = [1,2,3,4,5];
中括號(hào)[]中,使用英文下的逗號(hào)分隔多個(gè)值。
    數(shù)組元素的值,可以是任何類型。如:字符型、數(shù)值型、布爾型、數(shù)組型、對(duì)象型、函數(shù)。
    
數(shù)組的操作
    讀取元素:讀取已經(jīng)存在下標(biāo)的元素。如:var age = arr[2];
    修改元素:修改已經(jīng)存在下標(biāo)的元素的值(重新賦值)。如:arr[2] = 26;
    增加元素:添加一個(gè)不存在的下標(biāo)的元素。
    刪除元素:使用關(guān)鍵字delete,只能刪除元素的值,而下標(biāo)還在。

數(shù)組對(duì)象屬性length
一個(gè)數(shù)組,其實(shí)就是一個(gè)“數(shù)組對(duì)象”。把數(shù)組看成“對(duì)象”,是為了使用數(shù)組對(duì)象的屬性或方法。
在JS中,所有的內(nèi)容都是“對(duì)象”。
那么,length就是數(shù)組對(duì)象的一個(gè)屬性。如:var len = arrObj.length;
length屬性,可以動(dòng)態(tài)獲取數(shù)組的長(zhǎng)度。

  • 函數(shù)
1、函數(shù)的概念
函數(shù),是將一段公共的代碼進(jìn)行封裝,給它起個(gè)名字叫“函數(shù)”。
函數(shù)可以一次定義,多次調(diào)用。
函數(shù),可以將常用的功能代碼,進(jìn)行封裝。如:用戶名的驗(yàn)證、驗(yàn)證碼函數(shù)、郵箱驗(yàn)證、手機(jī)號(hào)碼驗(yàn)證



2、函數(shù)的定義格式
function functionName([參數(shù)1][,參數(shù)2][,參數(shù)N]){
    函數(shù)的功能代碼;
    [return 參數(shù)r]
}
函數(shù)定義格式的說明
    function關(guān)鍵字是必須的,全小寫。
    functionName:函數(shù)的名稱。函數(shù)名的命名規(guī)則與變量命名一樣。
    ():是定義函數(shù)時(shí)接收數(shù)據(jù)的參數(shù)。參數(shù)可有可無,多個(gè)參數(shù)之間用逗號(hào)隔開。
    形參(形式參數(shù)):定義函數(shù)時(shí)的參數(shù)就是“形參”。主要用來接收調(diào)用函數(shù)者傳過來的數(shù)據(jù)。
    形參的名稱,與變量的命名規(guī)則一樣。
    但形參不能用“var”關(guān)鍵字定義。
    參數(shù)只能存在于函數(shù)中。
    參數(shù)不需要聲明,直接使用。
    實(shí)參(實(shí)際參數(shù)):調(diào)用函數(shù)時(shí)的參數(shù)稱為“實(shí)參”。實(shí)參就是真正的數(shù)據(jù)。
    {}是函數(shù)的功能。
    return語句,用于向函數(shù)調(diào)用者返回一個(gè)值,并立即結(jié)束函數(shù)的運(yùn)行。
    return用于中止函數(shù)的運(yùn)行。
    break用于中止各種循環(huán)。

3、函數(shù)的調(diào)用
    函數(shù)定義是不會(huì)執(zhí)行的,那么,函數(shù)必須調(diào)用,才會(huì)有效果。
    函數(shù)的調(diào)用:直接寫函數(shù)名后跟小括號(hào)(),如果有參數(shù)則寫參數(shù)。小括號(hào)不能省略。

4、函數(shù)的參數(shù)
形參的個(gè)數(shù),要與實(shí)參的個(gè)數(shù)一致;
形參的順序,要與實(shí)參的順序一致。


全局變量和局部變量
全局變量:可以在網(wǎng)頁的任何地方(函數(shù)內(nèi)部和函數(shù)外部)使用的變量,就是“全局變量”。
          在函數(shù)外部定義的變量,就是“全局變量”。
          “全局變量”既可以在函數(shù)外使用,也可以在函數(shù)內(nèi)部使用。
          “全局變量”在網(wǎng)頁關(guān)閉時(shí),自動(dòng)消失(釋放空間)。
局部變量:只能在函數(shù)內(nèi)部使用的變量,稱為“局部變量”。
          “局部變量”在函數(shù)內(nèi)部定義,在函數(shù)內(nèi)部使用。
          “局部變量”在函數(shù)外部無法訪問。
          “局部變量”在函數(shù)執(zhí)完完畢就消失了。

在函數(shù)內(nèi)部,省略關(guān)鍵字var定義的變量是“全局變量”。
注意:var關(guān)鍵字盡量別省略,省略后“全局變量”和“局部變量”會(huì)搞不清楚。


拷貝傳值和引用傳值
1、拷貝傳值:基本數(shù)據(jù)類型都是“拷貝傳值”。
    拷貝傳值,就是將一個(gè)變量的值“拷貝”一份,傳給了另一個(gè)變量。
    拷貝傳值中,兩個(gè)變量之間沒有任何聯(lián)系,修改其中一個(gè)變量的值,另一個(gè)不會(huì)改變。
    這兩個(gè)變量之間,是相互獨(dú)立的,沒有任何聯(lián)系。

基本數(shù)據(jù)類型存在“快速內(nèi)存”“棧內(nèi)存”中的。因?yàn)?,基本?shù)據(jù)類型只有一個(gè)變量名和一個(gè)變量值。







2、引用傳址:復(fù)合數(shù)據(jù)類型都是“引用傳地址”
復(fù)合數(shù)據(jù)類型的存儲(chǔ)分兩步:
(1)將變量名和數(shù)據(jù)地址存在“快速內(nèi)存”“棧內(nèi)存”中。
(2)具體的數(shù)據(jù)存在“慢速內(nèi)存”“堆內(nèi)存”中。

引用傳址:將一個(gè)變量的數(shù)據(jù)地址,“拷貝”一份,傳給另了另一個(gè)變量。這兩個(gè)變量,指向“同一個(gè)地址”。
大家共享同一份數(shù)據(jù)。
如果其中一個(gè)變量的值發(fā)生了改變,那么,另一個(gè)變量的值也得變。要變一起變。
因此,這兩個(gè)變量是有聯(lián)系的,要變大家一起變。

匿名函數(shù):沒有名字的函數(shù)。
匿名函數(shù),不能單獨(dú)定義的,也不能單獨(dú)調(diào)用。
匿名函數(shù),一般是作為數(shù)據(jù)給其它變量賦值的。可以給普通變量、數(shù)組元素、對(duì)象的屬性賦值。


二維數(shù)組
給一個(gè)數(shù)組元素,賦一個(gè)數(shù)組的值,那么,這個(gè)數(shù)組就是“二維數(shù)組”。


二維數(shù)組,就得用兩層循環(huán)來實(shí)現(xiàn)。也就是說循環(huán)套循環(huán)。
二維數(shù)組的循環(huán),與二維表格的循環(huán)一模一樣。
二維數(shù)組的訪問:數(shù)組名后跟多個(gè)連續(xù)的中括號(hào)[],第1個(gè)中括號(hào)[]代表第一維數(shù)組,第2個(gè)中括號(hào)[]代表第二維數(shù)組。

  • 對(duì)象
1、對(duì)象的概念
    人就是一個(gè)“對(duì)象”,人的特征:身高、體重、姓名、性別、年齡。每個(gè)人可以有不同的本身(方法):打電腦、炒股、開汽車等。
    對(duì)象是由“屬性”和“方法”構(gòu)成。
2、JS中對(duì)象分類



自定義對(duì)象
1、使用new關(guān)鍵字結(jié)合構(gòu)造函數(shù)Object()來創(chuàng)建一個(gè)空的對(duì)象
2、使用大括號(hào){}來創(chuàng)建一個(gè)對(duì)象

var obj = new Object();
obj.name = "hahaha";
obj.age = 22;
obj.show = function(){
    var str = "name:" + obj.name + " age:" + obj.age;
    
    return str;
}

document.write(obj.show());


var obj = {
    name:"hahaha",
    age:11,
    show:function(){
        var str = "name:" + obj.name + " age:" + obj.age;
        return str;
    }
};

  • JS內(nèi)置對(duì)象
    String對(duì)象:字符串對(duì)象,提供了對(duì)字符串進(jìn)行操作的屬性和方法。
    Array對(duì)象:數(shù)組對(duì)象,提供了數(shù)組操作方面的屬性和方法。
    Date對(duì)象:日期時(shí)間對(duì)象,可以獲取系統(tǒng)的日期時(shí)間信息。
    Boolean對(duì)象:布爾對(duì)象,一個(gè)布爾變量就是一個(gè)布爾對(duì)象。(沒有可用的屬性和方法)
    Number對(duì)象:數(shù)值對(duì)象。一個(gè)數(shù)值變量就是一個(gè)數(shù)值對(duì)象。
    Math對(duì)象:數(shù)學(xué)對(duì)象,提供了數(shù)學(xué)運(yùn)算方面的屬性和方法。
String對(duì)象的屬性和方法
    length:獲取字符串的長(zhǎng)度。如:var len = strObj.length
    toLowerCase():將字符串中的字母轉(zhuǎn)成全小寫。如:strObj.toLowerCase()
    toUpperCase():將字符串中的字母轉(zhuǎn)成全大寫。如:strObj.toUpperCase()
charAt(index)
    功能:返回指定下標(biāo)位置的一個(gè)字符。如果沒有找到,則返回空字符串。
    語法:strObj.charAt(index)
    參數(shù):index是指定的一個(gè)索引號(hào),根據(jù)index索引號(hào)來返回一個(gè)字符。


indexOf()
    功能:返回一個(gè)子字符串在原始字符串中的索引值(查找順序從左往右查找)。如果沒有找到,則返回-1。
    語法:strObj.indexOf(substr)
    參數(shù):substr代表要查找的一個(gè)子字符串。

lastIndexOf()
    功能:在原始字符串,從右往左查找某個(gè)子字符串。如果沒找到,返回-1。
    語法:strObj.lastIndexOf(substr)
    參數(shù):substr代表要查找的子字符串。
substr()
    功能:在原始字符串,返回一個(gè)子字符串。
    語法:strObj.substr(startIndex [ , length])
    說明:從下標(biāo)startIndex起,返回length個(gè)字符。
    參數(shù):
    startIndex表示查找的起始索引號(hào);
    length可選,返回幾個(gè)字符。如果省略,一直返回到結(jié)尾。
    
    
substring()
    功能:在原始字符串,返回一個(gè)子字符串。
    語法:strObj.substring(startIndex [ , endIndex])
    說明:返回從startIndex開始索引值到endIndex結(jié)束索引值之間的所有字符。
    參數(shù):
    startIndex:代表開始索引值。
    endIndex:可選項(xiàng),代表結(jié)束索引值。如果省略,一般返回到結(jié)尾的所有的字符。
    提示:如果省略第二個(gè)參數(shù),那么substr()和substring()結(jié)果一樣。
    注意:substring()返回的字符包含startIndex處的字符,不包含endIndex處的字符。
    舉例:
     “abcdefgh”.substring(0,5) = “abcde”
    

    “abcdefgh”.substr(0,5) = “abcde”
    “abcdefgh”.substring(2,3) = “c”
    “abcdefgh”.substr(2,3) = “cde”


split():將一個(gè)字符串轉(zhuǎn)成數(shù)組
    功能:將一個(gè)字符串切割成若干段。返回一個(gè)數(shù)組。
    語法:strObj.split(分割號(hào))
    參數(shù):參數(shù)是一個(gè)分割號(hào)的字符串。用指定的分割號(hào)將字符串切成若干段。
    舉例: “a,b,c,d”.split(“,”) = arr[“a” , “b” , “c” , “d”]


Array對(duì)象:一個(gè)數(shù)組變量,就是一個(gè)數(shù)組對(duì)象

length屬性:動(dòng)態(tài)獲取數(shù)組長(zhǎng)度。如:var len = arrObj.length

join()
    功能:將一個(gè)數(shù)組轉(zhuǎn)成字符串。返回一個(gè)字符串。
    語法:arrObj.join(連接號(hào))
    說明:將一個(gè)數(shù)組,用指定的“連接號(hào)”連接成一個(gè)字符串。
reverse()

    功能:將數(shù)組中各元素顛倒順序。
    語法:arrObj.reverse()
    參數(shù):無
    
    
數(shù)組元素的刪除和添加
    delete運(yùn)算符,只能刪除數(shù)組元素的值,而所占空間還在,總長(zhǎng)度沒變(arr.length)。
    以前數(shù)組元素的添加,只能向后添加,不能向前添加。

    shift():刪除數(shù)組中第一個(gè)元素,返回刪除的那個(gè)值,并將長(zhǎng)度減1。
    pop():刪除數(shù)組中最后一個(gè)元素,返回刪除的那個(gè)值,并將長(zhǎng)度減1。

    unshift():往數(shù)組前面添加一個(gè)或多個(gè)數(shù)組元素,長(zhǎng)度要改變。arrObj.unshift(“a” , “b” , “c”)
    push():往數(shù)組結(jié)尾添加一個(gè)或多個(gè)數(shù)組元素,長(zhǎng)度要改變。arrObj.push(“a” , “b” , “c”)
  • Date對(duì)象
Date對(duì)象和String對(duì)象不太一樣,定義了一字符串,其實(shí)就是一個(gè)String對(duì)象,就可以直接調(diào)用屬性和方法。
Date對(duì)象的使用,必須使用new關(guān)鍵字來創(chuàng)建,否則,無法調(diào)用Date對(duì)象的屬性和方法。

創(chuàng)建Date對(duì)象的方法
(1)創(chuàng)建當(dāng)前(現(xiàn)在)日期對(duì)象的實(shí)例,不帶任何參數(shù)
        var today = new Date();

        
(2)創(chuàng)建指定時(shí)間戳的日期對(duì)象實(shí)例,參數(shù)是時(shí)間戳。
    時(shí)間戳:是指某一個(gè)時(shí)間距離1970年1月1日0時(shí)0分0秒,過去了多少毫秒值(1秒=1000毫秒)。
        var timer = new Date(10000);  //時(shí)間是 1970年1月1日0時(shí)0分10秒

(3)指定一個(gè)字符串的日期時(shí)間信息,參數(shù)是一個(gè)日期時(shí)間字符串
        var timer = new Date(“2015/5/25 10:00:00”);

(4)指定多個(gè)數(shù)值參數(shù)
        var timer = new Date(2015+100,4,25,10,20,0);  //順序?yàn)椋耗?、月、日、時(shí)、分、秒,年、月、日是必須的。

    getFullYear():獲取四位的年份。
    getMonth():獲取月份,取值0-11。
    getDate():獲取幾號(hào),取值1-31
    getHours():獲取小時(shí)數(shù)。
    getMinutes():分鐘數(shù)
    getSeconds():秒數(shù)
    getMilliseconds()毫秒
    getDay()星期
    getTime()毫秒值,距離1970年1月1日至今的毫秒值
    

  • Math數(shù)學(xué)對(duì)象
Math對(duì)象是一個(gè)靜態(tài)對(duì)象,換句話說:在使用Math對(duì)象,不需要?jiǎng)?chuàng)建實(shí)例。
    Math.PI:圓周率。
    Math.abs():絕對(duì)值。如:Math.abs(-9) = 9
    Math.ceil():向上取整(整數(shù)加1,小數(shù)去掉)。如:Math.ceil(10.2) = 11
    Math.floor():向下取整(直接去掉小數(shù))。如:Math.floor(9.888) = 9
    Math.round():四舍五入。如:Math.round(4.5) = 5;    Math.round(4.1) = 4
    Math.pow(x,y):求x的y次方。如:Math.pow(2,3) = 8
    Math.sqrt():求平方根。如:Math.sqrt(121) = 11
    Math.random():返回一個(gè)0到1之間的隨機(jī)小數(shù)。如:Math.random() = 0.12204467732259783

  • Number數(shù)值對(duì)象
一個(gè)數(shù)值變量,就是一個(gè)數(shù)值對(duì)象(Number對(duì)象)。
toFixed()
    功能:將一個(gè)數(shù)值轉(zhuǎn)成字符串,并進(jìn)行四舍五入,保留指定位數(shù)的小數(shù)。
    語法:numObj.toFixed(n)
    參數(shù):n就是要保留的小數(shù)位數(shù)。
    舉例:
var a = 123.9878;
a = a.toFixed(2);   // a = “123.99”

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容