Time of Update: 2018-12-05
記得第一次面試前端工程師的時候,面試官出了一個機試題,要求每個p單擊時彈出不同的值,我是這麼寫的,執行的時候發現每次都是alert(5),當時堅持認為My Code沒有任何問題,心想這麼簡單的功能我怎麼會弄錯。時至今日,想起這件事,便寫篇博文總結之。<!DOCTYPE HTML><html><head><meta charset="utf-8" /><title>面試試題</title><script
Time of Update: 2018-12-05
javascript是很多東西的基礎,比如jsp,ajax等,如果不會這麼,那麼學起這些來就比較麻煩,所以要先學好這個,為將來的學習打好經濟基礎/(`v`)/。javascript是一個基於對象和事件驅動,並且具有安全性的指令碼語言,應用很廣泛,不僅僅是網頁,不要被jsp給困住。基於對象,就是不需要指定變數的類型,你給他一個3,它知道是整型,如果給賦值'3',它就知道是char。事件驅動,就是單擊啊,之類的事件進行驅動。javascript優點:網頁互動性強,簡單易用。js主要是基於用戶端運行,
Time of Update: 2018-12-05
原文 為了防止xss以及csrf+xss的漏洞,後台統一對字串進行了轉碼。結果如下:原文: JavaScript進階程式設計編碼: JavaScript高级程序设计 前端寫了一段如下代碼:function u2str(text){// transform text in utf8 format to string return
Time of Update: 2018-12-05
js一般有兩種不同資料類型的值: 基本類型(包括undefined,Null,boolean,String,Number),按值傳遞; 參考型別(包括數組,對象),按址傳遞,參考型別在值傳遞的時候是記憶體中的地址。複製或者拷貝分為2種: 淺度複製:基本類型為值傳遞,對象仍為引用傳遞。 深度複製:所有元素或屬性均完全複製,並於原參考型別完全獨立,即,在後面修改對象的屬性的時候,原對象不會被修改。1 function cloneObject(obj){ if (obj ===
Time of Update: 2018-12-05
字串轉換為數值常規方法:var var1 = parseInt("2");var var2 = parseFloat("2");var var3 = Number("2");var var3 = new Number("2");簡便方法:var var1 = +("2");另一簡便方法:var str = "1.0";var num = str -
Time of Update: 2018-12-05
Javascript具有自動垃圾收集機制(GC:Garbage Collection)。這種垃圾收集機制的原理很簡單:找出那些不再繼續使用的變數,然後釋放其佔用的記憶體。垃圾收集器會按照固定的時間間隔,周期性的執行這一操作。
Time of Update: 2018-12-05
在Javascript有兩種方式使用in操作符:單獨使用和在for-in迴圈中使用。在單獨使用時,in操作符會在通過對象能夠訪問給定屬性時返回true,無論該屬性存在於執行個體中還是原型中。執行個體一:檢查屬性是在原型中還是在對象中function Person(){}Person.prototype.name="Nicholas";var person1=new Person();console.log(person1.hasOwnProperty("name"));
Time of Update: 2018-12-05
Javascript是一種基於對象(Object-Based)的程式設計語言,常說在javascript中一切都是對象,那麼對象究竟是怎麼產生的呢? (一)原始模式 首先說一下我們常見的對象——Object執行個體。建立Object執行個體方式有很多,第一種是使用new操作符後跟Object建構函式:var person=new Object();person.name="張三";person.age=21; 另一種方式是對象字面量標記法:var
Time of Update: 2018-12-05
寫在前面的話:國內對前端的研究在某些方面也不遜色於國外,這篇文章雖然看不太懂,但我很欣賞這種深入研究的精神!-------------------------------------轉載原文-----------------------------------反科裡化的話題來自javascript之父Brendan Eich去年的一段twitter.
Time of Update: 2018-12-05
為了更好的理解本文,請預先學習原型、原型鏈的基礎知識。 那麼先看看下面幾道坑爹的判斷題吧1 Object.__proto__ == Object.prototype2 Function.__proto__ == Function.prototype3 Object instanceof Function4 Function instanceof Object 可能很多人第一眼就懵了(包括筆者),感覺有點像應試教育的判斷題,別著急,慢慢來,首先讓我們看看一句再普通不過的代碼,var a =
Time of Update: 2018-12-05
這是今年百度公司暑期實習生招聘web前端開發工程師面試的面試官問本人的一道面試題。 問題:javascript如何監控變數呢? 答:__defineGetter__ 和 __defineSetter__這兩個方法每次get和set的時候都會執行。不過並不是所有瀏覽器都支援。在Firefox下,我們可以通過object.watch(prop, handler)來實現。而在IE下,可以通過Object.defineProperty來實現。具體代碼如下: 1 /* 2 *
Time of Update: 2018-12-05
今天在工作中發現一個詭異的問題,理論上應該是沒有元素的數組,長度居然是1。查了半天,原來是Javascript中的split和其他語言中不同,即對空string使用split會返回含有一個空string的數組,而不是一個空數組。var str = "", arr = str.split("_"); console.log(arr.length === 1); //trueconsole.log(arr === []); //falseconsole.log(arr === [""]); /
Time of Update: 2018-12-05
如果你覺得JavaScript沒什麼了不起的話,如果你認為你的JavaScript已經很厲害了,如果你想深入學習ECMAScript,請看下面的題目: [] == ![] parseInt(1/0,19)==18 ++[[]][+[]]+[+[]] == 10 0 == +[]1 == ++[[]][+[]]2 == ++[++[[]][+[]]][+[]]3 == ++[++[++[[]][+[]]][+[]]][+[]]undefined == [][[]]Infinity ==
Time of Update: 2018-12-05
Javascript主要有以下幾種位操作符:AND ( & ) OR ( | ) XOR ( ^ ) NOT ( ~ ) LEFT SHIFT ( << ) RIGHT SHIFT ( >> ) ZERO-FILL RIGHT SHIFT ( >>> )一般來說,我們在Javascript中很少能用到這些位操作符,但在某些特殊情況下,這些簡單的操作符卻能抵得上好幾行代碼(如果不在乎可讀性的話)。-(n+1)對一個數進行~運算,等同於-
Time of Update: 2018-12-05
問題很容易看懂,所以就沒有翻譯.------------------------原文--------------------------------## Intro Questions 01. When might comparative type coercion occur? How would you avoid it? How would you change a "falsy" or "truthy" value into a real boolean? 02. Describe
Time of Update: 2018-12-05
1 //一.原廠模式 2 function createBox(user,age){ 3 var obj=new Object(); 4 obj.user=user; 5 obj.age=age; 6 obj.run=function(){ 7 return this.user+this.age+"原型在哪裡!"; 8 }; 9 return obj;10 }11 var
Time of Update: 2018-12-05
原文連結:http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting你知道下面的JavaScript代碼執行後會alert出什麼值嗎? 1: var foo = 1; 2: function bar() { 3: if (!foo) { 4: var foo = 10; 5: } 6: alert(foo); 7: } 8: bar(
Time of Update: 2018-12-05
原文:Model-View-Controller (MVC) with JavaScript作者:Alex@Net譯文:JavaScript 的 MVC 模式譯者:justjavac本文介紹了模型-視圖-控制器模式在 JavaScript 中的實現。我喜歡 JavaScript,因為它是在世界上最靈活的語言之一。 在 JavaScript 中,程式員可以根據自己的口味選擇編程風格:面向過程或物件導向。 如果你是一個重口味,JavaScript 一樣可以應付自如: 面向過程,物件導向,面向方面,
Time of Update: 2018-12-05
Throttle無視一定時間內所有的調用,適合在發生頻度比較高的,處理比較重的時候使用。var throttle = function (func, threshold, alt) { var last = Date.now(); threshold = threshold || 100; return function () { var now = Date.now(); if (now - last < threshold) {
Time of Update: 2018-12-05
你可能知道,Javascript語言的執行環境是"單線程"(single