前端面試題總結(jié)

http狀態(tài)碼

image.png

get和post區(qū)別

  • get
    字面意思:獲取數(shù)據(jù)
    1僵蛛、url長(zhǎng)度是有限制的
    2歇拆、在瀏覽器中有緩存
    3策治、參數(shù)保留在瀏覽器歷史中
  • post
    字面意思:發(fā)送數(shù)據(jù)
    1泡一、url長(zhǎng)度是沒有限制的
    2厉膀、可實(shí)現(xiàn)上傳文件
    3溶耘、不會(huì)緩存
    4、參數(shù)位置在send中
    5服鹅、請(qǐng)求頭設(shè)置
    6凳兵、get的安全性比較差,數(shù)據(jù)在url中對(duì)所有人都是可見的
    7企软、post的安全比get好庐扫,數(shù)據(jù)不會(huì)顯示在url中
JavaScript 詳說事件機(jī)制之冒泡、捕獲仗哨、傳播形庭、委托

先捕獲再冒泡

  • 事件捕獲--舉栗
    1、當(dāng)鼠標(biāo)點(diǎn)擊或者觸發(fā)dom事件時(shí)厌漂,瀏覽器會(huì)從根節(jié)點(diǎn)開始由外到內(nèi)進(jìn)行事件傳播萨醒,即點(diǎn)擊了子元素,如果父元素通過事件捕獲方式注冊(cè)了對(duì)應(yīng)的事件的話苇倡,會(huì)先觸發(fā)父元素綁定的事件富纸。
  • 事件冒泡--舉栗
    1、與事件捕獲恰恰相反旨椒,事件冒泡順序是由內(nèi)到外進(jìn)行事件傳播晓褪,直到根節(jié)點(diǎn)。

如圖解釋:
1综慎、事件捕獲從document到<body>再到<div>后就停止了涣仿。下一個(gè)階段是“處于目標(biāo)階段txt
2、從目標(biāo)階段到示惊,冒泡階段發(fā)生好港,事件又傳播回文檔

image.png
  • 普通事件onclick
    注冊(cè)多個(gè)事件,會(huì)出現(xiàn)后面會(huì)覆蓋前面的事件
  • 事件委托addEventListener
    自己總結(jié):
    事件委托就是涝涤,多個(gè)子元素需要點(diǎn)擊事件媚狰,這個(gè)時(shí)候可以使用事件委托,父元素設(shè)置點(diǎn)擊事件阔拳,子元素共享父元素的事件
  • 事件委托的優(yōu)點(diǎn):
    提高性能:每一個(gè)函數(shù)都會(huì)占用內(nèi)存空間崭孤,只需添加一個(gè)事件處理程序代理所有事件,所占用的內(nèi)存空間更少类嗤。
    動(dòng)態(tài)監(jiān)聽:使用事件委托可以自動(dòng)綁定動(dòng)態(tài)添加的元素,即新增的節(jié)點(diǎn)不需要主動(dòng)添加也可以一樣具有和其他元素一樣的事件。
對(duì)象的三大特性 封裝辨宠、繼承遗锣、多態(tài)
  • 封裝
    1、將數(shù)據(jù)與功能組合到一起嗤形,即封裝
    2精偿、js對(duì)象就是鍵值對(duì)的集合
    3、鍵值對(duì)如果是函數(shù)赋兵,就稱為方法method
    4笔咽、對(duì)象就是將屬性與方法封裝起來
    5、方法是將過程封裝起來
  • 繼承性
    所謂繼承就是自己沒有霹期,別人有叶组,拿過來為自己所用,并成為自己的東西
    1历造、傳統(tǒng)繼承基于模板
    2甩十、js繼承基于對(duì)象
  • 優(yōu)點(diǎn):
    1、減少耦合:可以獨(dú)立地開發(fā)吭产、測(cè)試侣监、優(yōu)化、使用臣淤、理解和修改
    2橄霉、減輕維護(hù)的負(fù)擔(dān):可以更容易被程序員理解,并且在調(diào)試的時(shí)候可以不影響其他模塊
    3邑蒋、有效地調(diào)節(jié)性能:可以通過剖析確定哪些模塊影響了系統(tǒng)的性能
    4酪劫、提高軟件的可重用性
    5、降低了構(gòu)建大型系統(tǒng)的風(fēng)險(xiǎn):即使整個(gè)系統(tǒng)不可用寺董,但是這些獨(dú)立的模塊卻有可能是可用的
    6、封裝的左右刻剥、減少耦合性
  • 最常用的ES6特性
  1. let 和 const
  2. 解構(gòu)賦值
  3. 函數(shù)
  4. 字符串?dāng)U展
  5. 數(shù)組擴(kuò)展
  6. 新的定義對(duì)象的方式

class, extends(繼承), super, arrow(箭頭) functions(函數(shù)), template(模板引擎) string(字符串
), destructuring(結(jié)構(gòu)賦值), default(導(dǎo)出), rest(重置) arguments(偽數(shù)組)

var遮咖、let、const的區(qū)別

  • var
    變量名污染造虏、之后定義的變量會(huì)覆蓋之前的

  • let:
    1御吞、let 定義變量,變量不可以再次(c重復(fù))定義漓藕,但可以改變其值
    2陶珠、具有塊級(jí)作用域
    3、沒有變量提升享钞,必須先定義再使用
    4揍诽、let聲明的變量不會(huì)壓到window對(duì)象中,是獨(dú)立的

  • const:
    1、使用const關(guān)鍵字定義常量
    2暑脆、 常量是不可變的渠啤,一旦定義,則不能修改其值
    4添吗、 初始化常量時(shí)沥曹,必須給初始值
    5、具有塊級(jí)作用域
    6碟联、沒有變量提升妓美,必須先定義再使用
    7、常量也是獨(dú)立的鲤孵,定義后不會(huì)壓入到window對(duì)象中
    8壶栋、const有一個(gè)很好的應(yīng)用場(chǎng)景就是,引入第三方庫(kù)裤纹。避免重命名而導(dǎo)致的bug

  • 數(shù)組結(jié)構(gòu)賦值

// 情況1委刘,變量和值一一對(duì)應(yīng)
let arr = [5, 9, 10];
let [a, b, c] = arr;
console.log(a, b, c); // 輸出 5 9 10
// 情況2,剩余值
let arr = [5, 9, 10, 8, 3, 2];
let [a, b, ...c] = arr; // ...c 接收剩余的其他值鹰椒,得到的c是一個(gè)數(shù)組
console.log(a, b, c); 
// 結(jié)果:
// a = 5, 
// b = 9, 
// c = [10, 8, 3, 2]
  • 對(duì)象結(jié)構(gòu)賦值
  • 方便解析對(duì)象中的某些屬性的值
// 情況3锡移,變量名和屬性名一致即可獲取到值,不一定要一一對(duì)應(yīng)
let 漆际 = {a: 'hello', b: 'world'};
console.log(b); // world
// 此時(shí)淆珊,沒有定義變量a,所以使用a會(huì)報(bào)錯(cuò)
// 情況4奸汇,剩余值
let obj = {name:'zs', age:20, gender:'男'};
let {name, ...a} = obj;
console.log(name, a);
// 結(jié)果:
// name = zs
// a = {age: 20, gender: "男"};
  • 箭頭函數(shù)
    箭頭函數(shù)的基本定義
// 非箭頭函數(shù)
let fn = function (x) {
    return x * 2;
}
// 箭頭函數(shù)施符,等同于上面的函數(shù)
let fn = (x) => {
    return x * 2;
}

箭頭函數(shù)的特點(diǎn):
1、形參只有一個(gè)擂找,可以省略小括號(hào)
2戳吝、函數(shù)體只有一句話,可以省略大括號(hào)贯涎,并且表示返回函數(shù)體的
3听哭、箭頭函數(shù)內(nèi)部沒有 arguments
4、箭頭函數(shù)內(nèi)部的 this 指向外部作用域中的 this 塘雳,或者可以認(rèn)為箭頭函數(shù)沒有自己的 this
5陆盘、箭頭函數(shù)不能作為構(gòu)造函數(shù)

  • 參數(shù)的默認(rèn)值
// ES5 中給參數(shù)設(shè)置默認(rèn)值的變通做法
function fn(x, y) {
    y = y || 'world';
    console.log(x, y);
}
fn(1)
// ES6 中給函數(shù)設(shè)置默認(rèn)值
function fn(x, y = 'world') {
    console.log(x, y);
}
fn(2)
fn(2,3)
  • rest參數(shù)
    rest參數(shù):剩余參數(shù),以...修飾符最后一個(gè)參數(shù)败明,把多余的參數(shù)都放到一個(gè)數(shù)組中,可以代替arguments的使用隘马。
    注意:rest 參數(shù)只能是最后一個(gè)參數(shù)

代碼舉栗:

