成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

JavaScript入門(mén)

wangdai / 3091人閱讀

摘要:介紹編程數(shù)據(jù)結(jié)構(gòu),算法,內(nèi)存分配表單驗(yàn)證需要一門(mén)語(yǔ)言可以直接運(yùn)行在瀏覽器中,來(lái)完成表單驗(yàn)證的功能。

Javascript介紹
編程(數(shù)據(jù)結(jié)構(gòu),算法,內(nèi)存分配)
表單驗(yàn)證

需要一門(mén)語(yǔ)言可以直接運(yùn)行在瀏覽器中,來(lái)完成表單驗(yàn)證的功能。

瀏覽器廠商

網(wǎng)景 firefox
    js 標(biāo)準(zhǔn) 
    js解釋器

IE
    js
    js解釋器

google
    js
    js解釋器

ECMAScript

Javascript
1) ECMAScrpt 【js標(biāo)準(zhǔn)】(兼容器100%)

注釋 // 、/**/
變量
操作符
流程控制語(yǔ)句
數(shù)組
對(duì)象
函數(shù)
正則表達(dá)式
...
所有的JS解釋器都可以兼容ECMAScript
【lodash】 ECMAScript庫(kù)

2) DOM【js操作html的api】

Document object model     文檔對(duì)象模型
var dom = document.getElementsByTagName("input");
var dom = document.getElementsById("input_name");
dom.onclick = function(){}
js語(yǔ)言
    基礎(chǔ)語(yǔ)法
    基礎(chǔ)庫(kù)

【jQuery】DOM庫(kù)

3) BOM【js操作瀏覽器的api】

Browser Object model 瀏覽器對(duì)象模型
alert()/prompt()/confirm()
setInterval()
setTimeout()
XMLHttpReqeust
ajax

解釋器
瀏覽器 【dom操作,動(dòng)畫(huà),表單校驗(yàn),ajax異步交互】

nodeJS【網(wǎng)絡(luò)編程(http模塊)數(shù)據(jù)庫(kù)操作(mysql),io文件(file),iot(...)】
google v8 => nodeJS
可以安裝linux window macos unix

學(xué)習(xí)方式
環(huán)境: ubuntu16.04
軟件: nodejs、vi(spf13)、git
使用sudoer用戶(hù)登錄
在家目錄中編寫(xiě)測(cè)試代碼

hello world
1) 編寫(xiě)代碼

$ vi hello.js

2) 執(zhí)行代碼

$ node hello
或
$ node hello.js

js特點(diǎn)
1) 解釋型語(yǔ)言

js -> nodejs(js解釋器)

2) 弱類(lèi)型語(yǔ)言

變量的數(shù)據(jù)類(lèi)型取決于值的數(shù)據(jù)類(lèi)型
var a ;
a = 2;        // a的數(shù)據(jù)類(lèi)型為number
a = true;    // a的數(shù)據(jù)類(lèi)型為boolean

3) 順序解釋執(zhí)行
4) 既可以作為前端腳本語(yǔ)言,也可以作為后端語(yǔ)言,取決于應(yīng)用平臺(tái)(瀏覽器/操作系統(tǒng))和使用的框架(dom、jquery/http、mysql、file)

Java
編譯型語(yǔ)言

java -> .class -> jvm(java解釋器)

強(qiáng)類(lèi)型語(yǔ)言

變量的數(shù)據(jù)類(lèi)型取決于聲明的數(shù)據(jù)類(lèi)型
int a ;
a = 3;
a = 8;

無(wú)符號(hào)整數(shù)
    char
有符號(hào)整數(shù)
    byte short int long
有符號(hào)小數(shù)
    float double
布爾類(lèi)型
    boolean

數(shù)據(jù)類(lèi)型
基本數(shù)據(jù)類(lèi)型(用于保存單個(gè)值)

字符串類(lèi)型 string
    var a = "hello world"
    var a = "hello world"
    var a = "1";
    var a = "{"name":"terry","age":12}";
數(shù)字類(lèi)型 number
    var a = 3;
    var a = 3.1;
    var a = 3.0;

    var a = 011;
    var a = 0x11;
    var a = 1.3e10;

    var a = 1/0;

布爾類(lèi)型 boolean
    var a = true;
    var a = false;

null
    表示空對(duì)象
    var gf = null;        //經(jīng)常做,表示占位

undefined
    表示未定義
    var a;
    console.log(a);

    var b = undefined;    //很少這么做

undefined 與null關(guān)系
undefined繼承null,所有undefined == null結(jié)果為true,但是null表示空對(duì)象,undefined表示未定義

引用數(shù)據(jù)類(lèi)型(保存多個(gè)值)

對(duì)象     var a = {name:"terry",age:12};
數(shù)組     var arr = [1,2,3,4];
函數(shù)
正則表達(dá)式
...

內(nèi)存圖:
    變量都維護(hù)在棧區(qū),基本數(shù)據(jù)類(lèi)型的值保存在棧區(qū),而引用數(shù)據(jù)類(lèi)型的引用地址保存在棧區(qū),值保存在堆區(qū)



變量
1) 變量聲明

var a;
var b;

2) 變量初始化

a =3;
b = "hello"

var c = true;
=> 
var c;
c = true;

3) 變量使用

var result = a + 1;
console.log(b);

var a = 3;

a是一個(gè)基本數(shù)據(jù)類(lèi)型的變量,a的變量類(lèi)型是number,a是一個(gè)整數(shù)類(lèi)型
變量是指向一個(gè)值
基本數(shù)據(jù)類(lèi)型類(lèi)型的變量保存的單個(gè)值

4) 變量的提升

在所有代碼執(zhí)行之前,js解釋器會(huì)將js中所有的var聲明的變量提升。

編程語(yǔ)言
1) 語(yǔ)法
2) 系統(tǒng)庫(kù)
3) 解釋器

java     -> jvm
c         -> linux
js         -> nodejs/瀏覽器

10.內(nèi)置函數(shù)

console.log()

如何判斷變量的數(shù)據(jù)類(lèi)型
    typeof v

    var a = "hello world";
    if((typeof a) == "string"){

    }
    if(a == "null"){}
如何判斷一個(gè)變量是否是有窮的
    isFinite();
    當(dāng)參數(shù)為無(wú)窮大或者小返回false
如何判斷一個(gè)變量是否是NaN
    isNaN()
    當(dāng)參數(shù)為NaN返回true

操作符(運(yùn)算符)
1) 算術(shù)運(yùn)算符(number)

+         +=
-         -=
*         *=

    /            /=
    %            %=

    var a = 3;
    var result = a + 3;
    result += 3;
    =》
    result = result + 3;
2) 一元運(yùn)算符(number)
    +
    -
        var a = "12";
        +a;
        -a;
        經(jīng)常用于類(lèi)型轉(zhuǎn)換
    ++
    --
        var a = 12;
        a++;
        ++a;    //a = 14
        var result = ++a+a++;
        /*
            a = 14;
            ++a                         //a = 15;
            result = a + a     //result = 30
            a++                         //a = 16
        */
        console.log(a);
        console.log(result);
3) 邏輯運(yùn)算符(短路運(yùn)算符)
    && 
        var age= 12;
        var gender = "male"

        age > 18 && gender == "male"

        并且,當(dāng)?shù)谝粋€(gè)表達(dá)式為假,就可以確定整個(gè)表達(dá)式結(jié)果為假,這時(shí)候無(wú)需判斷第二個(gè)表達(dá)式,將第一個(gè)表達(dá)式運(yùn)算結(jié)果返回;當(dāng)?shù)谝粋€(gè)表達(dá)式為真,整個(gè)表達(dá)式的結(jié)果取決于第二個(gè)表達(dá)式,將第二個(gè)表達(dá)式運(yùn)算結(jié)果返回。

        var result = "hello" && 12;
    ||

    !
        !true                 false
        !false            true
        !!true          true
        !!"hello"     true    將其他數(shù)據(jù)類(lèi)型轉(zhuǎn)化為boolean
