從思想上重視JavaScript才可以駕馭它

今天偶然看到的這篇文章,深有同感,一直覺得大家對JavaScript存在或多或少的偏見,這篇文章說出了我的心聲。 圖1. 可憐的JavaScript(摘自《Practical JavaScript DOM Scripting and Ajax Projects》)

JavaScript如何?類

Javascript本身並不支援物件導向,它沒有存取控制符,它沒有定義類的關鍵字class,它沒有支援繼承的extend或冒號,它也沒有用來支援虛函數的virtual,不過,Javascript是一門靈活的語言,下面我們就看看沒有關鍵字class的Javascript如何?類定義,並建立對象。 定義類並建立類的執行個體對象 在Javascript中,我們用function來定義類,如下: function Shape(){ var x=1; var y=2;}

js如何判斷一個對象是不是Array?

在開發中,我們經常需要判斷某個對象是否為數群組類型,在Js中檢測物件類型的常見方法都有哪些呢? typeof 操作符 對於Function, String, Number ,Undefined 等幾種類型的對象來說,他完全可以勝任,但是為Array時 var arr=new Array("1","2","3","4","5");alert(typeof(arr)); 你會收到一個object 的答案,有點讓人失望。 instanceof 操作符

JavaScript對象、數組和雜湊表

在javascript中,對象實際上就是一個雜湊表,比如下面這個user對象: function user(n, a){ this.name = n; this.age = a; this.toString = function() { return "Name:" + this.name + ", Age:" + this.age; }}var u = new user("tom", 18);for (var k in u) { alert('

JavaScript中函數與對象的微妙關係

在ajax興起以前,很多人寫JavaScript可以說都是毫無章法可言的,基本上是想到什麼就寫什麼,就是一個接一個的函數function,遇到重複的還得copy,如果一不小心函數重名了,還真不知道從何開始尋找錯誤,因為大家總是用面向過程的編程思想來寫JavaScript代碼,而且也由於網路上充斥了太多小“巧”的JavaScript程式碼片段,很多都是隨意而為,很不規範,這也就造成了大家對JavaScript的“誤解”,一味的認為它就是一個輔助的小東東,而不適合做大的東西開發。但是自從ajax興起

JavaScript匿名函數知多少

在一些Javascript庫中可以看見這種寫法: function(){//所有庫代碼代碼}(); 這樣寫的一個目的是——封裝。 JavaScript並不是物件導向的,所以它不支援封裝。但是在不支援封裝的語言裡同樣可以實現封裝。而實現的方法就是匿名函數。 //定義function F(x){ this.x = x; function double(x){return x*x;} this.getDoubleX = function(){ return

如何通過JSONP實現跨域

JSONP即JSON with Padding。由於同源策略的限制,XmlHttpRequest只允許請求當前源(網域名稱、協議、連接埠)的資源。如果要進行跨域請求,我們可以通過使用 html的script標記來進行跨域請求,並在響應中返回要執行的script代碼,其中可以直接使用JSON傳遞javascript對象。這種跨域的通訊方式稱為JSONP。 對於上面的解釋,我們可以簡單這樣理解:JSONP就是可以通過JavaScript檔案進行跨域通訊的方式,例如:現在各大網站風靡的搜尋提示。

用js replace()函數實現搜尋高亮

replace函數的文法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字串(string),reExp可以是Regex對象(RegExp)也可以是字串(string),replaceText是替代尋找到的字串。為了協助大家更好的理解,下面舉個簡單例子說明一下: <script language="javascript"> var stringObj="不簡明的現代魔法,不簡明的"; //替換錯別字“不簡明的”為“簡明”

JavaScript擷取並解析XML

XML在Web開發中使用很廣泛,通常作為資料傳遞的載體。一般將資料傳遞給前端的時候,需要用JavaScript解析後才能使用。所以,用JavaScript解析XML是使用得非常普遍的。 有以下一個XML檔案: <?xml version="1.0" encoding="ISO-8859-1" ?> <note><to>duncan</to> <from>John</from> <heading>Reminder</heading>

JavaScript的URL編碼轉換函式

在使用url進行參數傳遞時,經常會傳遞一些中文名的參數或URL地址,在幕後處理時會發生轉換錯誤。在有些傳遞頁面使用GB2312,而在接收頁面使用UTF8,這樣接收到的參數就可能會與原來發生不一致。使用伺服器端的urlEncode函數編碼的URL,與使用用戶端javascript的encodeURI函數編碼的URL,結果就不一樣。

關於JavaScript誕生之初的趣事

我在讀很多優秀的JavaScript源碼時候常常被它詭異的文法搞的精疲力盡,所以時不時的加固JavaScript基礎知識是十分有必要的,這些知識每次溫故或者你換個角度去思考都能收穫頗多,那麼如此深不可測的語言是怎麼誕生的呢?它的祖師爺在創造它的時候是基於什麼思考的呢?我想如果大夥知道了這段曆史,或許理解起JavaScript來就會感覺跟輕鬆些跟愜意些,說不定很多人因此而想好好的學習它。人總有點八卦的小毛病,回顧下一件事情或一個東西的曆史,探尋他們曆史過程中的種種有趣的細節,一定是件很有意思的事情

JavaScript定義規範的類

JavaScript物件導向的程式編寫與其它OO語言有一些出入,所以使用JavaScript的物件導向特性的時候,需要注意一些規範性的問題。下面就簡單地談一下,JavaScript如何定義一個類,在定義類的過程中需要如何規範你的代碼。 使用javascript來定義類的規範如下: 指定類名與建構函式,類名(建構函式名)首字母大寫: function YourClass(){} 使用"this.成員變數"在其建構函式內定義(偽)私人成員,最好約定(偽)私人成員都以"_"

JavaScript去除空格trim()的原生實現

W3C那幫人的腦袋被驢踢了,直到javascript1.8.1才支援trim函數(與trimLeft,trimRight),可惜現在只有firefox3.5支援。由於去除字串兩邊的空白實在太常用,各大類庫都有它的影子。加之,外國人都很有研究精神,搞鼓了相當多實現。實現1String.prototype.trim = function() { return this.replace(/^\s\s*/, '').replace(/\s\s*$/,

使用JavaScript時要注意的7個要素

每種語言都有它特別的地方,對於JavaScript來說,使用var就可以聲明任意類型的變數,這門指令碼語言看起來很簡單,然而想要寫出優雅的代碼卻是需要不斷積累經驗的。本文利列舉了JavaScript初學者應該注意的七個細節,與大家分享。1. 簡化代碼JavaScript定義對象和數組非常簡單,我們想要建立一個對象,一般是這樣寫的: var car = new Object();car.colour = 'red';car.wheels = 4;car.hubcaps =

如何用JavaScript做一個可拖動的div層

可拖動的層在Web設計中用處很多,比如在某些需要自訂風格布局的應用中,控制項就需要拖動操作,下面介紹一個,希望可以滿足你的需求,順便學習一下可拖動的層是如何?的。 下面是效果示範: 這個DIV可以移動,你可以測試下。 JavaScript code <script type="text/javascript">// <![CDATA[var $j=function(id){return

JavaScriptRegex的瀏覽器的差異

JavaScript中的Regex在不同的瀏覽器中得到的結果可能會有差異,下面把Regex在五大主流瀏覽器(IE、Firefox、Chrome、Safari、Opera,以目前的版本為準)之間的差異整理一下羅列出來。 1. Firefox和Chrome會過度最佳化在迴圈(以及其中內嵌的函數定義)中建立的Regex,似乎它們在假設寫JavaScript的人會把Regex的構建和賦值寫錯地方。 var r;for(var i = 0; i 2.

JavaScript計算兩個日期間的天數

有些時候我們需要計算兩個日期間的天數,或者小時數等等。下面用JavaScript實現這個需求,然後學習一下需要用到的一些JavaScript函數。 JavaScript程式如下: <script type="text/javascript"> var getOffDays = function(startDate, endDate) { //得到時間戳記相減 得到以毫秒為單位的差 var mmSec = (endDate.getTime() -

什麼是node.js的事件驅動編程

Node.js現在非常活躍,相關生態社區已經超過Lua(基本上比較知名的功能都有nodejs模組實現)。但是我們為何要使用Node.Js?相比傳統的webserver服務模式,nodejs有什麼優點優勢? Node.Js是基於javascript語言,建構在google V8

格式化金額數與自動四捨五入

下面是一個格式化函數,可以控制小數位元,自動四捨五入。例如:12345格式化為12,345.00,12345.6格式化為12,345.60,12345.67格式化為 12,345.67,只留兩位小數。 效果示範小數點位元: 2 3 4 5 + 下面為程式碼: <script type="text/javascript"> function fmoney(s, n) { n = n > 0

JavaScript中繼承機制的模仿實現

首先,我們用一個經典例子來簡單闡述一下ECMAScript中的繼承機制。 在幾何學上,實質上幾何形狀只有兩種,即橢圓形(是圓形的)和多邊形(具有一定數量的邊)。圓是橢圓的一種,它只有一個焦點。三角形、矩形和五邊形都是多邊形的一種,具有不同數量的邊。正方形是矩形的一種,所有的邊等長。這就構成了一種完美的繼承關係。如: 在這個例子中,形狀(Shape)是橢圓形(Ellipse)和多邊形(Polygon)的基類(base

總頁數: 3271 1 .... 2792 2793 2794 2795 2796 .... 3271 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.