摘要:介紹編程數(shù)據(jù)結構,算法,內存分配表單驗證需要一門語言可以直接運行在瀏覽器中,來完成表單驗證的功能。
Javascript介紹
編程(數(shù)據(jù)結構,算法,內存分配)
表單驗證
需要一門語言可以直接運行在瀏覽器中,來完成表單驗證的功能。
瀏覽器廠商
網景 firefox js 標準 js解釋器 IE js js解釋器 google js js解釋器 ECMAScript
Javascript
1) ECMAScrpt 【js標準】(兼容器100%)
注釋 // 、/**/ 變量 操作符 流程控制語句 數(shù)組 對象 函數(shù) 正則表達式 ... 所有的JS解釋器都可以兼容ECMAScript 【lodash】 ECMAScript庫
2) DOM【js操作html的api】
Document object model 文檔對象模型 var dom = document.getElementsByTagName("input"); var dom = document.getElementsById("input_name"); dom.onclick = function(){} js語言 基礎語法 基礎庫 【jQuery】DOM庫
3) BOM【js操作瀏覽器的api】
Browser Object model 瀏覽器對象模型 alert()/prompt()/confirm() setInterval() setTimeout() XMLHttpReqeust ajax
解釋器
瀏覽器 【dom操作,動畫,表單校驗,ajax異步交互】
nodeJS【網絡編程(http模塊)數(shù)據(jù)庫操作(mysql),io文件(file),iot(...)】
google v8 => nodeJS
可以安裝linux window macos unix
學習方式
環(huán)境: ubuntu16.04
軟件: nodejs、vi(spf13)、git
使用sudoer用戶登錄
在家目錄中編寫測試代碼
hello world
1) 編寫代碼
$ vi hello.js
2) 執(zhí)行代碼
$ node hello 或 $ node hello.js
js特點
1) 解釋型語言
js -> nodejs(js解釋器)
2) 弱類型語言
變量的數(shù)據(jù)類型取決于值的數(shù)據(jù)類型 var a ; a = 2; // a的數(shù)據(jù)類型為number a = true; // a的數(shù)據(jù)類型為boolean
3) 順序解釋執(zhí)行
4) 既可以作為前端腳本語言,也可以作為后端語言,取決于應用平臺(瀏覽器/操作系統(tǒng))和使用的框架(dom、jquery/http、mysql、file)
Java
編譯型語言
java -> .class -> jvm(java解釋器)
強類型語言
變量的數(shù)據(jù)類型取決于聲明的數(shù)據(jù)類型 int a ; a = 3; a = 8; 無符號整數(shù) char 有符號整數(shù) byte short int long 有符號小數(shù) float double 布爾類型 boolean
數(shù)據(jù)類型
基本數(shù)據(jù)類型(用于保存單個值)
字符串類型 string var a = "hello world" var a = "hello world" var a = "1"; var a = "{"name":"terry","age":12}"; 數(shù)字類型 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; 布爾類型 boolean var a = true; var a = false; null 表示空對象 var gf = null; //經常做,表示占位 undefined 表示未定義 var a; console.log(a); var b = undefined; //很少這么做 undefined 與null關系 undefined繼承null,所有undefined == null結果為true,但是null表示空對象,undefined表示未定義
引用數(shù)據(jù)類型(保存多個值)
對象 var a = {name:"terry",age:12}; 數(shù)組 var arr = [1,2,3,4]; 函數(shù) 正則表達式 ...
內存圖: 變量都維護在棧區(qū),基本數(shù)據(jù)類型的值保存在棧區(qū),而引用數(shù)據(jù)類型的引用地址保存在棧區(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是一個基本數(shù)據(jù)類型的變量,a的變量類型是number,a是一個整數(shù)類型
變量是指向一個值
基本數(shù)據(jù)類型類型的變量保存的單個值
4) 變量的提升
在所有代碼執(zhí)行之前,js解釋器會將js中所有的var聲明的變量提升。
編程語言
1) 語法
2) 系統(tǒng)庫
3) 解釋器
java -> jvm c -> linux js -> nodejs/瀏覽器
10.內置函數(shù)
console.log() 如何判斷變量的數(shù)據(jù)類型 typeof v var a = "hello world"; if((typeof a) == "string"){ } if(a == "null"){} 如何判斷一個變量是否是有窮的 isFinite(); 當參數(shù)為無窮大或者小返回false 如何判斷一個變量是否是NaN isNaN() 當參數(shù)為NaN返回true
操作符(運算符)
1) 算術運算符(number)
+ += - -= * *=
/ /= % %= var a = 3; var result = a + 3; result += 3; =》 result = result + 3; 2) 一元運算符(number) + - var a = "12"; +a; -a; 經常用于類型轉換 ++ -- 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) 邏輯運算符(短路運算符) && var age= 12; var gender = "male" age > 18 && gender == "male" 并且,當?shù)谝粋€表達式為假,就可以確定整個表達式結果為假,這時候無需判斷第二個表達式,將第一個表達式運算結果返回;當?shù)谝粋€表達式為真,整個表達式的結果取決于第二個表達式,將第二個表達式運算結果返回。 var result = "hello" && 12; || ! !true false !false true !!true true !!"hello" true 將其他數(shù)據(jù)類型轉化為boolean 4) 比較運算符 == != 比較兩個變量的值,當值的數(shù)據(jù)類型不一樣的時候,先轉換為相同類型的然后再比較 當比較引用數(shù)據(jù)類型的時候,比較的是內存地址 === !== 先比較兩個變量的數(shù)據(jù)類型,數(shù)據(jù)數(shù)據(jù)類型不一樣,返回false,否則繼續(xù)比較值 1 == "1" //true 1 === "1" //false > >= < <= 5) 三目運算符 exp1 ? exp2 : exp3 當exp1為真,返回exp2,否則返回exp3 var age = 22; var result = age >= 18 ? "成年人":"未成年人" => var result; var age = 22; if(age >= 18){ result = "成年人"; } else { result = "未成年人"; } 6) 拼接運算符 字符串與任何其他數(shù)據(jù)類型相加都是字符串拼接 "terry" + 2 //"terry2" 如何將其他數(shù)據(jù)類型轉換為字符串 true+"" 7) 賦值運算符 var a = 3 + 1; 將3+1的結果賦值給a #8) 位運算符(number, 轉換為二進制再運算) ^ & | 1&2
類型轉換
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
表達式
操作符 + 操作數(shù)
表達式以";"作為結束
var a = 3;
var result = a>3;
...
流程控制語句
分支語句
1) if else
if(exp1) { exp2 } exp3 exp1可以為任意數(shù)據(jù)類型,在執(zhí)行的時候先判斷exp1為true還是false,如果為true執(zhí)行exp2,exp3始終都會執(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. 變量與常量對比的時候使用"==="
2. 循環(huán)語句 a b c d 變量 拼音 數(shù)據(jù)類型 漢字 操作符 語法 表達式 成語,古詩詞, 史記【文言文】,文章 流程控制語句 寫作,寫字
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/110042.html
稍微整理了一下自己平時看到的前端學習資源,分享給大家。 html MDN:Mozilla開發(fā)者網絡 SEO:前端開發(fā)中的SEO css 張鑫旭:張鑫旭的博客 css精靈圖:css精靈圖實踐 柵格系統(tǒng):詳解CSS中的柵格系統(tǒng) 媒體查詢:css媒體查詢用法 rem布局:手機端頁面自適應布局 移動前端開發(fā)之viewport的深入理解:深入理解viewport 淘寶前端布局:手機淘寶移動端布局 fl...
摘要:四則運算編譯器,雖然說功能很簡單,只能編譯四則運算表達式。再復雜的編譯器再簡單的編譯器,功能上是差不多的,只是復雜的編譯器實現(xiàn)上會更困難。每一章都是理論與實踐結合的經典,從計算機硬件知識到軟件體系,再到編譯原理和操作系統(tǒng)。 四則運算編譯器,雖然說功能很簡單,只能編譯四則運算表達式。但是編譯原理前端部分幾乎都有涉及,詞法分析,語法分析,還有代碼生成。 再復雜的編譯器、再簡單的編譯器,功能...
摘要:特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 本以為自己收藏的站點多,可以很快搞定,沒想到一入匯總深似海。還有很多不足&遺漏的地方,歡迎補充。有錯誤的地方,還請斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應和斧正,會及時更新,平時業(yè)務工作時也會不定期更...
摘要:一般的程序,是無法直接執(zhí)行的,因為只能識別機器指令。所以要想執(zhí)行一個程序,首先要將高級語言編寫的程序翻譯為匯編代碼,再將匯編代碼翻譯為機器指令,這樣才能識別并執(zhí)行。 編譯器 編譯器是一個程序,作用是將一門語言翻譯成另一門語言。 一般的程序,CPU 是無法直接執(zhí)行的,因為 CPU 只能識別機器指令。所以要想執(zhí)行一個程序,首先要將高級語言編寫的程序翻譯為匯編代碼,再將匯編代碼翻譯為機器指令...
摘要:個人前端文章整理從最開始萌生寫文章的想法,到著手開始寫,再到現(xiàn)在已經一年的時間了,由于工作比較忙,更新緩慢,后面還是會繼更新,現(xiàn)將已經寫好的文章整理一個目錄,方便更多的小伙伴去學習。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個人前端文章整理 從最開始萌生寫文章的想法,到著手...
閱讀 3228·2021-11-23 09:51
閱讀 1039·2021-08-05 09:58
閱讀 668·2019-08-29 16:05
閱讀 978·2019-08-28 18:17
閱讀 3036·2019-08-26 14:06
閱讀 2726·2019-08-26 12:20
閱讀 2160·2019-08-26 12:18
閱讀 3069·2019-08-26 11:56