echo date(‘Y-m-d H:i:s’, strtotime(‘-1 days’)); javascript
A:$a{0} B:left{$a,1} C:substr($a,0-strlen($a),1); D:$a[0]php
1) mbstring擴展庫的mb_substr截取html
2) 自定義函數前端
1) error_reporting() 設置 PHP 的報錯級別並返回當前級別。java
2) 1 E_ERROR 致命的運行錯誤。錯誤沒法恢復,暫停執行腳本。mysql
3) 2 E_WARNING 運行時警告(非致命性錯誤)。非致命的運行錯誤,腳本執行不會中止。linux
4) 4 E_PARSE 編譯時解析錯誤。解析錯誤只由分析器產生。web
5) 8 E_NOTICE 運行時提醒(這些常常是你代碼中的bug引發的,也多是有意的行爲形成的。)ajax
6) 8191 E_ALL 全部的錯誤和警告(不包括 E_STRICT) (E_STRICT will be part of E_ALL as of PHP 6.0)正則表達式
1) 方法一:php函數跳轉,缺點,header頭以前不能有輸出,跳轉後的程序繼續執行,可用exit中斷執行後面的程序。
2) header("Location:網址");//直接跳轉
3) header("refresh:3;url=http://www.baidu.com");//三秒後跳轉
1) session:儲存用戶訪問的全局惟一變量,存儲在服務器上的php指定的目錄中的(session_dir)的位置進行的存放
2) cookie:用來存儲連續訪問一個頁面時所使用,是存儲在客戶端,對於Cookie來講是存儲在用戶WIN的Temp目錄中的。
3) 二者均可經過時間來設置時間長短。
1) 點換爲下劃線獲取。
2) 如:setcookie('user.name', 'zhangsan');
3) setcookie('user.age', '18');
4) 則須要經過$_COOKIE[‘user_name’]和$_COOKIE[‘user_age’]獲取,經過var_dump($_COOKIE)可確認。
1) 操做符+,在前一個數的基礎上插入後一個數組,若是有相同的拋棄。
2) array_merge 是在前一個參數基礎上插入後一個參數,若是有相同用的key 用後一個覆蓋。
[1,2,3,3,4,5]
索引數組和關聯數組的區別
1) 對數組進行逆向排序並保持索引關係。
2) 相似的函數還有:
file_get_contents或者curl
A.& B.| C. ~ D.!
A. defined() B. ifdefin() C. ifdefined() D. 無
A. php有四種標量類型:布爾類型(boolean),整型(integer),浮點型(float),字符串(string)
B.浮點型(float)與雙精度型(double)是同一種類型
C.複合類型包括:數組(array),對象(object),資源(resource)
D.僞類型:混合型(mixed),數字型(number),回調(callback)
1) GET請求的數據會附在URL以後,POST把提交的數據則放置在是HTTP包的包體中。
2) GET方式提交的數據最多隻能是1024字節, POST是沒有大小限制的,HTTP協議規範也沒有進行大小限制。
3) POST的安全性要比GET的安全性高。經過GET提交數據,用戶名和密碼將明文出如今URL上,由於(1)登陸頁面有可能被瀏覽器緩存,(2)其餘人查看瀏覽器的歷史紀錄,那麼別人就能夠拿到你的帳號和密碼了,除此以外,使用GET提交數據還可能會形成Cross-site request forgery攻擊。
1) GD庫提供了一系列用來處理圖片的功能,使用GD庫能夠處理圖片,或者生成圖片。
2) 在網站上GD庫一般用來生成縮略圖或者用來對圖片加水印或者對網站數據生成報表。
1) __construct(),類的構造函數
2) __destruct(),類的析構函數
3) __call(),在對象中調用一個不可訪問方法時調用
4) __callStatic(),用靜態方式中調用一個不可訪問方法時調用
5) __get(),得到一個類的成員變量時調用
6) __set(),設置一個類的成員變量時調用
7) __isset(),當對不可訪問屬性調用isset()或empty()時調用
8) __unset(),當對不可訪問屬性調用unset()時被調用。
9) __sleep(),執行serialize()時,先會調用這個函數
10) __wakeup(),執行unserialize()時,先會調用這個函數
11) __toString(),類被當成字符串時的迴應方法
12) __invoke(),調用函數的方式調用一個對象時的迴應方法
13) __set_state(),調用var_export()導出類時,此靜態方法會被調用。
14) __clone(),當對象複製完成時調用
15) __autoload(),嘗試加載未定義的類
16) __debugInfo(),打印所需調試信息
1) 可使用檢測(try)、拋出(throw)和捕獲(catch)異常。即便用try檢測有沒有拋出(throw)異常,如有異常拋出(throw),使用catch捕獲異常。
2) 一個 try 至少要有一個與之對應的 catch。定義多個 catch 能夠捕獲不一樣的對象。PHP 會按這些 catch 被定義的順序執行,直到完成最後一個爲止。而在這些 catch 內,又能夠拋出新的異常。
1) php 5.3以前使用的垃圾回收機制是單純的「引用計數」,也就是每一個內存對象都分配一個計數器,當內存對象被變量引用時,計數器 1;當變量引用撤掉後,計數器-1;當計數器=0時,代表內存對象沒有被使用,該內存對象則進行銷燬,垃圾回收完成。
2) 「引用計數」存在問題,就是當兩個或多個對象互相引用造成環狀後,內存對象的計數器則不會消減爲0;這時候,這一組內存對象已經沒用了,可是不能回收,從而致使內存泄露;
3) php5.3開始,使用了新的垃圾回收機制,在引用計數基礎上,實現了一種複雜的算法,來檢測內存對象中引用環的存在,以免內存泄露。
1) safe_mode,PHP安全模式,它提供一個基本安全的共享環境,在一個有多個用戶帳戶存在的php開發的web服務器上。當安全模式打開的時候,一些函數將被徹底的禁止,而另外一些函數的功能將會受到限制,如:chdir,move_uploaded_file,chgrp,parse_ini_file,chown,rmdir,copy,rename,fopen,require,mkdir,unlink等。
2) 注意,在php5.3以上版本,safe_mode被棄用,在php5.4以上版本,則將此特性徹底去除了。
Urlencode
<?php
$a=「<H>some</H><b>html</b>「;
Preg_match(「/<\w?>(\w*?)<\/\w?>/」, $a, $matches);
?>
A.some B.html C.<H>some</H><b>html</b> D.</H><b>
A:@(?<!:)//.*?$@ B: /(^:)\/\/.*?$/ C: /\/\/.*$/ D: @(?<=:)//.*?@
^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
^([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]{2,3}(\\.[a-z]{2})?)$
preg_match('/^[\w\-\.]+@[\w\-]+(\.\w+)+$/',$email);
MVC由Model(模型), View(視圖)和Controller(控制器)組成,PHP MVC能夠更高效地管理好3個不一樣層的PHP代碼。
Model:數據信息存取層。
View:view層負責將應用的數據以特定的方式展示在界面上。
Controller:一般控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。
PHP 命名空間(namespace)是在PHP 5.3中加入的.
PHP 命名空間能夠解決如下兩類問題:
a) 用戶編寫的代碼與PHP內部的類/函數/常量或第三方類/函數/常量之間的名字衝突。
b) 爲很長的標識符名稱(一般是爲了緩解第一類問題而定義的)建立一個別名(或簡短)的名稱,提升源代碼的可讀性。
1) 數據緩存——廣泛的一種緩存技術
2) 頁面緩存
3) 內存緩存
A.Eaccelerafor
B.HCache
C.APC
D.Zend Framework
1) 301 臨時重定向
2) 302 重定向
3) 404 頁面未找到
4) 500 服務器內部錯誤
1) register_globals=Off
接收數據的程序應該用根據表單form傳值的方法來決定。GET:用$_GET['name']、$HTTP_GET_VARS['name']來接收值;POST:當form用POST提交數據$_POST['name']、$HTTP_POST_VARS['name']來接收值;
接收數據的程序能夠直接使用$user_name和$user_pass的這種相似訪問變量的方式獲得值。
2) magic_quotes_gpc=On
若是此時你對輸入的數據做了addslashes()處理,那麼在輸出的時候就必須使用stripslashes()去掉多餘的反斜槓。
必須使用addslashes()對輸入數據進行處理,但並不須要使用stripslashes()格式化輸出,由於addslashes()並未將反斜槓一塊兒寫入數據庫,只是幫助mysql完成了sql語句的執行。
3) allw_url_include=Off
4) sssion.auto_start=0
答:確認服務器硬件是否足夠支持當前的流量,數據庫讀寫分離,優化數據表,
程序功能規則,禁止外部的盜鏈,控制大文件的下載,使用不一樣主機分流主要流量。
REST 指的是一組架構約束條件和原則。知足這些約束條件和原則的應用程序或設計就是 RESTful。
Web 應用程序最重要的 REST 原則是,客戶端和服務器之間的交互在請求之間是無狀態的。從客戶端到服務器的每一個請求都必須包含理解請求所必需的信息。若是服務器在請求之間的任什麼時候間點重啓,客戶端不會獲得通知。此外,無狀態請求能夠由任何可用服務器回答,這十分適合雲計算之類的環境。客戶端能夠緩存數據以改進性能。
在服務器端,應用程序狀態和功能能夠分爲各類資源。資源是一個有趣的概念實體,它向客戶端公開。資源的例子有:應用程序對象、數據庫記錄、算法等等。每一個資源都使用 URI (Universal Resource Identifier) 獲得一個惟一的地址。全部資源都共享統一的接口,以便在客戶端和服務器之間傳輸狀態。使用的是標準的 HTTP 方法,好比 GET、PUT、POST 和 DELETE。Hypermedia 是應用程序狀態的引擎,資源表示經過超連接互聯。
用框架寫接口,普通POST,GET接口,有時候用RESTFUL接口。寫控制器從模型調用數據,返回XML或者JSON數據就好了。
APP接口主要解決兩個問題,一個SESSION問題,一個是TOKEN問題。客戶端第一次請求,服務端生成SESSION_ID,返回給客戶端。之和的請求中,客戶端把SESSION_ID傳給服務端,服務端用SESSION_ID函數能夠確保屢次請求用的同一個SESSION。TOKEN須要加密和服務端驗證。
Smarty是很老的技術了。經常使用的框架如ThinkPHP,Yii都自帶模板引擎。最經常使用的方法是3個:assign賦值,display顯示頁面,fetch獲取頁面內容而非顯示。
單例模式,簡單工廠模式,策略模式,觀察者模式,註冊(樹)模式,迭代模式, IOC, Mixin。
核心思路:加鎖
<?php
$fp = fopen("lock.txt","w+");
if (flock($fp,LOCK_EX)) {
//得到寫鎖,寫數據
fwrite($fp, "write something");
// 解除鎖定
flock($fp, LOCK_UN);
} else {
echo "file is locking...";
}
fclose($fp);
?>
<?php
function my_scandir($dir){
$files = array();
if(is_dir($dir)){
if ($handle = opendir($dir)) {
while (($flie = readdir($handle))!== false) {
if ($flie!="." && $file!="..") {
if (is_dir($dir."/".$file)) {
$files[$file] = my_scandir($dir."/".$file);
} else {
$files[] = $dir."/".$file;
}
}
}
closedir($handle);
return $files;
}
}
}
?>
過濾JavaScript腳本參考:
<?php
header("content-type:text/html;charset=utf-8");
$script = "如下內容不顯示:<script type='text/javascript'>alert('cc');</script>";
$pattern = '/<script[^>]*?>.*?</script>/si';
echo preg_replace($pattern, "腳本內容", $script);//如下內容不顯示:腳本內容
?>
首先進入php安裝目錄
php -f d:/wamp/www/1.php 其中-f參數指定要執行的php文件
php -r phpinfo(); 其中-r表示直接執行php代碼,無需寫開始結束標記
使用key()能夠得到數組中當前元素的鍵名,使用current()則能夠返回當前元素的值。
使用array_keys()則能夠獲得數組中全部的鍵名。
使用foreach結構foreach($arr as key=>value)能夠經過key和value分別獲取鍵名和值。
從如下幾個方面考慮:
數據庫中庫和表都用utf8編碼
php鏈接mysql,指定數據庫編碼爲utf8 mysql_query(「set names utf8」);
php文件指定頭部編碼爲utf-8header(「content-type:text/html;charset=utf-8」);
網站下全部文件的編碼爲utf8
html文件指定編碼爲utf-8<meta http-equiv="Content-Type"content="text/html;charset=utf-8"/>
mb_sring、iconv、curl、GD、XML、socket、MySQL、PDO等
<IfModulemod_rewrite.c>
RewriteEngineon
RewriteCond%{REQUEST_FILENAME}!-f
RewriteCond%{REQUEST_FILENAME}!-d
RewriteBase/
RewriteRule./index.php[L]
</IfModule>
若是REQUEST_FILENAME文件存在,就直接訪問文件,不進行下面的rewrite規則,
若是REQUEST_FILENAME目錄存在,就直接訪問目錄,不進行下面的rewrite規則,
RewriteRule./index.php[L]的意思是把全部的請求都給index.php處理。
通常是在header、set_cookie以及session_start函數前面有輸出(包括空格)的狀況下,會報該警告信息
對象關係映射(英語:Object Relation Mapping,簡稱ORM,或O/RM,或O/R mapping),是一種程序技術,用於實現面向對象編程語言裏不一樣類型系統的數據之間的轉換。從效果上說,它實際上是建立了一個可在編程語言裏使用的--「虛擬對象數據庫」。
基於角色的訪問控制(Role-Based Access Control)做爲傳統訪問控制(自主訪問,強制訪問)的有前景的代替受到普遍的關注。在RBAC中,權限與角色相關聯,用戶經過成爲適當角色的成員而獲得這些角色的權限。這就極大地簡化了權限的管理。在一個組織中,角色是爲了完成各類工做而創造,用戶則依據它的責任和資格來被指派相應的角色,用戶能夠很容易地從一個角色被指派到另外一個角色。角色可依新的需求和系統的合併而賦予新的權限,而權限也可根據須要而從某角色中回收。角色與角色的關係能夠創建起來以囊括更普遍的客觀狀況。
轉義引號。
addslashes() 是強行加\;
PDO的預處理與參數綁定。
要完成一次CSRF攻擊,受害者必須依次完成兩個步驟:
1.登陸受信任網站A,並在本地生成Cookie。
2.在不登出A的狀況下,訪問危險網站B。
服務端進行CSRF防護
主要是經過僞靜態來實現單一入口,mvc框架都是這樣。將全部請求經過apache僞靜態解析轉給某個指定文件,而後經過php的$_SERVER[]這個全局變量來去的請求的路徑字符串,對其進行解析再分配給指定的類去處理,基本就是這樣。
最簡單的方法是創建一個.htaccess文件。文件內容貼給你
<IfModule !mod_rewrite.c>
ErrorDocument 500 'mod_rewrite must be enabled'
</IfModule>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php
將這個文件放在根目錄下便可。文件做用很明顯:將全部的請求路徑轉給index.php,而後在index.php裏作請求字符串的判斷便可打到路由解析功能。
57. PHP有幾種運行方式?
1、CGI
CGI即通用網關接口(common gatewag interface),它是一段程序,通俗的講CGI就象是一座橋,把網頁和WEB服務器中的執行程序鏈接起來,它把HTML接收的指令傳遞給服務器的執 行程序,再把服務器執行程序的結果返還給HTML頁。CGI 的跨平臺性能極佳,幾乎能夠在任何操做系統上實現。
2、FastCGI
fast-cgi 是cgi的升級版本,FastCGI像是一個常駐(long-live)型的CGI,它能夠一直執行着,只要激活後,不會每次都要花費時間去fork一 次。PHP使用PHP-FPM(FastCGI Process Manager),全稱PHP FastCGI進程管理器進行管理。
3、APACHE2HANDLER
PHP做爲Apache模塊,Apache服務器在系統啓動後,預先生成多個進程副本駐留在內存中,一旦有請求出 現,就當即使用這些空餘的子進程進行處理,這樣就不存在生成子進程形成的延遲了。這些服務器副本在處理完一次HTTP請求以後並不當即退出,而是停留在計算機中等待下次請求。對於客戶瀏覽器的請求反應更快,性能較高。
4、CLI
cli是php的命令行運行模式,你們常常會使用它,可是可能並無注意到(例如:咱們在linux下常用 「php -m」查找PHP安裝了那些擴展就是PHP命令行運行模式;
MySQL數據庫問題:
1. 第一範式
確保數據表中每列(字段)的原子性。
2. 第二範式(依賴性)
在第一範式的基礎上更進一步,目標是確保表中的每列都和主鍵相關。
3. 第三範式(惟一性)
知足第三範式(3NF)必須先知足第二範式(2NF)。簡而言之,第三範式(3NF)要求一個數據庫表中不包含已在其它表中已包含的非主關鍵字信息。
數據庫事務是指做爲單個邏輯工做單元執行的一系列操做,這些操做要麼全作要麼全不作,是一個不可分割的工做單位。
數據庫事務的四大特性(簡稱ACID)是:
(1) 原子性(Atomicity)
事務的原子性指的是,事務中包含的程序做爲數據庫的邏輯工做單位,它所作的對數據修改操做要麼所有執行,要麼徹底不執行。這種特性稱爲原子性。
例如銀行取款事務分爲2個步驟(1)存摺減款(2)提取現金。不可能存摺減款,卻沒有提取現金。2個步驟必須同時完成或者都不完成。
(2)一致性(Consistency)
事務的一致性指的是在一個事務執行以前和執行以後數據庫都必須處於一致性狀態。這種特性稱爲事務的一致性。假如數據庫的狀態知足全部的完整性約束,就說該數據庫是一致的。
例如完整性約束a+b=10,一個事務改變了a,那麼b也應隨之改變。
(3)分離性(亦稱獨立性Isolation)
分離性指併發的事務是相互隔離的。即一個事務內部的操做及正在操做的數據必須封鎖起來,不被其它企圖進行修改的事務看到。假如併發交叉執行的事務沒有任何控制,操縱相同的共享對象的多個併發事務的執行可能引發異常狀況。
(4)持久性(Durability)
持久性意味着當系統或介質發生故障時,確保已提交事務的更新不能丟失。即一旦一個事務提交,DBMS保證它對數據庫中數據的改變應該是永久性的,即對已提交事務的更新能恢復。持久性經過數據庫備份和恢復來保證。
a) 數據庫設計方面,設計結構良好的數據庫,容許部分數據冗餘。 選取最適用的字段屬性,儘量把字段設置爲NOT NULL,這樣在查詢的時候,數據庫不用去比較NULL值。
b) 系統架構設計方面,表散列,把海量數據散列到幾個不一樣的表裏面,集羣,數據庫查詢和寫入分開。 寫高效sql語句,以提升效率。使用鏈接(join)來代替子查詢使用聯合(union)來代替手動建立的臨時表所得皆必須,只從數據庫取必須的數據。必 要的時候用不一樣的存儲引擎,好比Innodb能夠減小死鎖,HEAP能夠提升一個數量級的查詢速度。
a) MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。
b) MyISAM管理非事務表。它提供高速存儲和檢索,以及全文搜索能力。MyISAM在全部MySQL配置裏被支持,它是默認的存儲引擎,除非你配置MySQL默認使用另一個引擎。
c) InnoDB和BDB存儲引擎提供事務安全表。BDB被包含在爲支持它的操做系統發佈的MySQL-Max二進制分發版裏。InnoDB也默認被包括在所 有MySQL 5.1二進制分發版裏,你能夠按照喜愛經過配置MySQL來容許或禁止任一引擎。
d) MEMORY存儲引擎提供「內存中」表。MERGE存儲引擎容許集合將被處理一樣的MyISAM表做爲一個單獨的表。就像MyISAM同樣,MEMORY和MERGE存儲引擎處理非事務表,這兩個引擎也都被默認包含在MySQL中。
e) NDB Cluster是被MySQL Cluster用來實現分割到多臺計算機上的表的存儲引擎。它在MySQL-Max 5.1二進制分發版裏提供。這個存儲引擎當前只被Linux, Solaris, 和Mac OS X 支持。在將來的MySQL分發版中,咱們想要添加其它平臺對這個引擎的支持,包括Windows。
f) 比較經常使用的是MyISAM和InnoDB
a) 經過Show命令,慢查詢日誌,profiling分析查詢肯定瓶頸。
b) 使用 EXPLAIN 關鍵字可讓你知道MySQL是如何處理你的SQL語句的。這能夠幫你分析你的查詢語句或是表結構的性能瓶頸。
c) 當只要一行數據時使用 LIMIT 1
d) 爲搜索字段建索引
e) 在Join表的時候使用至關類型的例,並將其索引
f) 儘量的使用 NOT NULL
g) 水平分表
h) 垂直分表
i) 選擇正確的存儲引擎
j) 避免長鏈接
算法問題
//冒泡排序(數組排序)
function bubble_sort($array){
$count = count($array);
if ($count <= 0) return false;
for($i=0; $i<$count; $i++){
for($j=$i; $j<$count-1; $j++){
if ($array[$i] > $array[$j]){
$tmp = $array[$i];
$array[$i] = $array[$j];
$array[$j] = $tmp;
}
}
}
return $array;
}
//快速排序(數組排序)
function quick_sort($array) {
if (count($array) <= 1) return $array;
$key = $array[0];
$left_arr = array();
$right_arr = array();
for ($i=1; $i<count($array); $i++){
if ($array[$i] <= $key)
$left_arr[] = $array[$i];
else
$right_arr[] = $array[$i];
}
$left_arr = quick_sort($left_arr);
$right_arr = quick_sort($right_arr);
return array_merge($left_arr, array($key), $right_arr);
}
//二分查找(數組裏查找某個元素)
function bin_sch($array, $low, $high, $k){
if ($low <= $high){
$mid = intval(($low+$high)/2);
if ($array[$mid] == $k){
return $mid;
}elseif ($k < $array[$mid]){
return bin_sch($array, $low, $mid-1, $k);
}else{
return bin_sch($array, $mid+1, $high, $k);
}
}
return -1;
}
//順序查找(數組裏查找某個元素)
function seq_sch($array, $n, $k){
$array[$n] = $k;
for($i=0; $i<$n; $i++){
if($array[$i]==$k){
break;
}
}
if ($i<$n){
return $i;
}else{
return -1;
}
}
//二維數組排序, $arr是數據,$keys是排序的健值,$order是排序規則,1是升序,0是降序
function array_sort($arr, $keys, $order=0) {
if (!is_array($arr)) {
return false;
}
$keysvalue = array();
foreach($arr as $key => $val) {
$keysvalue[$key] = $val[$keys];
}
if($order == 0){
asort($keysvalue);
}else {
arsort($keysvalue);
}
reset($keysvalue);
foreach($keysvalue as $key => $vals) {
$keysort[$key] = $key;
}
$new_array = array();
foreach($keysort as $key => $val) {
$new_array[$key] = $arr[$val];
}
return $new_array;
}
PHP周邊問題
SVN , GIT。
具體命令不在一一列舉,需熟記。
a) ls, pwd, cd, cat, vi, service, chmod, chown, tar, su等。
使用crontab執行。
在Linux中你應該先輸入crontab -e,而後就會有個vi編輯界面,再輸入0 3 * * 1 /clearigame2內容到裏面 :wq 保存退出。
在crontab文件中如何輸入須要執行的命令和時間。該文件中每行都包括六個域,其中前五個域是指定命令被執行的時間,最後一個域是要被執行的命令。
每一個域之間使用空格或者製表符分隔。格式以下:
minute hour day-of-month month-of-year day-of-week commands
合法值 00-59 00-23 01-31 01-12 0-6 (0 is sunday) commands(表明要執行的腳本)
除了數字還有幾個個特殊的符號就是"*"、"/"和"-"、",",*表明全部的取值範圍內的數字,"/"表明每的意思,"/5"表示每5個單位,"-"表明從某個數字到某個數字,","分開幾個離散的數字。
天天早上6點
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意單純echo,從屏幕上看不到任何輸出,由於cron把任何輸出都email到root的信箱了。
每兩個小時
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
a) 用的CentOS,Yum安裝。生產環境有專門的運維工程師負責。
a) Kill
b) Pkill
a) Scp
b) ftp
a) Top
b) W
c) Uptime
前端問題
a) jQuery和擴展。
javascript 中的 this 有 五種狀況:
1.全局範圍:
它 會指向 全局對象( 瀏覽器下指window)
2.全局函數調用:
它 仍是指向全局對象。
3.對象函數調用:
調用某個對象的函數, 它指向 當前對象。
4.使用 new 實例化對象時:
它指向 新建立的 對象。
5.調用某些方法時:
如: Function.prototype 上的 call 或者 apply 方法 以及 with等
它指向 傳入的對象。
concat, join, pop, push, shift, unshift, sort
a) 每一個函數都有一個prototype屬性,這個屬性是指向一個對象的引用,這個對象稱爲原型對象,原型對象包含函數實例共享的方法和屬性,也就是說將函數用做構造函數調用(使用new操做符調用)的時候,新建立的對象會從原型對象上繼承屬性和方法。
b) prototype 屬性使您有能力向對象添加屬性和方法。
a) Window.domain;
b) JSONP