Time of Update: 2017-01-19
一、一些概念①傳統Ajax:互動的資料格式——自訂字串或XML描述; 跨域——通過伺服器端代理解決。②如今最優方案:使用JSON格式來傳輸資料,使用JSONP來跨域。③JSON:一種資料交換格式。基於純文字、被原生JS支援。 格式:兩種資料類型描述符:大括弧{ }、方括弧[ ]。分隔字元逗號、映射符冒號、定義符雙引好。④JSONP:一種跨域資料互動協議,非官方。 1、Web頁面調用js檔案,可跨域。擴充:但凡有src屬性的標籤都具有跨域能力。 2
Time of Update: 2017-01-19
JS中聲明全域變數主要分為顯式聲明或者隱式聲明下面分別介紹。聲明方式一:使用var(關鍵字)+變數名(標識符)的方式在function外部聲明,即為全域變數,否則在function聲明的是局部變數。該方式即為顯式聲明詳細如下:複製代碼 代碼如下:var test = 5; //全域變數function a(){ var cc=3; //局部變數 alert(test);}function
Time of Update: 2017-01-19
變數命名還應遵守以下某條著名的命名規則:著名的變數命名規則Camel 標記法首字母是小寫,接下來的字母都以大寫字元開頭。例如:複製代碼 代碼如下:var testValue = 0, secondValue = "hi";Pascal 標記法首字母是大寫的,接下來的字母都以大寫字元開頭。例如:複製代碼 代碼如下:var TestValue = 0, SecondValue = "hi";匈牙利類型標記法在以 Pascal
Time of Update: 2017-01-19
而JavaScript的核心是ECMAScript 。與其他語言類似,ECMAScript 的字串是不可變的,即它們的值不能改變。請考慮下面的代碼:複製代碼 代碼如下:var str = "hello ";str += "world";實際上,這段代碼在幕後執行的步驟如下:1.建立儲存 "hello " 的字串。2.建立儲存 "world" 的字串。3.建立儲存串連結果的字串。4.把 str 的當前內容複寫到結果中。5.把 "world" 複製到結果中。6.更新
Time of Update: 2017-01-19
繼承的方式ECMAScript 實現繼承的方式不止一種。這是因為 JavaScript 中的繼承機制並不是明確規定的,而是通過模仿實現的。這意味著所有的繼承細節並非完全由解釋程式處理。作為開發人員,你有權決定最適用的繼承方式。最原始的繼承實現方式就是對象冒充,下面著重介紹該方法。對象冒充對象冒充實現繼承的核心其實依賴於在函數環境中使用 this 關鍵字。其原理如下:建構函式使用 this 關鍵字給所有屬性和方法賦值(即採用類聲明的建構函式方式)。因為建構函式只是一個函數,所以可使 ClassA
Time of Update: 2017-01-19
call() 方法call() 方法是與經典的對象冒充方法最相似的方法。它的第一個參數用作 this 的對象。其他參數都直接傳遞給函數自身。例如:複製代碼 代碼如下:function sayHello(sPrefix,sSuffix) { alert(this.name + ”says“ + sPrefix + sSuffix);};var obj = new Object();obj.name = "Tom";sayHello.call(obj,
Time of Update: 2017-01-19
以下為建構函式方法建立類:複製代碼 代碼如下:function className (prop_1, prop_2, prop_3) { this.prop1 = prop_1; this.prop2 = prop_2; this.prop3 = prop_3;}有了上面的類,我們就可以為類建立執行個體:複製代碼 代碼如下:var obj_1 = new className(v1, v2, v3)var obj_2 = new className(v1, v2
Time of Update: 2017-01-19
for迴圈:複製代碼 代碼如下:for(i=start; i<end; i++) {}while迴圈: (注意, 若條件一直為真, 則會進入死迴圈, 瀏覽器就hang掉)複製代碼 代碼如下:while (condition) { //do something; //change condition;}遞迴:使用for迴圈做substring複製代碼 代碼如下:function
Time of Update: 2017-01-19
演算法的核心是部分匹配表和回退演算法,部分匹配表的實現如下:複製代碼 代碼如下:function kmpGetStrPartMatchValue(str) { var prefix = []; var suffix = []; var partMatch = []; for(var i=0,j=str.length;i<j;i++){ &
Time of Update: 2017-01-19
一、在HTML中嵌入Javasript的方法1.直接在Javascript代碼放在標記對<script>和</script>之間2.由<script />標記的src屬性制定外部的js檔案3.放在事件處理常式中,比如:<p onclick="alert('我是由onclick事件執行的Javascript')">點擊我</p>4.作為URL的主體,這個URL使用特殊的Javascript:協議,比如:<a
Time of Update: 2017-01-19
昨天在寫上次那個動態產生年月日下拉框和文字框限制輸入的時候遇到了一個問題,文字框裡輸入的時候要開始計算文字框裡面輸入了多少字,自然想到了onkeydown事件,然後計算value.length的方法,看代碼吧 複製代碼 代碼如下: moto.onkeydown=function(){ var curlen=+this.value.length; shuru.innerHTML=curlen; shuru2.innerHTML=+(200-curlen); if(curlen>=200){
Time of Update: 2017-01-19
Javascript並不像Java、C#等語言那樣支援真正的類。但是在js中可以定義偽類。做到這一點的工具就是建構函式和原型對象。首先介紹js中的建構函式。Javascript中建立對象的文法是在new運算子的後面跟著一個函數的調用。如複製代碼 代碼如下: var obj = new Object(); var date = new Date();運算子new首先建立一個新的沒有任何屬性的對象,然後調用該函數,把新的對象作為this關鍵字的值傳遞。var date =
Time of Update: 2017-01-19
眾所周知PHP中對時間類型資料可以直接轉換為時間戳記,那麼在前端指令碼js中,也有方法可以實現,就是valueOf()例如,我們可以通過這段代碼輸出目前時間點的時間戳記複製代碼 代碼如下:<script type="text/javascript"> document.write(new Date().valueOf());</script>那麼何為時間戳記呢?時間戳記就是從1970年1月1日0時0分0秒到目前時間點的所有秒數。1970.1.1 0:0:0
Time of Update: 2017-01-19
今天我們說的是資料類型中的一種Boolean類型,它返回true和false兩個字面值,需要注意的是字面值是區分大小寫,也就是除了小寫 其他的都只是標識符。下面主要說的是各種資料類型以及對應的轉化規則:資料類型 轉化為true的值
Time of Update: 2017-01-19
substr 定義和用法 substr() 方法可在字串中抽取從 start 下標開始的指定數目的字元。 文法 stringObject.substr(start,length)參數描述start必需。要抽取的子串的起始下標。必須是數值。如果是負數,那麼該參數聲明從字串的尾部開始算起的位置。也就是說,-1 指字串中最後一個字元,-2 指倒數第二個字元,以此類推。length可選。子串中的字元數。必須是數值。如果省略了該參數,那麼返回從 stringObject 的開始位置到結尾的字串。說明
Time of Update: 2017-01-19
介紹 低層次的語言,如C,具有低層級的記憶體管理命令,如:malloc()和free(),需要開發人員手工釋放記憶體。然而像javascript這樣的進階語言情況則不同,對象(objects, strings 等)建立的時候分配記憶體,當他們不在使用的時候記憶體會被自動回收,這個自動回收的過程被稱為記憶體回收。因為記憶體回收的存在,讓javascript等進階語言開發人員產生了一個錯誤的認識,以為可以不用關心記憶體管理。 記憶體生命週期
Time of Update: 2017-01-19
(1, 2, 3); // return 3; 很好奇,為什麼會返回3?這是什麼機制?圓括弧起到了什麼作用? (1, 2, 3, alert )("Amazing!"); // 這裡就更好玩了,居然可以直接調用alert ;經過測試,全域函數都可以通過這樣調用。 下面是關於 方括弧[] 的疑問: 在JS中,[]幾乎就和數組畫上了等號,但也有神奇的時候。 [1,2,3][1]; // return 2; 當然這種方法也經常使用,常用於數組的索引 和 調用的對象的響應屬性名稱存放在某個變數時。 [1
Time of Update: 2017-01-19
看看下面這幾個例子的結果就知道問題了:這三個例子的執行結果分別是:複製代碼 代碼如下:Results#region ResultsNo.10undefinedNo.201No.30undefined#endregion原來JavaScript的變數也是有範圍的,只是它非常的籠統,就分為全域變數和函數變數。在第二個例子中得到0和1,是因為所有的變數都是全域變數,而且那個語句塊一共就定義了兩個變數。而第一個第三的函數外全域變數,確實說明var關鍵字有沒有都沒有關係。而函數內的var關鍵字就很關鍵了,
Time of Update: 2017-01-19
setAttribute(string name, string value):增加一個指定名稱和值的新屬性,或者把一個現有的屬性設定為指定的值。1、樣式問題setAttribute("class", value)中class是指改變"class"這個屬性,所以要帶引號。vName代表對樣式賦值。例如:複製代碼 代碼如下:var input = document.createElement("input");input.setAttribute("type",
Time of Update: 2017-01-19
打造JavaScript命名空間其實很簡單,只需要將自己的函數、對象、變數等放在一個偽命名空間中,即用一個匿名函數封裝起來。 複製代碼 代碼如下:(function(){ function $(id){ return document.getElementById(id); }