JavaScript 本機物件、內建對象、宿主對象

首先解釋下宿主環境:一般宿主環境由外殼程式建立與維護,只要能提供js引擎執行的環境都可稱之為外殼程式。如:web瀏覽器,一些案頭應用系統等。即由web瀏覽器或是這些案頭應用系統早就的環境即宿主環境。本機物件ECMA-262 把本機物件(native object)定義為“獨立於宿主環境的 ECMAScript

JavaScript實作類別與繼承

1. 前言有人認為JavaScript 是一門面向過程的語言。 因為基本的使用基本上都是寫函數,然後調用。 ==> 這種想法是不對的。JS的創立者是:  Brendan Eich. 在JS創立的時候, Java 以及物件導向的設計已經大行其道了。1995年5月,Netscape做出決策,未來的網頁指令碼語言必須"看上去與Java足夠相似",但是比Java簡單,使得非專業的網頁作者也能很快上手。基於此,

怎麼在網頁中通過JAVAscript控制SVG映像放大縮小

 首先先說明一下我想做出的網頁效果,基本上和地圖一樣,將滑鼠放在映像上之後,滾動滑鼠滑輪可以實現圖片放大和縮小,按下滑鼠後移動滑鼠可以實現映像的移動,具體效果去百度(Google)地圖體驗一下就知道了。當然,上面的只是我的初步設想,在實現過程中就出問題了,下面我把自己遇到的困難和解決方案說一下,由於這是公司項目,涉及到智慧財產權和保密問題,我就只說思想,不給代碼,代碼就自己寫吧。問題一:滑鼠滑輪時間的多瀏覽器支援問題。瀏覽器判斷滑鼠滑輪的滾動是通過滑鼠滑輪滾動時傳遞的delta值來判斷的:在IE

Javascript圖形處理庫 — Raphaël

如果要使用JS 繪製一些圖形和處理一些動態圖形, 比如想繪製一些流程圖什麼的, Raphaël是一個不錯的選擇。從著作權資訊上看, 和大名鼎鼎的 Sencha 有一定的關係 (研發Extjs的公司)。官方是:http://raphaeljs.com/index.html一般的下載大小是89k, 使用GZIP壓縮之後的版本只有31K, 沒有壓縮的版本大小也只有221 K.Raphaël是可以簡化web向量圖形開發的很小的js庫。 它可以幫你建立一些特殊的表徵圖和旋轉的效果。Raphaël使用的是 

Javascript 中的非空判斷 undefined,null, NaN的區別

JS 資料類型在介紹這三個之間的差別之前, 先來看一下JS  的資料類型。在 Java ,C這樣的語言中, 使用一個變數之前,需要先定義這個變數並指定它的資料類型,是整型,字串型,....但是在js 中定義變數統一使用 var , 或者不使用var 也可以使用。那麼js 中是否有資料類型的概念呢? 當然有, 使用 typeof 就可以判斷這個變數的資料類型:<!--Add by oscar999--><!DOCTYPE HTML PUBLIC "-//W3C//DTD

圖形布局-Layout 之js設計實現

前言定位browser 的 chart,   VML,SVG, HTML5 Canvas使用的方式各不一樣。如果使用現有的js  library (各種實現js 圖表的library匯總與比較) , 調用的API方式也肯定不同。舉個例子: draw2d 使用addFigure 和 setPosition 都可以設定圖的位置。混在特定技術或是特定library 裡去layout , 很明顯不是一個明智之舉。切分開來, layout

你真的已經搞懂JavaScript了嗎?

昨天在著名前端架構師Baranovskiy的部落格中看到一個文章《So, you think you know JavaScript?》題目一:if (!("a" in window)) { var a = 1;}alert(a);題目二:var a = 1, b = function a(x) { x && a(--x); };alert(a);題目三:function a(x) { return x * 2;}var a;alert(a)

[SVG] 根據SVG橢圓弧路徑參數計算中心點座標、起始角度、結束角度的Javascript函數

SVG spec 1.2以及之前的版本標準中,都只有一種繪製橢圓弧的方式,即以起點、終點、長半軸、短半軸、大小弧標記、順逆時針方向標記、傾角為參數來確定一段弧。這個方法很強大並靈活,可繪製任意的橢圓弧。有時候我們需要計算圓弧的圓心和起始角度、結束角度,雖然標準官方文檔給出了計算公式的描述,但是沒有給出直接的代碼。我根據標準文檔以及網上的資料,寫了一個Javascript函數來做這件事。 // svg : [A | a] (rx ry x-axis-rotation

JavaScript:for迴圈中的i,加上var