// 參數(shù)很多,不確定多少個(gè)妻顶,可以使用剩余參數(shù)
function fn(...values) {
    console.log(values); // [6, 1, 100, 9, 10]
}
// 調(diào)用
console.log(fn(6, 1, 100, 9, 10));

代碼舉栗2:

function fn(a, b, ...values) {
    console.log(a); // 6
    console.log(b); // 1
    console.log(values); // [100, 9, 10]
}
// 調(diào)用
console.log(fn(6, 1, 100, 9, 10));
  • 內(nèi)置對(duì)象的擴(kuò)展
  1. Array 的擴(kuò)展
    擴(kuò)展運(yùn)算符 ...
    數(shù)組實(shí)例的 find() 和 findIndex()
    Array.from():偽數(shù)組轉(zhuǎn)數(shù)組
    includes():查找數(shù)組是否存在某個(gè)值酸员,返回true/false
  2. String 的擴(kuò)展
  3. Number 的擴(kuò)展
  4. Set
// 合并兩個(gè)數(shù)組
let arr1 = [1, 2];
let arr2 = [3, 4];
let arr3 = [...arr1, ...arr2];
console.log(arr3); // [1, 2, 3, 4]

// 把數(shù)組展開作為參數(shù)蜒车,可以替代 apply
// 求數(shù)組的最大值
let arr = [6, 99, 10, 1];
let max = Math.max(...arr); // 等同于 Math.max(6, 99, 10, 1);

2、Array.from()

  • 把偽數(shù)組轉(zhuǎn)換成數(shù)組
  • 偽數(shù)組必須有l(wèi)ength屬性沸呐,沒有l(wèi)ength將得到一個(gè)空數(shù)組
  • 轉(zhuǎn)換后的數(shù)組長(zhǎng)度醇王,是根據(jù)偽數(shù)組的length決定的
let fakeArr = {
  0: 'a',
  1: 'b',
  2: 'c',
  length: 3
};

let arr = Array.from(fakeArr);
console.log(arr); // ['a', 'b', 'c']

// 轉(zhuǎn)數(shù)組的對(duì)象必須有l(wèi)ength值,因?yàn)榈玫降臄?shù)組的成員個(gè)數(shù)是length指定的個(gè)數(shù)
// 上例中崭添,如果length為2寓娩,則得到的數(shù)組為 ['a', 'b']

數(shù)組實(shí)例的 find() 和 findIndex()

  • find和findIndex方法,會(huì)遍歷傳遞進(jìn)來的數(shù)組
  • 回調(diào)函數(shù)有三個(gè)參數(shù)呼渣,分別表示數(shù)組的值棘伴、索引及整個(gè)數(shù)組
  • 回調(diào)函數(shù)中return的是一個(gè)條件,find和findIndex方法的返回值就是滿足這個(gè)條件的第一個(gè)元素或索引
  • find 找到數(shù)組中第一個(gè)滿足條件的成員并返回該成員屁置,如果找不到返回undefined焊夸。
  • findIndex 找到數(shù)組中第一個(gè)滿足條件的成員并返回該成員的索引,如果找不到返回 -1蓝角。

findIndex 的使用和 find 類似阱穗,只不過它查找的不是值,而是下標(biāo)


// 語法結(jié)構(gòu)
let arr = [1, 2, 4, 0, -4, 3, -2, 9];
arr.find(function (item, index, self) {
    console.log(item); // 數(shù)組中的每個(gè)值
    console.log(index); // 數(shù)組中的每個(gè)索引/下標(biāo)
    console.log(self); // 當(dāng)前的數(shù)組
});
// 用法:找數(shù)組中第一個(gè)小于0的數(shù)字
let arr = [1, 2, 4, 0, -4, 3, -2, 9];
let result = arr.find(function (item) {
    return item < 0; //遍歷過程中使鹅,根據(jù)這個(gè)條件去查找
});
console.log(result); // -4
  • 數(shù)組實(shí)例的 includes()

判斷數(shù)組是否包含某個(gè)值揪阶,返回 true / false
參數(shù)1,必須患朱,表示查找的內(nèi)容
參數(shù)2鲁僚,可選,表示開始查找的位置裁厅,0表示開頭的位置

let arr = [1, 4, 3, 9];
console.log(arr.includes(4)); // true
console.log(arr.includes(4, 2)); // false冰沙, 從2的位置開始查,所以沒有找到4
console.log(arr.includes(5)); // false

template模板引擎string模板字符串

