JavaScript一種直譯式腳本語言,一種基於對象和事件驅動並具備安全性的客戶端腳本語言;javascript
也是一種普遍應用客戶端web開發的腳本語言。html
簡單地說,JavaScript是一種運行在瀏覽器中的解釋型的編程語言。vue
<script type="text/javascript"> JS語句; </script>
<button onclick="alert('歡迎進入JavaScript世界')">點擊me</button>
<script type="text/javascript"> JS語句; </script>
<script language="JScript" src="JS文件路徑"></script>
變量:是用於存儲信息的"容器",是命名的內存空間,可使用變量名稱找到該內存空間;java
JavaScript 的變量是鬆散類型(弱類型)的,就是用來保存任何類型的數據。web
在定義變量的時候不須要指定變量的數據類型。編程
JavaScript 定義變量有四種方法:const
、let
、var
,還有一種是直接賦值,好比a = " a"(不規範,不推薦使用)數組
var
定義的變量能夠修改,若是不初始化會輸出undefined,不會報錯。瀏覽器
let
let是塊級做用域,定義的變量只在let 命令所在的代碼塊內有效,變量須要先聲明再使用。緩存
const
定義的變量不能夠修改,並且必須初始化,const定義的是一個恆定的常量,聲明一個只讀的常量或多個,一旦聲明,常量值就不能改變。安全
在函數外聲明的變量做用域是全局的,全局變量在 JavaScript 程序的任何地方均可以訪問;
在函數內聲明的變量做用域是局部的(函數內),函數內使用 var 聲明的變量只能在函數內容訪問。
聲明變量注意:
String:字符串類型。用""和''包裹的內容,稱爲字符串。
Number:數值類型。能夠是小數,也能夠是正數。
boolean:真假,可選值true/false。
Object:(複雜數據類型)
Null:表示爲空的引用。var a = null;
Undefined:未定義,用var聲明的變量,沒有進行初始化賦值。var a;
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種方式:
JS 中的對象分爲三類:
使用函數前要先定義才能調用,函數的定義分爲三部分:函數名,參數列表,函數體 定義函數的格式:
function 函數名([參數1,參數2...]){ 函數執行部分; return 表達式; }
函數有三種定義方法:
-函數有四種調用模式:
在javascript函數中,函數的參數一共有兩種形式:(實際參數與形式參數)
形參:在函數定義時所指定的參數就稱之爲「函數的形參」。
實參:在函數調用時所指定的參數就稱之爲「函數的實參」。
算術運算符:主要是用來進行JavaScript中的算術操做。(+、-、*、/、%、++、--)
賦值運算符: =
用於給JavaScript 變量賦值,其做用就是把右側的值賦給左側的變量。
關係運算符:用於進行比較的運算符。 主要有小於(<)
、大於(>)
、等於(==)
、大於等於(>=)
、小於等於(<=)
、不等(!=)
、恆等(===)
、不恆等(!==)
。
邏輯運算符:邏輯運算符一般用於布爾值的操做,返回結果是一個布爾類型,通常和關係運算符配合使用,有三個邏輯運算符:邏輯與(AND)
、邏輯或(OR)
、邏輯非(NOT)
。
字符串鏈接運算符:是用於兩個字符串型數據之間的運算符,它的做用是將兩個字符串鏈接起來。 在JavaScript中,可使用+
和+=
運算符對兩個字符串進行鏈接運算。
三目操做符(條件運算符):?
根據不一樣的條件,執行不一樣的操做/返回不一樣的值。
分爲四種條件語句:
常見的循環主要是三種:for 循環、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使用場合:
16 JavaScript閉包 閉包是指有權訪問另外一個函數做用域中的變量的函數。
建立閉包就是建立了一個不銷燬的做用域。
閉包須要瞭解的幾個概念: 做用域鏈、執行上下文、變量對象。
閉包的好處有:
壞處:
17 JS Window
全部瀏覽器都支持 window 對象。它表示瀏覽器窗口。
全部 JavaScript 全局對象、函數以及變量均自動成爲 window 對象的成員。
全局變量是 window 對象的屬性。
全局函數是 window 對象的方法。
JSON 是一種輕量級的數據交換格式;JSON是獨立的語言 ;JSON 易於理解。 語法規則: