由於作者翻譯會加入 自己的理解 以便自己學習和使用, 如果英文好的同學可看下面 如文章中有翻譯錯誤還請留言. 交流並改正. (:======================Enein翻譯========================= John Resig 寫了一篇關於 JavaScript 裡 類似其它語言的 "繼承", 靈感來自於 base2 and PrototypeJS. 他為文章起名為"Simple JavaScript Inheritance" .
讀取cookie字串方法:複製代碼 代碼如下:alert(document.cookie); 一個網站的cookie字串包含了該網站網域名稱下的所有cookie(javascript 可訪問的,不包括 httponly 的cookie ),多個cookie之間用分號和一個空格隔開,最多一般是 20個或50個,例如,包含2個cookie的字串格式為複製代碼 代碼如下:document.cookie = "key1=value1;
這個月都還沒。必須要湊數。 網站登入狀態了更好的使用者體驗都會在輸入密碼的時候檢測是否開啟大寫。提醒使用者。 在下面的 input框裡測試下吧!這段代碼來之 <點我>。 不過我做了一點小改進。 主要對 已經啟用input框的 大寫鎖定進行即時檢測。 複製代碼 代碼如下:<div> <input class="text" name="passwd" id="loginPasswd" type="password" style="*display:block;"
這裡討論下對象的內部原型(__proto__)和構造器的原型(prototype)的關係。 一、所有構造器/函數的__proto__都指向Function.prototype,它是一個空函數(Empty function) 複製代碼 代碼如下:Number.__proto__ === Function.prototype // true Boolean.__proto__ === Function.prototype // true String.__proto__ ===
1.只能輸入漢字的 複製代碼 代碼如下:<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"> 2.只能輸入數位 複製代碼 代碼如下:<input
Array.prototype.push push向數組尾部添加一項並更新length ,返回數組長度。 如果Object使用push會怎樣? 看下面代碼, obj好像數組一樣工作了。length會自動更新。 複製代碼 代碼如下:var push = Array.prototype.push; var obj = {}; push.call(obj, "hello"); // 傳回值 1 // obj {"0":"hello", length:0} push.call(obj, "world")
任何編程都提出代碼複用,否則話每次開發一個新程式或者寫一個新功能都要全新編寫的話,那就歇菜了,但是代碼複用也是有好要壞,接下來的兩篇文章我們將針對代碼複用來進行討論,第一篇文避免篇,指的是要盡量避免使用這些模式,因為或多或少有帶來一些問題;第二排是推薦篇,指的是推薦大家使用的模式,一般不會有什麼問題。 模式1:預設模式 代碼複用大家常用的預設模式,往往是有問題的,該模式使用Parent()的建構函式建立一個對象,並且將該對象賦值給Child()的原型。我們看一下代碼: 複製代碼
1.document.formName.item("itemName") 問題 說明:IE下,可以使用document.formName.item("itemName")或document.formName.elements["elementName"];Firefox下,只能使用document.formName.elements["elementName"]. 解決方案:統一使用document.formName.elements["elementName"]. 2.集合類對象問題
JavaScript中valueOf函數方法是返回指定對象的原始值。使用方法: object.valueOf( )object是必選項參數是任意固有 JScript 對象。 每個JavaScript固有對象的 valueOf 方法定義不同。 對象傳回值Array數組的元素被轉換為字串,這些字串由逗號分隔,串連在一起。其操作與 Array.toString 和 Array.join 方法相同。BooleanBoolean 值。Date儲存的時間是從 1970 年 1 月 1 日午夜開始計的毫秒數
關於 Javascript 的函數範圍、調用對象和閉包之間的關係很微妙,關於它們的文章已經有很多,但不知道為什麼很多新手都難以理解。我就嘗試用比較通俗的語言來表達我自己的理解吧。 範圍 Scope Javascript 中的函數屬於詞法範圍,也就是說函數在它被定義時的範圍中運行而不是在被執行時的範圍內運行。這是犀牛書上的說法。但"定義時"和"執行(被調用)時"這兩個東西有些人搞不清楚。簡單來說,一個函數A在"定義時"就是 function A(){}
複製代碼 代碼如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/
2種形式都可以 第一種: 複製代碼 代碼如下:<script> function SaveAs5(imgURL) { var oPop = window.open(imgURL,"","width=1, height=1, top=5000, left=5000"); for(; oPop.document.readyState != "complete"; ) { if (oPop.document.readyState == "complete")break; }
複製代碼 代碼如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <style type="text/css"> table
下面的代碼是我的測試代碼,注釋很重要: 複製代碼 代碼如下:/*global window,jQuery,validate_email,masterUI,$,rest*/ /** Enable ECMAScript "strict" operation for this function. See more: * http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/ *
複製代碼 代碼如下:String.prototype.getParameter = function (key) { var re = new RegExp(key + '=([^&]*)(?:&)?'); return this.match(re) && this.match(re)[1]; }; 測試代碼: 複製代碼 代碼如下:<script type="text/javascript"> <!--
string 對象 1、str.match(RegExp) 在str中搜尋匹配RegExp的字串並儲存在一個數組內返回, 如果RegExp不是全域設定(/g),僅匹配一次 複製代碼 代碼如下:("abc112dwfwabcwef2abc3wfwabcasqf453abcqwf24j234h").match(/abc\d*/g); //結果 ["abc112", "abc", "abc3", "abc", "abc"] 該方法中,如果Regex不是全域匹配模式(g標記),第一個元素將是匹配的字串,
1、原碼、反碼、補碼,正數減法轉補碼加法 js 在進行二進位運算時,使用 32 位二進位整數,由於 js 的整數都是有符號數,最高位0表示正數,1表示負數,因此,js 二進位運算中使用的整數表達範圍是 複製代碼 代碼如下:-Math.pow(2,31) ~ Math.pow(2,31)-1 // -2147483648 ~ 2147483647 原碼:最高位 0 表示正,1表示負,其餘 31 位是該數的絕對值(真值的絕對值)的二進位形式 反碼:正數反碼與原碼相同,負數反碼是原碼符號位不變,其餘3
每個函數建立時預設帶有一個prototype屬性,其中包含一個constructor屬性,和一個指向Object對象的隱藏屬性__proto__。constructor屬性的值為該函數的對象。在一個函數前面加上new來調用,則會建立一個隱藏串連到該函數prototype成員的新對象(由__proto__屬性來連結),同時函數的this將會被綁定到那個新對象上。 函數總是返回一個值;如果沒有指定傳回值,就返回undefined;如果當做建構函式來調用,且傳回值不是對象,則返回this(該新對象);
js一般有兩種不同資料類型的值: 基本類型(包括undefined,Null,boolean,String,Number),按值傳遞; 參考型別(包括數組,對象),按址傳遞,參考型別在值傳遞的時候是記憶體中的地址。 複製或者拷貝分為2種: 淺度複製:基本類型為值傳遞,對象仍為引用傳遞。 深度複製:所有元素或屬性均完全複製,並於原參考型別完全獨立,即,在後面修改對象的屬性的時候,原對象不會被修改。 複製代碼 代碼如下:function cloneObject(obj){ var
原廠模式也是對象建立模式之一,它通常在類或類的靜態方法中去實現。構造對象的一種方式是使用new操作符,但使用new時正是針對實現編程,會造成“耦合”問題,與具體的類別關係緊密。導致代碼更脆弱,缺乏彈性,在複雜邏輯的項目中建議是面向介面編程。 先看簡單原廠模式 複製代碼 代碼如下:Person(name, age) { var obj = {} obj.name = name obj.age = age return obj } var p1 = Person('jack', 25) var p2