JavaScript一種直譯式腳本語言,一種基於對象和事件驅動並具備安全性的客戶端腳本語言;
也是一種普遍應用客戶端web開發的腳本語言。
簡單地說,JavaScript是一種運行在瀏覽器中的解釋型的編程語言。javascript
<script type="text/javascript"> JS語句; </script>
<button onclick="alert('歡迎進入JavaScript世界')">點擊me</button>
<script type="text/javascript"> JS語句; </script>
<script language="JScript" src="JS文件路徑"></script>
變量:是用於存儲信息的"容器",是命名的內存空間,可使用變量名稱找到該內存空間;
JavaScript 的變量是鬆散類型(弱類型)的,就是用來保存任何類型的數據。
在定義變量的時候不須要指定變量的數據類型。vue
JavaScript 定義變量有四種方法:const、let、var,還有一種是直接賦值,好比a = " a"(不規範,不推薦使用)var
定義的變量能夠修改,若是不初始化會輸出undefined,不會報錯。let
let是塊級做用域,定義的變量只在let 命令所在的代碼塊內有效,變量須要先聲明再使用。const
定義的變量不能夠修改,並且必須初始化,const定義的是一個恆定的常量,
聲明一個只讀的常量或多個,一旦聲明,常量值就不能改變。java
在函數外聲明的變量做用域是全局的,全局變量在 JavaScript 程序的任何地方均可以訪問;
在函數內聲明的變量做用域是局部的(函數內),函數內使用 var 聲明的變量只能在函數內容訪問。web
_
」或者」$
」爲開頭。其餘字符能夠是字母、_、美圓符號或數字。255
個字符。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(){ } }
常見的內置對象有 Global、Math(它們也是本地對象,根據定義每一個內置對象都是本地對象)。瀏覽器
常見的本地對象有 Object、Function、Data、Array、String、Boolean、Number、RegExp、Error等緩存
使用函數前要先定義才能調用,函數的定義分爲三部分:函數名,參數列表,函數體
定義函數的格式:安全
function 函數名([參數1,參數2...]){ 函數執行部分; return 表達式; }
在javascript函數中,函數的參數一共有兩種形式:(實際參數與形式參數)
形參:在函數定義時所指定的參數就稱之爲「函數的形參」。
實參:在函數調用時所指定的參數就稱之爲「函數的實參」。閉包
算術運算符:主要是用來進行JavaScript中的算術操做。(+、-、*、/、%、++、--)
賦值運算符: =
用於給JavaScript 變量賦值,其做用就是把右側的值賦給左側的變量。
關係運算符:用於進行比較的運算符。
主要有小於(<)
、大於(>)
、等於(==)
、大於等於(>=)
、小於等於(<=)
、不等(!=)
、恆等(===)
、不恆等(!==)
。
邏輯運算符:邏輯運算符一般用於布爾值的操做,返回結果是一個布爾類型,通常和關係運算符配合使用;
有三個邏輯運算符:邏輯與(AND)
、邏輯或(OR)
、邏輯非(NOT)
。
字符串鏈接運算符:是用於兩個字符串型數據之間的運算符,它的做用是將兩個字符串鏈接起來。
在JavaScript中,可使用+
和+=
運算符對兩個字符串進行鏈接運算。
三目操做符(條件運算符):?
根據不一樣的條件,執行不一樣的操做/返回不一樣的值。
首先設置表達式n(一般是一個變量),隨後表達式的值會與結構中的每一個case值做比較;
若是存在匹配則該關聯代碼塊執行;而後使用break來阻止代碼自動的向下一個case運行;
default關鍵詞來規定匹配不存在時作的事情。
for 循環:代碼塊有必定的次數。for 有三個表達式:1 聲明循環變量 2 判斷循環條件 3 更新循環變量
特色:先判斷再執行,與while相同。
while 循環:當指定的條件爲true時循環指定的代碼塊
do/while 循環:同while循環同樣。
特色:先執行再判斷,即便初始條件不成立,do/while循環至少執行一次。
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 優勢:
缺點:
其最爲核心的特性爲:MVC、模塊化、自動化雙向數據綁定、語義化標籤及依賴注入等。
React被稱爲構建用戶接口而提供的Javascript庫;主要用來構建UI,其專一於MVC的V部分。
vue.js 是用來構建web應用接口的一個庫,技術上,Vue.js 重點集中在MVVM模式的ViewModel層,它鏈接視圖和數據綁定模型經過兩種方式。
RequireJs是一個javascript模塊加載器,提升網頁的加載速度和質量。
Backone是一個幫助開發重量級Javascript應用的框架,但它自己簡單的框架。
其文件體積很小,壓縮後只有5.3KB,提供了全功能的MVC框架及路由。
Backone強制依賴於Underscore.js,非強制依賴於jQuery/Zepto。
數據可視化和圖表是Web應用中不可或缺的一部分。
d3.js就是最流行的可視化庫之一,它容許綁定任意數據到DOM,而後將數據驅動轉換應用到Document中。
方法中的this指向調用它所在方法的對象。
單獨使用this,指向全局對象。
函數中,函數所屬者默認綁定到this上。
this使用場合:
-全局環境
閉包是指有權訪問另外一個函數做用域中的變量的函數。
建立閉包就是建立了一個不銷燬的做用域。
閉包須要瞭解的幾個概念: 做用域鏈、執行上下文、變量對象。
閉包的好處有:
壞處:
全部瀏覽器都支持 window 對象。它表示瀏覽器窗口。
全部 JavaScript 全局對象、函數以及變量均自動成爲 window 對象的成員。
全局變量是 window 對象的屬性。
全局函數是 window 對象的方法。
JSON 是一種輕量級的數據交換格式;JSON是獨立的語言 ;JSON 易於理解。
語法規則: