摘要:用和包裹的內容,稱為字符串。關系運算符用于進行比較的運算符。強制依賴于,非強制依賴于。使用場合全局環境構造函數對象的方法閉包閉包是指有權訪問另一個函數作用域中的變量的函數。所有全局對象函數以及變量均自動成為對象的成員。
1 什么是JavaScript
JavaScript一種直譯式腳本語言,一種基于對象和事件驅動并具有安全性的客戶端腳本語言;
也是一種廣泛應用客戶端web開發的腳本語言。
簡單地說,JavaScript是一種運行在瀏覽器中的解釋型的編程語言。
3 JS的使用方法
HTML標簽中內嵌JS;
HTML頁面中直接使用JS:
引用外部JS文件:
4 變量
變量:是用于存儲信息的"容器",是命名的內存空間,可以使用變量名稱找到該內存空間;
JavaScript 的變量是松散類型(弱類型)的,就是用來保存任何類型的數據。
在定義變量的時候不需要指定變量的數據類型。
JavaScript 定義變量有四種方法:const、let、var,還有一種是直接賦值,比如a = " a"(不規范,不推薦使用)
var 定義的變量可以修改,如果不初始化會輸出undefined,不會報錯。
let let是塊級作用域,定義的變量只在let 命令所在的代碼塊內有效,變量需要先聲明再使用。
const 定義的變量不可以修改,而且必須初始化,const定義的是一個恒定的常量,
聲明一個只讀的常量或多個,一旦聲明,常量值就不能改變。
在函數外聲明的變量作用域是全局的,全局變量在 JavaScript 程序的任何地方都可以訪問;
在函數內聲明的變量作用域是局部的(函數內),函數內使用 var 聲明的變量只能在函數內容訪問。
JS中所有變量類型聲明,均使用var關鍵字。變量的具體數據類型,取決于給變量賦值的執行。
同一變量可在多次不同賦值時,修改變量的數據類型。
變量的命名規范
變量命名名要符合駝峰法則:變量開頭為小寫,之后每個單詞首字母大寫。
5 JavaScript 變量的命名規則變量命名必須以字母、下劃線”_”或者”$”為開頭。其他字符可以是字母、_、美元符號或數字。
變量名中不允許使用空格和其他標點符號,首個字不能為數字。
變量名長度不能超過255個字符。
變量名稱對大小寫敏感(y 和 Y 是不同的變量),JavaScript 語句和 JavaScript 變量都 對大小寫敏感。
變量名必須放在同一行中。
不能使用腳本語言中保留的關鍵字、保留字、true、false 和 null 作為標識符。
6 JS中的變量的數據類型String:字符串類型。用""和""包裹的內容,稱為字符串。
Number:數值類型。可以是小數,也可以是正數。
boolean:真假,可選值true/false。
Object:(復雜數據類型)
Null:表示為空的引用。var a = null;
Undefined:未定義,用var聲明的變量,沒有進行初始化賦值。var a;
7 JavaScript對象
JavaScript 對象是擁有屬性和方法的數據,是變量的容器。
對象:是封裝一個事物的屬性和功能的程序結構,是內存中保存多個屬性和方法的一塊存儲空間。
JavaScript中所有事物都是對象:數字、字符串、日期、數組等。
JavaScript對象可以是字面量創建、分配給變量,數組和其他對象的屬性、作為參數傳遞給函數、有屬性和作為返回值。
function MyFun(){ };分配給其他對象的變量,數組和屬性:
var myFun = function(){ }; myArray.push(function(){ }); myObject.myFun = function(){ };作為參數傳遞給其他函數:
function myFun(someFunc){ someFunc(); } myFunc(function(){ });有屬性:
var myFunc = function(){ };作為返回值:
function myFunc(){ return function(){ } }在JavaScript中定義對象有5種方式:
基于已有對象擴充其屬性和方法
工廠方式
構造函數方式
原型(“prototype”)方式
動態原型方式
JS 中的對象分為三類:內置對象(靜態對象):js本身已經寫好的對象,我們可以直接使用不需要定義它。
常見的內置對象有 Global、Math(它們也是本地對象,根據定義每個內置對象都是本地對象)。
本地對象(非靜態對象):必須實例化才能使用其方法和屬性的就是本地對象。
常見的本地對象有 Object、Function、Data、Array、String、Boolean、Number、RegExp、Error等
宿主對象:js運行和存活的地方,它的生活環境就是DOM(文檔對象模式)和BOM(瀏覽器對象模式)。
8 JavaScript函數使用函數前要先定義才能調用,函數的定義分為三部分:函數名,參數列表,函數體
定義函數的格式:
function 函數名([參數1,參數2...]){ 函數執行部分; return 表達式; }函數有三種定義方法:
函數定義語句
函數直接量表達式
Function構造函數
函數有四種調用模式:函數調用模式(通過函數調用)
方法調用模式(通過對象屬性調用)
構造函數模式(如果是作為構造函數來調用,那么this指向new創建的新對象)
函數上下文(借用方法模式:它的this指向可以改變,而前三種模式是固定的);函數上下文就是函數作用域;基本語法:apply 和 call 后面都是跟兩個參數。)
在javascript函數中,函數的參數一共有兩種形式:(實際參數與形式參數)
形參:在函數定義時所指定的參數就稱之為“函數的形參”。
實參:在函數調用時所指定的參數就稱之為“函數的實參”。
算術運算符:主要是用來進行JavaScript中的算術操作。(+、-、*、/、%、++、--)
賦值運算符: = 用于給JavaScript 變量賦值,其作用就是把右側的值賦給左側的變量。
關系運算符:用于進行比較的運算符。
主要有小于(<)、大于(>)、等于(==)、大于等于(>=)、小于等于(<=)、不等(!=)、恒等(===)、不恒等(!==)。
邏輯運算符:邏輯運算符通常用于布爾值的操作,返回結果是一個布爾類型,一般和關系運算符配合使用;
有三個邏輯運算符:邏輯與(AND)、邏輯或(OR)、邏輯非(NOT)。
字符串連接運算符:是用于兩個字符串型數據之間的運算符,它的作用是將兩個字符串連接起來。
在JavaScript中,可以使用+和+=運算符對兩個字符串進行連接運算。
三目操作符(條件運算符):? 根據不同的條件,執行不同的操作/返回不同的值。
If 語句:只有當指定條件為true時,使用該語句來執行代碼
if-else 語句:當條件為true時執行代碼,當條件為false時執行其他代碼
if-else if-else 語句:使用該語句來選擇多個代碼塊之一來執行
switch 語句:同上,switch的工作原理呢?
首先設置表達式n(通常是一個變量),隨后表達式的值會與結構中的每個case值作比較;
如果存在匹配則該關聯代碼塊執行;然后使用break來阻止代碼自動的向下一個case運行;
default關鍵詞來規定匹配不存在時做的事情。
for 循環:代碼塊有一定的次數。for 有三個表達式:1 聲明循環變量 2 判斷循環條件 3 更新循環變量
特點:先判斷再執行,與while相同。
while 循環:當指定的條件為true時循環指定的代碼塊
do/while 循環:同while循環一樣。
特點:先執行再判斷,即使初始條件不成立,do/while循環至少執行一次。
聲明變量
判斷循環條件
執行循環體操作
更新循環變量
最后執行循環2-4,直到條件不成立,跳出循環
12 JavaScript Break 和Continue 語句break:跳出本層循環,繼續執行循環后面的語句。
如果循環有多層,則break只能跳出一層。
continue:跳過本次循環剩余的代碼,繼續執行下一次循環。
對與for循環,continue之后執行的語句,是循環變量更新語句i++;
對于while、do-while循環,continue之后執行的語句,是循環條件判斷;
因此,使用這兩個循環時,必須將continue放到i++之后使用,否則,continue將跳過i++進入死循環。
一種是程序寫的邏輯不對,導致代碼執行異常;
一種是執行過程中,程序可能遇到無法預測的異常情況而報錯。
throw 聲明
onerror 事件
jQuery 函數是 $() 函數(jQuery 函數)。
jQuery 庫包含以下功能:
HTML 元素選取、元素操作、CSS 操作、HTML 事件函數、JavaScript 特效和動畫、HTML DOM 遍歷和修改、AJAX、Utilities
面向對象編程包括 創建對象、原型繼承、class繼承。
類是對象的類型模板;實例是根據類創建的對象。
jQuery 優點:
分布規模小
學習曲線平緩,在線幫助多
語法簡潔
容易延伸
消除了瀏覽器差
簡潔的操作DOM的方法
輕松實現動畫
修改CSS等各種操作
缺點:
增加了本機API的速度開銷
瀏覽器兼容性的改善降低了它的性能
用法扁平
有些開發人員抵制使用
AngularJs企業級框架其最為核心的特性為:MVC、模塊化、自動化雙向數據綁定、語義化標簽及依賴注入等。
React框架React被稱為構建用戶接口而提供的Javascript庫;主要用來構建UI,其專注于MVC的V部分。
vue未來的主流vue.js 是用來構建web應用接口的一個庫,技術上,Vue.js 重點集中在MVVM模式的ViewModel層,它連接視圖和數據綁定模型通過兩種方式。
Require JsRequireJs是一個javascript模塊加載器,提高網頁的加載速度和質量。
Backone框架Backone是一個幫助開發重量級Javascript應用的框架,但它本身簡單的框架。
其文件體積很小,壓縮后只有5.3KB,提供了全功能的MVC框架及路由。
Backone強制依賴于Underscore.js,非強制依賴于jQuery/Zepto。
數據可視化和圖表是Web應用中不可或缺的一部分。
d3.js就是最流行的可視化庫之一,它允許綁定任意數據到DOM,然后將數據驅動轉換應用到Document中。
方法中的this指向調用它所在方法的對象。
多帶帶使用this,指向全局對象。
函數中,函數所屬者默認綁定到this上。
this使用場合:
-全局環境
構造函數
對象的方法
Node
16 JavaScript閉包閉包是指有權訪問另一個函數作用域中的變量的函數。
創建閉包就是創建了一個不銷毀的作用域。
閉包需要了解的幾個概念: 作用域鏈、執行上下文、變量對象。
閉包的好處有:
緩存
面向對象中的對象
實現封裝,防止變量跑到外層作用域中,發生命名沖突
匿名自執行函數,匿名自執行函數可以減少內存消耗
壞處:
內存消耗
涉及到跨作用域訪問是時會導致性能耗損
17 JS Window所有瀏覽器都支持 window 對象。它表示瀏覽器窗口。
所有 JavaScript 全局對象、函數以及變量均自動成為 window 對象的成員。
全局變量是 window 對象的屬性。
全局函數是 window 對象的方法。
JSON 是一種輕量級的數據交換格式;JSON是獨立的語言 ;JSON 易于理解。
語法規則:
數據為 鍵/值 對。
數據由逗號分隔。
大括號保存對象。
方括號保存數組。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104634.html
摘要:學習最好的方法之一是通過視頻教程進行在線學習。這里列出十個免費在線學習的地址,讓你的學習更方便更有效。是一個非常好的免費在線學習得網站。為初學者增加了大量的指南和其他資源。在這里,你可以找到有關和的免費在線課程。 我們都聽說過 JavaScript 這個術語,但我們中只有少數人知道它的用法和應用。這里的我們中的少數是指技術青年、網絡程序員和IT專業人員。但是,對于外行來說,JavaS...
摘要:基礎鞏固基礎總結使用已經好幾年了,由于工作主要是做服務端開發,在工作中逐漸發現的使用范圍原來越廣泛。這里要注意,務必將基礎部分掌握牢靠,磨刀不誤砍柴功,只有將基礎部分掌握并建立起系統的知識體系,在后面學習衍生的其他模式才能游刃有余。 基礎鞏固:JavaScript基礎總結 使用JavaScript已經好幾年了,由于工作主要是做服務端開發,在工作中逐漸發現JavaScript的使用范圍原...
摘要:請記住,這些書中的一些可能不是最新的,但概念和基礎仍應適用。是最好的老師之一。的秘密由部分組成。在你完成這些書后,查看書籍和最好的本土書籍。 我看過三本,第1本,第二本,第四本。第一本買的的實體書,其他兩本看的是電子書。第一本是大名鼎鼎老道寫的,書很薄,但是非常經典。javascirpt忍者秘籍是jquery的作者寫的,也是非常經典。you dont kown js系列也是非常好。看了...
摘要:是文檔的一種表示結構。這些任務大部分都是基于它。這個實踐的重點是把你在前端練級攻略第部分中學到的一些東西和結合起來。一旦你進入框架部分,你將更好地理解并使用它們。到目前為止,你一直在使用進行操作。它是在前端系統像今天這樣復雜之前編寫的。 本文是 前端練級攻略 第二部分,第一部分請看下面: 前端練級攻略(第一部分) 在第二部分,我們將重點學習 JavaScript 作為一種獨立的語言,如...
摘要:下面我們從前端基礎和底層原理開始講起。對于和這三個對應于矢量圖位圖和圖的渲染來說,給前端開發帶來了重武器,很多小游戲也因此蓬勃發展。這篇文章受眾之大,后來被人重新整理并發布為,其中還包括中文版。 showImg(https://segmentfault.com/img/bVbjM5r?w=1142&h=640); 想閱讀更多優質文章請猛戳GitHub博客,一年百來篇優質文章等著你! 這...
閱讀 856·2021-10-11 10:59
閱讀 2791·2019-08-30 15:43
閱讀 2128·2019-08-30 11:08
閱讀 1647·2019-08-29 15:20
閱讀 1002·2019-08-29 13:53
閱讀 485·2019-08-26 13:24
閱讀 1632·2019-08-26 13:24
閱讀 2819·2019-08-26 12:08