Time of Update: 2018-12-08
在藍色理想學習了N年,今天第一次發點自己的原創,因為我曾為解決該問題花了不少時間,主要是網路上找到的代碼要麼非常煩瑣,要麼不能通用或格式只能固定幾個,所以我專門對這個問題進行了研究,最終最佳化到只有2行代碼,非常精簡。主要是用到了JSON、正則和eval 函數,如果有什麼問題歡迎大家指正。 感謝zhanyuzai 的最佳化,經測試2行代碼沒有發現問題,現在已更新過來
Time of Update: 2018-12-08
1. 簡化代碼 JavaScript定義對象和數組非常簡單,我們想要建立一個對象,一般是這樣寫的: 複製代碼 代碼如下:<SPAN style="FONT-FAMILY: verdana, geneva">var car = new Object(); car.colour = 'red'; car.wheels = 4; car.hubcaps = 'spinning'; car.age = 4; </SPAN> 下面的寫法可以達到同樣的效果: 複製代碼
Time of Update: 2018-12-08
在javascript中有兩種注釋方式: 單行注釋: // 多行注釋: /* */ 注釋主要是為了讓我們編寫的程式更具有可讀性,也便於他人來進行二次修改 看下面的例子,我們給Regex用/* */注釋了,運行時發布報了一個語法錯誤 複製代碼 代碼如下:/* var rm_a = /a*/.match(s); */ 所以說塊級注釋是不安全的,如果在我們的代碼中犯了這樣的錯誤,很難去排查 所以最好是用單選注釋// 取代多行注釋 /* */JavaScript 注釋
Time of Update: 2018-12-08
第十八章 進階技巧 1.進階函數 1.1 範圍安全的建構函式 ①直接調用建構函式而不適用new操作符時,由於this對象的晚綁定,它將映射在全域對象window上,導致對象屬性錯誤增加到window。 複製代碼 代碼如下:function Person(name,age,job){ this.name = name; this.age = age; this.job = job; } Var person = Person("Jay",29,"singer");
Time of Update: 2018-12-08
一、文法 delete後面的運算式必須給出一個屬性的引用,比如 var o = {a:1}; delete o.a; //此處o.a是對象o的屬性a的引用 只有在with語句裡才能使用單獨的屬性名稱 複製代碼 代碼如下:with(o){ delete a; } 二、delete的傳回值 delete是普通運算子,會返回true或false。規則為:當被delete的對象的屬性存在並且不能被刪除時 返回false,否則返回true。
Time of Update: 2018-12-08
閉包的定義非常晦澀——閉包,是指文法域位於某個特定的地區,具有持續參照(讀寫)位於該地區內自身範圍之外的執行域上的非持久型變數值能力的段落。這些外部執行域的非持久型變數神奇地保留它們在閉包最初定義(或建立)時的值(深連結)。簡單來說,閉包就是在另一個範圍中儲存了一份它從上一級函數或範圍取得的變數(索引值對),而這些索引值對是不會隨上一級函數的執行完成而銷毀。周愛民說得更清楚,閉包就是“屬性工作表”,閉包就是一個資料區塊,閉包就是一個存放著“Name=Value”的對照表。就這麼簡單。但是,必須強
Time of Update: 2018-12-08
一、判斷 文法 prop in objectName 如果objectName指向的對象中含有prop這個屬性或者索引值,in運算子會返回true。 複製代碼 代碼如下:var arr = ['one','two','three','four']; arr.five = '5'; 0 in arr;//true 'one' in arr; //false,只可判斷數組的索引值 'five' in arr;//true,'five'是arr對象的屬性 'length' in arr;//true
Time of Update: 2018-12-08
首先看下效果,沒什麼特別,呵呵!調用的代碼呢,則是相當簡單,不需要建立其他的Label或者span標籤,指令碼將自動產生: 複製代碼 代碼如下:<input type="text" id="txt1" onkeyup="checkResult(this.value == '', 'txt1', ' *這裡不可為空喔!')" />
Time of Update: 2018-12-08
一:js支援 Unicode 字元集,所以可以用中文命名函數。 二:js 在Var中沒有初始化的變數,預設為undefined 三:對於未聲明也未賦值的變數,如果直接使用,會拋出一個系統層級的Error,如果用typeof(typeof是種類型運算子)操作來說,不論是否已經被聲明,都將返回一個字串”undefined”; 例: //a 未聲明 alert(typeof(a));//undefined alert(a);//Error
Time of Update: 2018-12-08
起因: 今天在閱讀snandy大神的讀jQuery之五(取DOM元素)時,看到有講到toArray()方法,具體jQuery代碼如下: 複製代碼 代碼如下:toArray: function() { return slice.call( this, 0 ); }, get: function( num ) { return num == null ? // Return a 'clean' array this.toArray() : // Return just the object (
Time of Update: 2018-12-08
第十九章 用戶端儲存 1.cookie ①最初是在用戶端用於儲存會話資訊的。 1.1 限制 ①cookie在性質上是綁定在特定的網域名稱下的。當設定了一個cookie後,再給建立它的網域名稱發送請求時,都會包含這個cookie。 ②cookie的限制: □IE6以及更低版本限制每個網域名稱最多20個cookie。 □IE7和之後版本每個網域名稱最多50個cookie。 □Firefox50個 □Opera50個 □Safari和Chrome無硬性規定
Time of Update: 2018-12-08
第十四章 錯誤處理與調試 1.開啟瀏覽器錯誤報表 1.1 Internet Explorer □Toos → Internet Option → Anvanced → Display a notification about every script error 1.2 Firefox □Tools → Error Console (Firebug) 1.3 Safari □Edit → Preferences → Advanced → Show develop menu in menubar/
Time of Update: 2018-12-08
1、介面設計 index.html:只提供了一個嚮導顯示位置的預留位置 複製代碼 代碼如下:<html> <head> <title>禮物推薦嚮導</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <link rel="stylesheet" type="text/css" href="style.css">
Time of Update: 2018-12-08
暑假還搞了ext4的web desktop,更多的也是javascript的東西。對於javascript,以前就只會document.getElementById()和alert(),現在才開始慢慢深入瞭解。如果本文有什麼不對的地方,請指出。 關於javasript,它是基於對象的,因此,它沒有類的概念,所以,如果要實現繼承,也就只能是利用javascript的原型機制prototype去實現了。(其實這裡是錯的,感謝 @記憶的森林 的提示,還可以用apply和call去實現)
Time of Update: 2018-12-08
一、變數 在javascript變數中可以存放兩種類型的值:原始值和引用值。 原始值儲存在棧上的簡單欄位,也就是值直接儲存在變數所標示的位置內。 引用值儲存在堆內的對象,棧內變數儲存的是指向堆內對象的指標值。 在javascript中有5種基本類型:Undefined,Null,Boolean,Number,String。 參考型別其實就是對象,類似其他語言中類執行個體的概念。 複製代碼 代碼如下:var b = true; // 儲存在棧上 var num = 20; //儲存在棧上 var
Time of Update: 2018-12-08
今天是最後一個部分,介紹不使用建構函式實現"繼承"。 一、什麼是"非建構函式"的繼承? 比如,現在有一個對象,叫做"中國人"。 複製代碼 代碼如下: var Chinese = { nation:'中國' }; 還有一個對象,叫做"醫生"。 複製代碼 代碼如下: var Doctor ={ career:'醫生' } 請問怎樣才能讓"醫生"去繼承"中國人",也就是說,我怎樣才能產生一個"中國醫生"的對象?
Time of Update: 2018-12-08
今天要介紹的是,如何產生一個"繼承"多個對象的執行個體。 比如,現在有一個"動物"對象的建構函式, 複製代碼 代碼如下: function Animal(){ this.species = "動物"; } 還有一個"貓"對象的建構函式, 複製代碼 代碼如下: function Cat(name,color){ this.name = name; this.color = color; } 怎樣才能使"貓"繼承"動物"呢? 1. 建構函式綁定
Time of Update: 2018-12-08
學習Javascript,最難的地方是什嗎?我覺得,Object(對象)最難。因為Javascript的Object模型很獨特,和其他語言都不一樣,初學者不容易掌握。下面就是我的學習筆記,希望對大家學習這個部分有所協助。我主要參考了以下兩本書籍:《物件導向的Javascript》(Object-Oriented JavaScript)《Javascript進階程式設計(第二版)》(Professional JavaScript for Web Developers, 2nd
Time of Update: 2018-12-08
我一直很難理解Javascript語言的繼承機制。 它沒有"子類"和"父類"的概念,也沒有"類"(class)和"執行個體"(instance)的區分,全靠一種很奇特的"原型鏈"(prototype
Time of Update: 2018-12-08
原文作者:Andy Croxall原文連結:Ten Oddities And Secrets About JavaScript翻譯編輯:張鑫旭 資料類型和定義 1. Null是個對象 JavaScript眾多類型中有個Null類型,它有個唯一的值null, 即它的字面量,定義為完全沒有任何意義的值。其表現得像個對象,如下檢測代碼: 複製代碼 代碼如下:alert(typeof null); //彈出 'object' 如下: