規劃方面

獲取節點的幾種方式

通過ID獲取(getElementById)

通過name屬性(getElementsByName)

通過標籤名(getElementsByTagName)

通過類名(getElementsByClassName)

獲取html的方法(document.documentElement)

獲取body的方法(document.body)

通過選擇器獲取一個元素(querySelector)

通過選擇器獲取一組元素(querySelectorAll)

事務的特性

一致性、原子性、隔離性、永續性

Ajax五個狀態

 0 - (未初始化)還沒有呼叫send()方法

 1 - (載入)已呼叫send()方法,正在傳送請求

 2 - (載入完成)send()方法執行完成,已經接收到全部響應內容

 3 - (互動)正在解析響應內容

 4 - (完成)響應內容解析完成,可以在客戶端呼叫了

單例

Class single{

    Private static $instance =null;

    Private function  __construct(){}

    Private function  __clone(){}

    Public function getinstance(){

        If(!isset(self::instance)){

            Self::$instance=new self();

        }

        Return $instance;

    }

}

優化資料庫方式:

選取合適的欄位屬性、

使用連線代替子查詢、事務、使用聯合代替手動建立的臨時表、鎖定表、使用外來鍵、使用索引、優化查詢語句

儘可能的使用not null

使用ENUM列舉,而不是varchar(性別,民族,部門等)

如何查下看最後插入的記錄:

1、如果有自增欄位id檢視最大id

2、mysql_insert_id()

  3、Mysql_last_insert();

  4、Information_schema

Print\print_r\echo\var_dump區別:

Print 是列印字串

Print_r  則是列印複合型別 如陣列 物件

Var_dump

Echo 沒有返回值

Include\require區別

Require:

一個檔案存在錯誤時,執行就會中斷。並返回一個致命錯誤

include

一個檔案存在錯誤,程式不會中斷執行。會彈出一個警告

Echo 其他進位制數值時,自動轉換為十進位制

頁面跳轉:header(location:’www.baidu.com’)

檢視一個檔案下的所有檔案

Array Glob(pattern,flag)//glob(‘*.*’)匹配所有檔案

1、Foreach(glob(‘*.*’) as $filename){

Echo “filename is ”.$filename;

}

2、if($handle=opendir(‘./’)){

Echo “files:\n”;

While(($file=readdir($handle))!==false){

Echo “$file \n”;

}

Closedir($handle)

}

3、$d=dir(“./”);

Echo ”handle:”.$d->handle.”<br>”;

Echo “path:”.$d->path.”<br>”;

While(($file=$d->read())!==false){

Echo “filename:”.$file.”<br>”;

}

資料庫儲存,金額儲存型別?

decimal

如何通過月份篩選?

datediff(date1,date2)返回日期之間差

Date_format(date,format)

Having group by

SELECT ProductID, Total = SUM(LineTotal)

FROM Sales.SalesOrderDetail

GROUP BY ProductID

HAVING SUM(LineTotal) > $2000000.00 ;

Nginx?

高併發

低記憶體消耗

高擴充套件性,跨平臺

高可靠

更快,響應更快

熱部署

最自由的BSD許可協議

索引型別:

普通索引、唯一索引、主鍵索引、組合索引、全文索引

Mysql資料型別?

TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT

FLOAT、DOUBLE

DATE、TIME、DATETIME、TIMESTAMP

CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、ENUM列舉、SET集合

協程?

程序,如何通訊?

管道(無名管道):速度慢,容量有限,只有父子程序能通訊

FIFO(命名管道):任何程序之間都能通訊,但速度慢

訊息佇列:容量受到系統限制,且第一次讀的時候,要考慮上次沒有讀完的資料

訊號量:不能傳遞複雜訊息,只能用來同步

共享記憶體:能夠很容易控制容量,速度快,但要保持同步,比如一個程序在寫的時候,另一個程序要注意讀寫的問題,相當於執行緒中的執行緒安全,當然,共享記憶體區同樣可以用作執行緒間通訊,不過沒這個必要,執行緒間本來就已經共享了同一程序內的一塊記憶體

程序,執行緒區別?

程序是資源分配的基本單位,他是程式執行時的一個例項。程式執行時系統就會建立一個程序,併為它分配資源,然後把該程序放入程序就緒佇列,程序排程器選中它的時候就會為它分配CPU時間,程式開始真正執行。

執行緒是程式執行時的最小單位,他是程序的一個執行流,是CPU排程和分派的進本單位,一個程序可以由很多執行緒組成,執行緒間共享程序的所有資源,每個執行緒都有自己的堆疊和區域性變數。執行緒由CPU獨立排程執行,在多CPU環境下就允許多個執行緒同時執行,同時多執行緒也可以實現併發操作,每個請求分配一個執行緒來處理。

快排?

是對氣泡排序的一種改進,以第一個值為參考值,通過“一次”排序將比其小的放到左面,打的放到右面,然後不斷迭代,直到排序完成。

 “一次排序”,兩個指標分別指向1,和,n-1,當發生一次事件,交換一下資料,事件在n/2的右面有比參考值小的數,或在左側有比參考值大的數

堆排?

完全二叉樹

事務原理?

Js中的protype?

prototype 屬性使您有能力向物件新增屬性和方法。

<script type="text/javascript">
function employee(name,job,born)
{
    this.name=name;
    this.job=job;
    this.born=born;
}
var bill=new employee("Bill Gates","Engineer",1985);
employee.prototype.salary=null;
bill.salary=20000;
document.write(bill.salary);
</script>

儲存引擎,及區別?

MyISAM (misemu發音)是非事務的儲存引擎;適合用於頻繁查詢的應用;表鎖,不會出現死鎖;適合小資料,小併發

innodb是支援事務的儲存引擎;合於插入和更新操作比較多的應用;設計合理的話是行鎖(最大區別就在鎖的級別上);適合大資料,大併發。

MVVM設計模式?

MVC:模型-檢視-控制器model-view-controller

MVP:模型-檢視-表現層model-view-presenter

MVVM:模型-檢視-檢視模型model-view-viewmodel

WPFSilverlight?

ftpssh協議?

ftp檔案傳輸協議

ssh:secure shell安全外殼協議

http協議幾種狀態?

200請求成功

301永久重定向

403客戶端錯誤,沒有許可權

404 頁面不存在

500伺服器內部錯誤

遠端登入?

SecureCRTPortable,軟體,使用的是ssh協議,埠號22,主機名,伺服器IP

Cookiesession區別?

Cookie客戶端

Session伺服器端

幾個頁面之間傳值方式?

Cookie

Web worker

localStorage

sessionStorage

php當中魔術方法

__construct() 例項化類時自動呼叫。

__destruct() 類物件使用結束時自動呼叫。

__set() 在給未定義的屬性賦值的時候呼叫。

__get() 呼叫未定義的屬性時候呼叫。

__isset() 使用isset()或empty()函式時候會呼叫。

__unset() 使用unset()時候會呼叫。

__sleep() 使用serialize序列化時候呼叫。

__wakeup() 使用unserialize反序列化的時候呼叫。

__call() 呼叫一個不存在的方法的時候呼叫。

__callStatic()呼叫一個不存在的靜態方法是呼叫。

__toString() 把物件轉換成字串的時候會呼叫。比如 echo。

__invoke() 當嘗試把物件當方法呼叫時呼叫。

__set_state() 當使用var_export()函式時候呼叫。接受一個數組引數。

__clone() 當使用clone複製一個物件時候呼叫。、

Sql注入:

SQL注入攻擊是黑客對資料庫進行攻擊的常用手段之一。一部分程式設計師在編寫程式碼的時候,沒有對使用者輸入資料的合法性進行判斷,注入者可以在表單中輸入一段資料庫查詢程式碼並提交,程式將提交的資訊拼湊生成一個完整sql語句,伺服器被欺騙而執行該條惡意的SQL命令。注入者根據程式返回的結果,成功獲取一些敏感資料,甚至控制整個伺服器,這就是SQL注入。

Check 約束

CREATE TABLE Persons
(
    Id_P int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    CHECK (Id_P>0)
) 

怎麼使得元素大小包含padding和border?

box-sizing: border-box;

Display:hidden與visibility:hidden的區別?

Mysql中表連線的幾種方式及區別?

配置nginx的server?

什麼場景使用連結串列,什麼場景使用陣列?

  陣列應用場景:資料比較少;經常做的運算是按序號訪問資料元素;陣列更容易實現,任何高階語言都支援;構建的線性表較穩定

  連結串列應用場景:對線性表的長度或者規模難以估計;頻繁做插入刪除操作;構建動態性比較強的線性表

Php怎麼處理XML檔案,和json檔案?

