寫了10年的Javascript也未必全瞭解的連續賦值運算

一、引子 複製代碼 代碼如下:var a = {n:1}; a.x = a = {n:2}; alert(a.x); // --> undefined 這是蔡蔡在看 jQuery源碼 時發現這種寫法的。以上第二句 a.x = a = {n:2} 是一個連續賦值運算式。這個連續賦值運算式在引擎內部究竟發生了什嗎?是如何解釋的? 二、猜想 猜想1:從左至右賦值,a.x 先賦值為{n:2},但隨後 a 賦值為 {n:2},即 a 被重寫了,值為 {n:2},新的 a 沒有

javascript定時儲存表單資料的代碼

(忘記是不是兩家郵箱都有這個功能)。 那這個功能是怎麼做的呢? 定時,我們知道怎麼弄,但儲存呢?也許我們會通過隱藏欄位等手段來存放資料。但是,這個卻有個缺點:那就是重新整理頁面後,資料將會丟失。 而此時,就該輪到我們很少關注,而且估計有不少人不知道的UserData 行為(userData Behavior)登場了: 而這個UserData是什嗎?怎麼用?,我將在文章最後轉載一篇介紹它的文章。 現在,我直接上例子,所謂無代碼,無真相嘛: 複製代碼 代碼如下:<!DOCTYPE html

整理一些JavaScript的IE和Firefox的相容性注意事項

1. document.form.item 問題 (1)現有問題: 現有代碼中存在許多 document.formName.item("itemName") 這樣的語句,不能在Firefox(Firefox)下運行 (2)解決方案: 改用 document.formName.elements["elementName"] (3)其它 參見 2 2. 集合類對象問題 (1)現有問題: 現有代碼中許多集合類對象取用時使用 (),IE 能接受,Firefox(Firefox)不能。 (2)解決方案:

javascript一些實用技巧小結

JS對象之Table表格對象(摘抄) Table對象集合Table對象:表示HTML文檔中的表,對於文檔中每個<table>標記,瀏覽器都建立一個Table對象.集合描述cells[]擷取包含表格中所有儲存格的數組js 取行中列 複製代碼 代碼如下:var tbodyObj = document.getElementById(tbodyID); tbodyObj.rows[rowID].cells[colID].innerText = "abcd";

再談javascript圖片預先載入技術(詳細示範)

