Time of Update: 2018-12-07
本文不討論 文法解釋期和執行期的區別 以及上下文環境和閉包的概念 我們只從另一個角度來看問題.js 中的this 是一個指標 他指象某個對象. 那麼 一般來說 記住一條原則 即可.如果一個函數不是作為類 來執行個體化某個對象 如 new func();而是當 函數 做為某個對象的 方法被調用時 則this就指向該對象. 如果該函數是直接被調用 則this指向全域變數...這句話似乎不好理解. 我們看下例子function test(){this.name='franky';}var o={};
Time of Update: 2018-12-07
原文:http://asenbozhilov.com/articles/quiz.html這些題目都源自ECMA-262-3規範.Good luck!譯者注:作者是根據ES3出的題,但我沒發現和ES5有不同表現的地方.暫時不給出答案解釋.請到http://ecma-international.org/ecma-262/5.1/找答案 Function.prototype.toString.call({ name: 'F', body: 'print("Javascript is
Time of Update: 2018-12-07
原題地址: http://www.cnblogs.com/ziyunfei/archive/2012/10/04/2711370.html有興趣的同學可以去做一做. 本帖為,本人給出的答案貼.並非原作者給出答案. 僅供參考. 歡迎討論. 1. TypeError原因: Function.prototype.toString不是一個通用方法,這意味著,該方法被調用時,其this,如果不是一個函數對象,則要拋出TypeError異常.2. TypeError.原因: new
Time of Update: 2018-12-07
function SetIFrameHeight(down) { var Sys = {}; var ua = navigator.userAgent.toLowerCase(); var s; (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] : (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] : (
Time of Update: 2018-12-07
全域屬性和函數可用於所有內建的 JavaScript 對象。頂層函數(全域函數)FF: Firefox, IE: Internet Explorer函數描述FFIEdecodeURI()解碼某個編碼的 URI。15.5decodeURIComponent()解碼一個編碼的 URI 組件。15.5encodeURI()把字串編碼為 URI。15.5encodeURIComponent()把字串編碼為 URI 組件。15.5escape()對字串進行編碼。13eval()計算 JavaScript
Time of Update: 2018-12-07
.目前 主流的判斷方式 是var obj='franky';return Object.prototype.toString.call(obj)=='object String'; 這種方式..不得不說 這種方式很優秀 除了代碼量比較多一些... 但是它在 非ie瀏覽器中的效能表現十分優秀...有些朋友可能會奇怪 這個不是專門判斷是不是 Array的麼. 考慮到typeof 返回 object 以及 iframe new Window() 等其他window.Array!=
Time of Update: 2018-12-07
javascript 函數實參數限制.我依稀記得哪本書上有說過,實參數限制是32個? 現在想想估計是我記錯了..他也許說的是32位.測試結果:safari 下是65535個.即 ushort 來儲存(2位元組 16個1).更多的則忽略.其他瀏覽器 至少是int.MaxValue .據說FireFox 甚至是用long 來維護 實參數.其他瀏覽器 也許是int 或者可能是uint .這個就不管了. 畢竟我們知道了瓶頸 在 65535.基於 以上基礎.可以在 串連數組時 考慮優先採用
Time of Update: 2018-12-07
通過對javascript的幾種函數的運行分析,得出結論:javascript 的繼承實際上是通過對對象進行初始化來類比的。代碼一:實現繼承的一種方法<script language="javascript" type="text/livescript">function Person(){ this.say=function(){alert("Name")};}function PersonA(){ this.say=function(){alert("windowSa
Time of Update: 2018-12-07
javascript物件導向繼承的三種方法:<html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"> <title>Untitled Page</title> <script language="javascript" type="text/javascript"> //基類 function Person() { th
Time of Update: 2018-12-07
第一方法就是在CSS裡面定義#xxx { cursor: default; } 第二方法就是在style中定義 列舉比較常用的cursor: hand;手型cursor: default;最常用的箭頭狀 cursor: text;文本 crosshair: 十字 cursor: wait;漏鬥 cursor: help;問號 cursor: e-resize;左右箭頭 多用於拖拉層效果 cursor: ne-resize; 拉視窗的樣式 cursor: n-resize;上下箭頭
Time of Update: 2018-12-07
1、escape對ansi碼0-255以外的字元進行編碼輸出%u****格式即unicode值,escape 方法返回一個包含了 charstring 內容的字串值( Unicode 格式)。所有空格、標點、重音符號以及其他非 ASCII 字元都用 %xx 編碼代替,其中 xx 等於表示該字元的十六進位數。例如,空格返回的是 "%20" escape不編碼字元有69個:*,+,-,.,/,@,_,0-9,a-z,A-Z 2、encodeURI類似escape,用於地址欄編碼
Time of Update: 2018-12-07
10款令人驚奇的HTML5和javascript效果。回到幾年前,這些效果是根本不可能實現,只能用flash做,但是現在,已經很輕鬆的就可以實現了。1. Breathing Galaxies使用鍵盤來改變形狀中的線條樣式,或移動滑鼠來建立一個新的形狀。查看:http://mudcu.be/labs/JS1k/BreathingGalaxies.html2. Noise
Time of Update: 2018-12-07
//判斷瀏覽器 //----------------------------- 判斷瀏覽器 -------------------------var userAgent = navigator.userAgent; //取得瀏覽器的userAgent字串var isOpera = userAgent.indexOf("Opera") > -1; //判斷是否Operavar isMaxthon = userAgent.indexOf("Maxthon") > -1 ;
Time of Update: 2018-12-07
IFrame高度自適應的設定代碼。function SetIFrameHeight(down) {var Sys = {};var ua = navigator.userAgent.toLowerCase();var s;(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :(s = ua.match(/chrome\/([\d.]+)
Time of Update: 2018-12-07
首先,給大家道個歉,專欄更新的晚了。理由借口神馬的就不多說了......字串的比較 ==相等!=不相等===絕對相等!==不絕對相等>大於>=大於等於<小於<=小於等於 是否相等 var str1="JavaScript";var str2="JAVASCRIPT";document.write("str1="+str1);document.write("<br/>");document.write("str2="+str2);document.write(
Time of Update: 2018-12-07
RegExp 對象RegExp 對象表示Regex,它是對字串執行模式比對的強大工具。直接量文法/pattern/attributes建立 RegExp 對象的文法:new RegExp(pattern, attributes);參數參數 pattern 是一個字串,指定了Regex的模式或其他Regex。參數 attributes 是一個可選的字串,包含屬性 "g"、"i" 和 "m",分別用於指定全域匹配、區分大小寫匹配和多行匹配。ECMAScript 標準化之前,不支援 m
Time of Update: 2018-12-07
Math 對象Math 對象用於執行數學任務。使用 Math 的屬性和方法的文法:var pi_value=Math.PI;var sqrt_value=Math.sqrt(15);注釋:Math 對象並不像 Date 和 String 那樣是對象的類,因此沒有建構函式 Math(),像 Math.sin() 這樣的函數只是函數,不是某個對象的方法。您無需建立它,通過把 Math 作為對象使用就可以調用其所有屬性和方法。Math 對象屬性FF: Firefox, IE: Internet
Time of Update: 2018-12-07
Number 對象Number 對象是原始數值的封裝對象。建立 Number 對象的文法:var myNum=new Number(value);var myNum=Number(value);參數參數 value 是要建立的 Number 對象的數值,或是要轉換成數位值。傳回值當 Number() 和運算子 new 一起作為建構函式使用時,它返回一個新建立的 Number 對象。如果不用 new 運算子,把 Number()
Time of Update: 2018-12-07
String 對象String 對象用於處理文本(字串)。建立 String 對象的文法:new String(s);String(s);參數參數 s 是要儲存在 String 對象中或轉換成原始字串的值。傳回值當 String() 和運算子 new 一起作為建構函式使用時,它返回一個新建立的 String 對象,存放的是字串 s 或 s的字串表示。當不用 new 運算子調用 String() 時,它只把 s 轉換成原始的字串,並返迴轉換後的值。String 對象屬性FF: Firefox,
Time of Update: 2018-12-07
第三章