簡述你常用的一些linux指令?

ls
cd
cat 
more less tail head wc
mkdir
touch
chmod
cp
rm
ps
grep
find
pwd
mv
df 檢視目錄使用情況
rmdir 刪除空目錄
basename 取檔名
whereis file 找出檔案file的位置
diff file1 file2 檔案不同處

防止sql注入的方法?

開啟錯誤除錯使用什麼函式?

<?php

// Turn off all error reporting
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

// Report all PHP errors (see changelog)
error_reporting(E_ALL);

// Report all PHP errors
error_reporting(-1);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

mysql常用操作?

create databases 資料庫名稱 ;
show databases ;
show create databases 資料庫名稱 ;
alter database 資料庫名稱 default character set 編碼方式 collate 編碼方式_bin ;
drop database 資料庫名稱 ;
create table 表名 
{ 
 
    欄位名 1,資料型別[完整性約束條件], 
 
    欄位名 2,資料型別[完整性約束條件], 
 
    ... 
 
    欄位名 n,資料型別[完整性約束條件], 
 
}

show create table 表名 ; 
describe 表名 ; 
 
簡寫為 
 
desc 表名 ;

alter table 舊錶名 rename [to] 新表名 ;
alter table 表名 modify 欄位名 資料型別 ;
alter table grade modify id int(20) ;
alter table 表名 drop 欄位名 ;
alter table 表名 modify 欄位名1 資料型別 first|after 欄位名2
drop table 表名 ;
insert into 表名(欄位名1,欄位名2, ...) value(值1,值2, ...)
insert into 表名 set 欄位名1 = 值1 [,欄位名2 = 值2, ...]
update 表名  set 欄位名1 = 值1 [,欄位名2 = 值2, ...] [where 條件表示式]
delete from 表名 [where 條件表示式]
truncate [table] 表名
查詢語句....

smarty遍歷陣列?

//{literal}{/literal}原樣輸出
/*
{foreach $stu as $k=>$v}
{$k}:{$v}
{foreachelse}
{/foreach}

{if 條件}
{elseif 條件}
{else}
{/if}

{section name='自定義變數名' loop='被遍歷的陣列'}
{/section}
{section name=s loop=$stu}
{$stu[s]}
{/section}

{for $i=1 to 10 step=2}
{/for}

{while $i<10}
{/while}
*/

smarty常用函式?

$smarty = new Smarty();
$smarty->assign('key','value');
$smarty->display('a.html');
$smarty->cache_lifetime=5;//快取的生存時間
$smarty->caching=1;//開啟快取
$smarty->force_cache=TRUE;//強制更新快取
$_SESSION['a']='1';//{$smarty.session.a}
setcookie('a','1');//{$smarty.cookies.a}
define('a','1');//{$smarty.const.a}
//{$smarty.server.REMOTE_ADDR}
//{$smarty.now}
//{$smarty.version}版本號

//{$smarty.ldelim}左界定符

//{$smarty.rdelim}

python與php相比的優勢?

計算能力和大資料處理多執行緒等有很明顯的優勢,
有很多擴充套件庫

git常用操作?

Git add filename,將檔案新增到倉庫實際上是新增到暫存區,沒有提示證明新增成功
Git commit -m “提交說明”命令
git status 檢視倉庫當前狀態
git diff filename 檢視檔案修改了什麼內容
Git log 檢視所有提交日誌
 git reset —hard HEAD^
Git reflog 檢視命令歷史
git checkout — filename 在沒有提交到暫存區(未執行add)撤銷工作區的修改
git reset HEAD filename ,當執行了add,使用該命令撤銷暫存區的修改,重新放回到工作區
git rm filename 刪除檔案
ssh-keygen -t rsa -C “[email protected]” 命令建立SSH KEY
git remote add origin [email protected]:michaelliao/learngit.git 關聯遠端庫
git push origin master推送最新修改
git clone [email protected]:賬戶名/遠端庫名.git 進行克隆
git checkout -b dev 建立並切換到dev分支
Git merge dev命令將dev分支合併到當前分支上
git branch -d dev 刪除分支
Git pull 獲取最新提交
git branch 命令不僅僅能建立和刪除分支,如果不加任何引數,它會給出當前所有分支的清單:

今日頭條協議:https

介紹

自我介紹?

工作經驗?

為什麼離開?

python優勢?

平時有什麼愛好?

有沒有閱讀習慣?

.