4) 比較運(yùn)算符
    ==
    !=
        比較兩個(gè)變量的值,當(dāng)值的數(shù)據(jù)類(lèi)型不一樣的時(shí)候,先轉(zhuǎn)換為相同類(lèi)型的然后再比較
        當(dāng)比較引用數(shù)據(jù)類(lèi)型的時(shí)候,比較的是內(nèi)存地址
    ===
    !==
        先比較兩個(gè)變量的數(shù)據(jù)類(lèi)型,數(shù)據(jù)數(shù)據(jù)類(lèi)型不一樣,返回false,否則繼續(xù)比較值

        1 == "1"    //true
        1 === "1"    //false
    > >=
    < <=
5) 三目運(yùn)算符
    exp1 ? exp2 : exp3
    當(dāng)exp1為真,返回exp2,否則返回exp3

    var age = 22;
    var result = age >= 18 ? "成年人":"未成年人"
    =>
    var result;
    var age = 22;
    if(age >= 18){
        result = "成年人";
    } else {
        result = "未成年人";
    }

6) 拼接運(yùn)算符
    字符串與任何其他數(shù)據(jù)類(lèi)型相加都是字符串拼接
    "terry" + 2        //"terry2"
    如何將其他數(shù)據(jù)類(lèi)型轉(zhuǎn)換為字符串
    true+""

7) 賦值運(yùn)算符
    var a = 3 + 1;
    將3+1的結(jié)果賦值給a

#8) 位運(yùn)算符(number, 轉(zhuǎn)換為二進(jìn)制再運(yùn)算)
    ^
    &
    |

    1&2

類(lèi)型轉(zhuǎn)換
string

String(v)
+""
v.toString()    //不適用于null,undefined

boolean

Bollean(v)
!!v
null                 false
undefined     false
NaN                 false
Infinite         true
0                     false
""                     false
{}                     true

number

Number(v)
+v
-(-v)
    true             1
    false         0
    undefined NaN

parseInt(v)         v為字符串
    "12.3"         12
    "12abc"     12
    "a12abc"     NaN
parseFloat(v)
    "12.3"         12.3
    "12abc"     12
    "a12abc"     NaN

表達(dá)式
操作符 + 操作數(shù)
表達(dá)式以";"作為結(jié)束

var a = 3;
var result = a>3;
...

流程控制語(yǔ)句

分支語(yǔ)句
1) if else

if(exp1) {
    exp2
}
exp3
exp1可以為任意數(shù)據(jù)類(lèi)型,在執(zhí)行的時(shí)候先判斷exp1為true還是false,如果為true執(zhí)行exp2,exp3始終都會(huì)執(zhí)行

if(exp1){
    exp2
} else {
    exp3
}
如果exp1為true,執(zhí)行exp2,否則執(zhí)行exp3

if(exp1){
    exp2
} else if(exp3){
    exp4
} else {
    exp5
}
如果exp1為true,執(zhí)行exp2;如果exp1為false,判斷exp3,如果exp3為true,執(zhí)行exp4,否則執(zhí)行exp5

課堂作業(yè)
    var day = 3;
    1     今天是周一
    2     今天是周二
    ...
    6,7 今天是周末

2) switch

var day = 3;
switch(day){
    case 常量1:
        代碼塊1
        break;
    case 常量2:
        代碼塊2
        break;
    ...
    default :
        代碼塊n
}

day === 常量1     =》 代碼塊1
day === 常量2    =》 代碼塊2
...
代碼塊n

注意:
    1. case代碼塊中的break不能省略
    2. default可以放在代碼塊的上部,中部,底部,如果放在上部或者中部,一定不能省略break
    3. 變量與常量對(duì)比的時(shí)候使用"==="

2. 循環(huán)語(yǔ)句



a b c d                         變量
拼音                              數(shù)據(jù)類(lèi)型
漢字                                  操作符 
語(yǔ)法                                 表達(dá)式
成語(yǔ),古詩(shī)詞,
史記【文言文】,文章         流程控制語(yǔ)句
寫(xiě)作,寫(xiě)字

























文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/110042.html