在javascript中,如果在聲明一個局部變數時,前面沒有加var,則此局部變數會變成全域變數,基於此,在方法中寫for迴圈的時候,記得給迴圈變數加上varvar i=0; //定義全域變數0function unUserVar(){for(i=0;i<1;i++){   //這裡沒有加var,所以會把之前的i覆蓋掉,導致程式BUGalert("inner i:"+i);}}unUserVar();alert(i);  //顯示1,而不是之前定義的0function userVar(){

javascript 不支援參數輸出

javascript 和 VC互動,VC 不能將傳回值放在參數(方向out)中:“JavaScript does not support [in, out], only [in] and [out, retval].  JavaScript has no syntax for passing parameters by reference.   You can use retval or add another property for last

javascript判斷資料類型

1 判斷是否為數群組類型2 判斷是否為字串類型3 判斷是否為數實值型別4 判斷是否為日期類型5 判斷是否為函數6 判斷是否為對象1 判斷是否為數群組類型linenum<script type="text/javascript"> //<![CDATA[ var a=[0]; document.write(isArray(a),'<br/>'); function isArray(obj){ return (typeof

javascript charCodeAt() 和 fromCharCode()

1. charCodeAt ()將字元轉換為代碼;var str="Hello world!"document.write(str.charCodeAt(1))           'cjk': [ 'u4e00', 'u9fa5' ],    // 漢字 [一-龥]              'num': [ 'u0030', 'u0039' ],    // 數字 [0-9]              'lal': [ 'u0061', 'u007a' ],    // 小寫字母 [a-z]

javascript call callee

call 能實作類別似的物件導向繼承:function Person(){this.a = 'person';this.b = function(){alert('I\'m a person!');}this.c = 'Person\' c property';this.d = function(){alert('Person\' function d.');};}function Student(){Person.call(this);this.a = 'student';this.e = '

javascript DOM節點類型(nodeType)

DOM節點類型,在遍曆處理中非常有用,可以過濾掉不關心的節點。如:function showPageAttr(){var divImgShowArea = document.getElementById('divImgShowArea');var nodes = divImgShowArea.childNodes;for(var i=0;i<nodes.length;i++){var img = nodes[i];if(img.nodeType != 1)continue;

Javascript的Defer屬性

Script中的Defer屬性如果你是一個對系統效能比較關心和在意的人,我想你應該會對Script指令碼中的defer屬性感興趣的。script中的defer屬性預設情況下是false的。按照DHTML編程寶典中的描述,對於Defer屬性是這樣寫的:Using the attribute at design time can improve the download performance of a page because the browser does not need to parse

Javascript 中 Array和Object的關係

Javascript中, Array 也是Object, 但有的人可能會誤認為,形如a['key'] 的訪問是Array的功能,其實不是。如下例中,Array 賦值後,其length屬性仍然為0,因為資料並沒有被放到數組的位置中,而是被放到了Array的原形對象Object中。var a = new Array();a['one'] = 1;a['two'] = 2;a['three'] =

javascript 不確定的函數的執行

在javascript中,有時候只知道一個函數的名字,但並不確定該函數有沒有,如何判斷該函數是否存在,並執行呢。一個方法是用eval() 執行拼接的程式字串,但可能帶來效能問題。另一個方法是使用符號屬性的方式來訪問函數,因為函數都是window對象的屬性。利用window[函數名] 來代表該function對象,用window[函數名]()來執行或調用該函數。例子:<html><head><meta http-equiv="Content-Type"

javascript 使用prototype 實現OOP繼承

使用prototype特性,可以很方便的在子類中繼承父類的方法和屬性。下例中Vegetable視為父類,Celery視為子類。Vegetable 擁有屬性taste, 方法fun1Celery 擁有屬性 color, 方法fun2,如果再定義與Vegetable 中同名的屬性或方法,則會覆蓋父類Vegetable 中對應的屬性和方法。function Vegetable(){this.taste='delicious';this.fun1 =

javascript prototype 實作類別似OOP繼承

這裡要說明的是,公有屬性(使用this.修飾符)可以被覆蓋,私人屬性(使用var 修飾符)不能被覆蓋子類不能訪問父類的私人屬性,父類的方法正常訪問父類的私人變數。function Vegetable(){this.taste='delicious';var a = 'I\'m Vegetable\'a!'this.fun1 = function(){alert('Vegetable fun1 doing...');}this.fun3 =

Javascript 代碼 與 字元的轉換

在Javascript中,要擷取字元的代碼,可以用charCodeAt()函數獲得反之,要根據代碼擷取該代碼錶示的字元,可以用String.fromCharCode() 來擷取。應用一:base64編碼,要使用到charCodeAt() 函數應用二:事件代碼轉換例子:<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>建立網頁

總頁數: 3271 1 .... 620 621 622 623 624 .... 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.