而本文所提到的預先載入技術主要是讓javascript快速擷取圖標題部資料的尺寸。一段典型的使用預先載入擷取圖片大小的例子: 複製代碼 代碼如下:var imgLoad = function (url, callback) { var img = new Image(); img.src = url; if (img.complete) { callback(img.width, img.height); } else { img.onload = function () { callback(

JavaScript擷取頁面上某個元素的代碼

W3C標準推薦的文法是通過document文檔對象擷取DOM樹內的內的某個元素,常見的方法有getElementById()、getElementsByName()、getElementsByTagName(),他們的作用分別通過id屬性、name屬性/標籤名稱返回單個節點或節點集合。 複製代碼 代碼如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

javascript類比的Ping效果代碼 (Web Ping)

當然,在請求時無法統計HTTP頭部的長度,所以當請求資料包長度在傳輸單元最大值臨界點時,額外的HTTP頭可以導致IP分組,因此存在一定的誤差.(2009/6/21) 線上示範:http://demo.jb51.net/js/2011/ping/核心代碼:複製代碼 代碼如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

javascript textarea游標定位方法(相容IE和FF)

今天在做一個部落格轉寄的功能,就像新浪微薄轉播的那個功能一樣,有一個textArea,就是我們發微薄的那個框,別人的微薄都有一個轉寄的按鈕,當我們點擊這個轉寄按鈕的時候,他的微薄就會進入到textArea中,看起來很簡單的文字框賦值,其實痛點就在於,這時候的游標是定位在最前面的。於是搜尋了baidu,google,找到了 IE下面的方法 複製代碼 代碼如下:var tea=document.getElementById("文字框的ID"); var

JavaScript全域函數使用簡單說明

1、decodeURI() 參數:string 功能描述:對 encodeURI() 函數編碼過的 URI 進行解碼。 執行個體: 可把 http://www.jb51.net/My%20first/ 解碼為 http://www.jb51.net/My first/ 2、decodeURIComponent() 參數:string 功能描述:函數可對 encodeURIComponent() 函數編碼的 URI 進行解碼。 3、encodeURI() 參數:string

Javascript中的函式宣告與函數運算式(奇技淫巧)

舉一個例子: [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]試一下就知道這段代碼的意思就是聲明一個函數,然後立刻執行,因為Javascript中的變數範圍是基於函數的,所以這樣可以避免變數汙染,但這裡的位元運算符“~”乍一看讓人摸不到頭腦,如果去掉它再運行則會報錯:SyntaxError。 在闡述為什麼之前,讓我們先來明確Javascript中的兩個概念:函式宣告和函數運算式: 先來看看什麼樣的是函式宣告: [Ctrl+A 全選

javascript的函數、建立對象、封裝、屬性和方法、繼承

一,function 從一開始接觸到js就感覺好靈活,每個人的寫法都不一樣,比如一個function就有N種寫法 如:function showMsg(){},var showMsg=function(){},showMsg=function(){} 似乎沒有什麼區別,都是一樣的嘛,真的是一樣的嗎,大家看看下面的例子 複製代碼 代碼如下:///-----------------------------------------------------------------------------

如何確保JavaScript的執行順序 之實戰篇

1. 引言 我曾在文章《如何在多個頁面使用同一個HTML片段 - 續》的最後提到JavaScript順序執行的特性。雖然現代瀏覽器可以並行的下載JavaScript(部分瀏覽器),但考慮到JavaScript的依賴關係,他們的執行依然是按照引入順序進行的。 為了更好的測試這個過程,我寫了一個簡單的HTTP處理常式頁面 service.ashx,它可以接受兩個參數: 1. file,需要返迴文件的伺服器端路徑。 2. delay,延遲一定時間後再返回本次HTTP請求(毫秒)。 一個典型的頁面比如:

再論Javascript的類繼承

無參數類繼承的問題 先看一段範例程式碼,實現B繼承於A: 複製代碼 代碼如下:function A() { } A.prototype.a1 = function() { }; function B() { } B.prototype = new A(); B.prototype.b1 = function() { }; var b = new B(); alert(b.constructor == A); // true alert(b.constructor == B); // false

如何確保JavaScript的執行順序 之jQuery.html並非萬能鑰匙

1. 引言 在上一篇文章《如何確保JavaScript的執行順序 - 之jQuery.html深度分析》中,我們揭示了jQuery.html函數之所以能在各種瀏覽器下保持動態JS順序執行,其秘密在於 – 同步AJAX擷取外部JavaScript。 我們先來簡單回顧下HTML原始碼(test2.htm): 複製代碼 代碼如下:<html> <head> <title></title> <script

如何確保JavaScript的執行順序 之jQuery.html深度分析

我們先來簡單回顧下HTML原始碼(test2.htm): 複製代碼 代碼如下:<html> <head> <title></title> <script src="js/jquery-1.4.4.js" type="text/javascript"></script> <script> $(function(){ $('#container').html('<script

再論Javascript下字串串連的效能

文章目錄 3 總結 1 如何進行字串串連? 首先讓我們來回顧一下字串串連的兩種常用方法: 1.1 使用字串串連運算子 常用的語言(如Java、C#、PHP等)都有字串串連運算子,Javascript也不例外,程式碼範例: 複製代碼 代碼如下:var str = ""; str = str + "a"; 1.2 使用數組

Javascript中定義方法的另類寫法(批量定義js對象的方法)

複製代碼 代碼如下:isArray : function(v){ return toString.apply(v) === '[object Array]'; }, isDate : function(v){ return toString.apply(v) === '[object Date]'; }, isObject : function(v){ return !!v && Object.prototype.toString.call(v) === '[object

JS 物件導向之神奇的prototype

JavaScript中對象的prototype屬性,可以返回物件類型原型的引用。這是一個相當拗口的解釋,要理解它,先要正確理解物件類型(Type)以及原型(prototype)的概念。 1 什麼是prototype JavaScript中對象的prototype屬性,可以返回物件類型原型的引用。這是一個相當拗口的解釋,要理解它,先要正確理解物件類型(Type)以及原型(prototype)的概念。

23個Javascript快顯視窗特效整理

1. LightviewLightview是一個基於Prototype與Script.aculo.us開發,用於建立可以覆蓋整個頁面的強制回應對話方塊。展示的內容不僅可以是圖片、文字、網頁、通過Ajax 調用的內容,還可以是Quicktime/Flash影片都能夠以非常酷的效果展示。2. ThickBox (示範地址)ThickBox是一個強制回應對話方塊UI控制項。基於jQuery開發,可以用來展示單張或多張圖片,內嵌的內容,iframed的內容,或通過Ajax擷取的內容。3.

Javascript公用指令碼庫系列(一): 彈出層指令碼

一.摘要 本系列文章是為了抽象通用的,跨瀏覽器的指令碼方法. 本篇文章講解彈出浮動層的javascript函數, 以及函數的原理和使用注意事項. 二.實現效果 用指令碼彈出浮動層是我們最常用的指令碼方法之一.下面是: 點擊圖中的"航空公司"後,會在"航空公司"下面彈出浮動層. 在網上彈出框的指令碼相當多, 而且還有各種第三方JS架構可供我們使用.但是其中有的指令碼過於簡單,僅僅粗略的實現彈出效果而忽略了靈活性,通用性和跨瀏覽器特性. 使用JS架構又有些殺雞用牛刀.所以在收集整理了一些資料後,

總頁數: 3271 1 .... 256 257 258 259 260 .... 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.