相關(guān)文章

  • 前端學(xué)習(xí)資源整理

    稍微整理了一下自己平時(shí)看到的前端學(xué)習(xí)資源,分享給大家。 html MDN:Mozilla開(kāi)發(fā)者網(wǎng)絡(luò) SEO:前端開(kāi)發(fā)中的SEO css 張?chǎng)涡瘢簭場(chǎng)涡竦牟┛?css精靈圖:css精靈圖實(shí)踐 柵格系統(tǒng):詳解CSS中的柵格系統(tǒng) 媒體查詢(xún):css媒體查詢(xún)用法 rem布局:手機(jī)端頁(yè)面自適應(yīng)布局 移動(dòng)前端開(kāi)發(fā)之viewport的深入理解:深入理解viewport 淘寶前端布局:手機(jī)淘寶移動(dòng)端布局 fl...

    siberiawolf 評(píng)論0 收藏0
  • 編譯原理實(shí)戰(zhàn)入門(mén):用 JavaScript 寫(xiě)一個(gè)簡(jiǎn)單的四則運(yùn)算編譯器(四)結(jié)語(yǔ)

    摘要:四則運(yùn)算編譯器,雖然說(shuō)功能很簡(jiǎn)單,只能編譯四則運(yùn)算表達(dá)式。再?gòu)?fù)雜的編譯器再簡(jiǎn)單的編譯器,功能上是差不多的,只是復(fù)雜的編譯器實(shí)現(xiàn)上會(huì)更困難。每一章都是理論與實(shí)踐結(jié)合的經(jīng)典,從計(jì)算機(jī)硬件知識(shí)到軟件體系,再到編譯原理和操作系統(tǒng)。 四則運(yùn)算編譯器,雖然說(shuō)功能很簡(jiǎn)單,只能編譯四則運(yùn)算表達(dá)式。但是編譯原理前端部分幾乎都有涉及,詞法分析,語(yǔ)法分析,還有代碼生成。 再?gòu)?fù)雜的編譯器、再簡(jiǎn)單的編譯器,功能...

    chemzqm 評(píng)論0 收藏0
  • 前端資源系列(4)-前端學(xué)習(xí)資源分享&前端面試資源匯總

    摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒(méi)想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...

    princekin 評(píng)論0 收藏0
  • 編譯原理實(shí)戰(zhàn)入門(mén):用 JavaScript 寫(xiě)一個(gè)簡(jiǎn)單的四則運(yùn)算編譯器(一)詞法分析

    摘要:一般的程序,是無(wú)法直接執(zhí)行的,因?yàn)橹荒茏R(shí)別機(jī)器指令。所以要想執(zhí)行一個(gè)程序,首先要將高級(jí)語(yǔ)言編寫(xiě)的程序翻譯為匯編代碼,再將匯編代碼翻譯為機(jī)器指令,這樣才能識(shí)別并執(zhí)行。 編譯器 編譯器是一個(gè)程序,作用是將一門(mén)語(yǔ)言翻譯成另一門(mén)語(yǔ)言。 一般的程序,CPU 是無(wú)法直接執(zhí)行的,因?yàn)?CPU 只能識(shí)別機(jī)器指令。所以要想執(zhí)行一個(gè)程序,首先要將高級(jí)語(yǔ)言編寫(xiě)的程序翻譯為匯編代碼,再將匯編代碼翻譯為機(jī)器指令...

    wangdai 評(píng)論0 收藏0
  • 【連載】前端個(gè)人文章整理-從基礎(chǔ)到入門(mén)

    摘要:個(gè)人前端文章整理從最開(kāi)始萌生寫(xiě)文章的想法,到著手開(kāi)始寫(xiě),再到現(xiàn)在已經(jīng)一年的時(shí)間了,由于工作比較忙,更新緩慢,后面還是會(huì)繼更新,現(xiàn)將已經(jīng)寫(xiě)好的文章整理一個(gè)目錄,方便更多的小伙伴去學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個(gè)人前端文章整理 從最開(kāi)始萌生寫(xiě)文章的想法,到著手...

    madthumb 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<