模板字符串

  • 模板字符串解決了字符串拼接不便的問題
  • 模板字符串使用反引號(hào) ` 括起來內(nèi)容
  • 模板字符串中的內(nèi)容可以換行
  • 變量在模板字符串中使用 ${name} 來表示执虹,不用加 + 符號(hào)

Number的擴(kuò)展

ES6 將全局方法parseInt()和parseFloat()拓挥,移植到Number對(duì)象上面,行為完全保持不變袋励。

  • Number.parseInt()
  • Number.parseFloat()

Set

ES6 提供了新的數(shù)據(jù)結(jié)構(gòu) Set撞叽。它類似于數(shù)組,但是成員的值都是唯一的插龄,沒有重復(fù)的值。

基本使用:

// 1. 基本使用
let set = new Set();
// 得到一個(gè)空的Set對(duì)象

// 2科展、去重
var arr = [2, 3, 5, 4, 5, 2, 2]
console.log(...new Set(arr))

Set本身是一個(gè)構(gòu)造函數(shù)均牢,用來生成 Set 數(shù)據(jù)結(jié)構(gòu)。

Set的特點(diǎn)就是該對(duì)象里面的成員不會(huì)有重復(fù)才睹。

定義對(duì)象簡(jiǎn)潔的方式

let name = 'zhangsan', age = 20, gender = '女';

ES6 雖好徘跪,但是有兼容性問題甘邀,IE7-IE11 基本不支持 ES6
解決:降級(jí)處理
降級(jí)處理 babel 的使用步驟

  1. 安裝 Node.js
  2. 命令行中安裝 babel
  3. 配置文件 .babelrc
  4. 運(yùn)行
  • import引入模塊

  • default導(dǎo)出模塊

    說說Cookie和Session的區(qū)別?

    1垮庐、Cookie和Session都是會(huì)話技術(shù)松邪,Cookie是運(yùn)行在客戶端,Session是運(yùn)行在服務(wù)器端哨查。

    2逗抑、Cookie有大小限制以及瀏覽器在存cookie的個(gè)數(shù)也有限制,Session是沒有大小限制和服務(wù)器的內(nèi)存大小有關(guān)寒亥。

    3邮府、Cookie有安全隱患,通過攔截或本地文件找得到你的cookie后可以進(jìn)行攻擊溉奕。

    4褂傀、Session是保存在服務(wù)器端上會(huì)存在一段時(shí)間才會(huì)消失,如果session過多會(huì)增加服務(wù)器的壓力加勤。

localStorage和sessionStorage一樣都是用來存儲(chǔ)客戶端臨時(shí)信息的對(duì)象仙辟。

  • localStorage生命周期是永久,除非手動(dòng)刪除
  • sessionStorage 瀏覽器關(guān)閉鳄梅,存儲(chǔ)的數(shù)據(jù)也就被清空了

Vue常用的指令

v-bind==== : 綁定屬性
v-on === @click 綁定一個(gè)事件監(jiān)聽器
v-for實(shí)現(xiàn)表單輸入和應(yīng)用狀態(tài)之間的雙向綁定
v-if v-else v-if-else 實(shí)現(xiàn)表單輸入和應(yīng)用狀態(tài)之間的雙向綁定
v-show 根據(jù)條件展示元素內(nèi)部css屬性為display:none/block
v-model:實(shí)現(xiàn)表單輸入和應(yīng)用狀態(tài)之間的雙向綁定

  • vue插值表達(dá)式
    v-bind 簡(jiǎn)寫 :
    js方式 雙大括號(hào)
    {{}}
    v-text 插入文本

vue父?jìng)髯?br> 子:this.$emit('事件名',數(shù)據(jù))
父: :事件名="在data里定義一個(gè)數(shù)組/對(duì)象"
vue子傳父
父:在組件屬性post="數(shù)據(jù)"
子:props:[post]//接受數(shù)據(jù)--直接使用

  • axios和ajax的區(qū)別
    區(qū)別總結(jié)1

axios是通過promise實(shí)現(xiàn)對(duì)ajax技術(shù)的一種封裝叠国,就像jQuery實(shí)現(xiàn)ajax封裝一樣。

簡(jiǎn)單來說: ajax技術(shù)實(shí)現(xiàn)了網(wǎng)頁的局部數(shù)據(jù)刷新卫枝,axios實(shí)現(xiàn)了對(duì)ajax的封裝煎饼。

區(qū)別總結(jié)2

ajax和axios區(qū)別
Ajax是一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)
ajax = 異步JavaScript和XML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)
Ajax是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁的技術(shù)
Ajax是一種在無需加載整個(gè)網(wǎng)頁的情況下,能夠更新部分網(wǎng)頁的技術(shù)
通過在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交互校赤,ajax可以使網(wǎng)頁實(shí)現(xiàn)異步更新吆玖,可以在不重新加載整個(gè)網(wǎng)頁的情況下,對(duì)網(wǎng)頁的某部分進(jìn)行更新
傳統(tǒng)的網(wǎng)頁(不適用Ajax),如果需要重新更新內(nèi)容马篮,必須重載整個(gè)網(wǎng)頁頁面
axios: 用于瀏覽器和node.js的基于Promise的HTTP客戶端
1 從瀏覽器制作XML HttpRequests
2 讓HTTP從node.js的請(qǐng)求
3 支持Promise API
4 攔截請(qǐng)求和響應(yīng)
5 轉(zhuǎn)換請(qǐng)求和響應(yīng)數(shù)據(jù)
6 取消請(qǐng)求
7 自動(dòng)轉(zhuǎn)換為JSON數(shù)據(jù)
8 客戶端支持防止XSRF

VueX狀態(tài)管理

  • State:
    vuex中的數(shù)據(jù)源沾乘,我們需要保存的數(shù)據(jù)就保存在這里,可以在頁面通過 this.$store.state來獲取我們定義的數(shù)據(jù)浑测;
創(chuàng)建vuex實(shí)例
const store = new vuex.store({
    state: {
        count:1
    }
})

在組件直接使用

舉栗:
<h2>{{this.$store.state.count}}</h2>
`然后在頁面上就可以看到  1`
  • Getters:

Getter相當(dāng)于vue中的computed計(jì)算屬性翅阵,getter 的返回值會(huì)根據(jù)它的依賴被緩存起來,且只有當(dāng)它的依賴值發(fā)生了改變才會(huì)被重新計(jì)算迁央,這里我們可以通過定義vuex的Getter來獲取掷匠,Getters 可以用于監(jiān)聽、state中的值的變化岖圈,返回計(jì)算后的結(jié)果讹语,這里我們修改Hello World.vue文件如下:

  • state:存儲(chǔ)狀態(tài)(變量)

  • getters:對(duì)數(shù)據(jù)獲取之前的再次編譯,可以理解為state的計(jì)算屬性蜂科。我們?cè)诮M件中使用 $sotre.getters.fun()

  • mutations:修改狀態(tài)顽决,并且是同步的短条。在組件中使用$store.commit('',params)。這個(gè)和我們組件中的自定義事件類似才菠。

  • actions:異步操作茸时。在組件中使用是$store.dispath('')

  • modules:store的子模塊,為了開發(fā)大型項(xiàng)目赋访,方便狀態(tài)管理而使用的可都。這里我們就不解釋了,用起來和上面的一樣进每。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末汹粤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子田晚,更是在濱河造成了極大的恐慌嘱兼,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贤徒,死亡現(xiàn)場(chǎng)離奇詭異芹壕,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)接奈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門踢涌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人序宦,你說我怎么就攤上這事睁壁。” “怎么了互捌?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵潘明,是天一觀的道長(zhǎng)蚕键。 經(jīng)常有香客問我拇砰,道長(zhǎng)巍扛,這世上最難降的妖魔是什么辕翰? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮募寨,結(jié)果婚禮上尚猿,老公的妹妹穿的比我還像新娘逼蒙。我一直安慰自己澈蝙,他們只是感情好吓坚,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著灯荧,像睡著了一般礁击。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天客税,我揣著相機(jī)與錄音,去河邊找鬼撕贞。 笑死更耻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的捏膨。 我是一名探鬼主播秧均,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼号涯!你這毒婦竟也來了目胡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤链快,失蹤者是張志新(化名)和其女友劉穎誉己,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體域蜗,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡巨双,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了霉祸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筑累。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖丝蹭,靈堂內(nèi)的尸體忽然破棺而出慢宗,到底是詐尸還是另有隱情,我是刑警寧澤奔穿,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布镜沽,位于F島的核電站,受9級(jí)特大地震影響巫橄,放射性物質(zhì)發(fā)生泄漏淘邻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一湘换、第九天 我趴在偏房一處隱蔽的房頂上張望宾舅。 院中可真熱鬧,春花似錦彩倚、人聲如沸筹我。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蔬蕊。三九已至,卻和暖如春哥谷,著一層夾襖步出監(jiān)牢的瞬間岸夯,已是汗流浹背麻献。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猜扮,地道東北人勉吻。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像旅赢,于是被迫代替她去往敵國(guó)和親齿桃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容