js面試集合

1. JavaScript中如何檢測(cè)一個(gè)變量是一個(gè)String類型着憨?請(qǐng)寫(xiě)出函數(shù)實(shí)現(xiàn)

1. typeof(obj) === "string"
2. typeof obj === "string"
3. obj.constructor === String

2. 請(qǐng)用js去除字符串空格?

  • 使用replace正則匹配的方法
    • 去除所有空格:str = str.replace(/\s*/g,"");
    • 去除兩頭空格:str = str.replace(/^\s|\s$/g,"");
    • 去除 左 空 格:str = str.replace( /^\s*/g, “”);
    • 去除 右 空 格:str = str.replace(/(\s*$)/g, "");
  • 實(shí)例如下:
    var str = " 23 23 ";
    var str2 = str.replace(/\s*/g,"");
    console.log(str2); // 2323
    

3. 獲取URL字符串中的參數(shù)

測(cè)試地址為:http://www.runoob.com/jquery/misc-trim.html?channelid=12333&name=xiaoming&age=23

function showWindowHref(){
    var sHref = window.location.href;
    var args = sHref.split('?');
    if(args[0] == sHref){
        return "";
    }
    var arr = args[1].split('&');
    var obj = {};
    for(var i = 0;i< arr.length;i++){
        var arg = arr[i].split('=');
        obj[arg[0]] = arg[1];
    }
    return obj;
}
var href = showWindowHref(); // obj
console.log(href['name']); // xiaoming

4. 怎樣添加务嫡、移除甲抖、移動(dòng)、復(fù)制心铃、創(chuàng)建和查找節(jié)點(diǎn)

  • 創(chuàng)建新節(jié)點(diǎn)
    createDocumentFragment() //創(chuàng)建一個(gè)DOM片段
    createElement() 創(chuàng)建具體的元素
    createTextNode() //創(chuàng)建一個(gè)文本節(jié)點(diǎn)
  • 添加
    appendChild() //添加
  • 移除
    removeChild() //移除
  • 替換
    replaceChild() //替換
  • 插入
    insertBefore() //插入
  • 查找
    getElementsByTagName() //通過(guò)標(biāo)簽名稱
    getElementsByName() //通過(guò)元素的Name屬性的值
    getElementById() //通過(guò)元素Id准谚,唯一性

5. 談?wù)劺厥諜C(jī)制方式及內(nèi)存管理

  • 回收機(jī)制方式

    1. 定義和用法:垃圾回收機(jī)制(GC:Garbage Collection),執(zhí)行環(huán)境負(fù)責(zé)管理代碼執(zhí)行過(guò)程中使用的內(nèi)存。

    2. 原理:垃圾收集器會(huì)定期(周期性)找出那些不在繼續(xù)使用的變量去扣,然后釋放其內(nèi)存柱衔。但是這個(gè)過(guò)程不是實(shí)時(shí)的,因?yàn)槠溟_(kāi)銷比較大厅篓,所以垃圾回收器會(huì)按照固定的時(shí)間間隔周期性的執(zhí)行秀存。

    3. 實(shí)例如下:

      function fn1() {
          var obj = {name: 'hanzichi', age: 10};
      }
      function fn2() {
          var obj = {name:'hanzichi', age: 10};
      return obj;
      }
      var a = fn1();
      var b = fn2();
      

      fn1中定義的obj為局部變量,而當(dāng)調(diào)用結(jié)束后羽氮,出了fn1的環(huán)境或链,那么該塊內(nèi)存會(huì)被js引擎中的垃圾回收器自動(dòng)釋放;在fn2被調(diào)用的過(guò)程中档押,返回的對(duì)象被全局變量b所指向澳盐,所以該塊內(nèi)存并不會(huì)被釋放祈纯。

    4. 垃圾回收策略:標(biāo)記清除(較為常用)和引用計(jì)數(shù)。

  • 標(biāo)記清除:

    定義和用法:當(dāng)變量進(jìn)入環(huán)境時(shí)叼耙,將變量標(biāo)記"進(jìn)入環(huán)境"腕窥,當(dāng)變量離開(kāi)環(huán)境時(shí),標(biāo)記為:"離開(kāi)環(huán)境"筛婉。某一個(gè)時(shí)刻簇爆,垃圾回收器會(huì)過(guò)濾掉環(huán)境中的變量,以及被環(huán)境變量引用的變量爽撒,剩下的就是被視為準(zhǔn)備回收的變量入蛆。

    到目前為止,IE硕勿、Firefox哨毁、Opera、Chrome源武、Safari的js實(shí)現(xiàn)使用的都是標(biāo)記清除的垃圾回收策略或類似的策略扼褪,只不過(guò)垃圾收集的時(shí)間間隔互不相同。

  • 引用計(jì)數(shù):
    定義和用法:引用計(jì)數(shù)是跟蹤記錄每個(gè)值被引用的次數(shù)粱栖。

    基本原理:就是變量的引用次數(shù)话浇,被引用一次則加1,當(dāng)這個(gè)引用計(jì)數(shù)為0時(shí)闹究,被視為準(zhǔn)備回收的對(duì)象凳枝。

  • 內(nèi)存管理

    1. 什么時(shí)候觸發(fā)垃圾回收?

      垃圾回收器周期性運(yùn)行跋核,如果分配的內(nèi)存非常多岖瑰,那么回收工作也會(huì)很艱巨,確定垃圾回收時(shí)間間隔就變成了一個(gè)值得思考的問(wèn)題砂代。

      IE6的垃圾回收是根據(jù)內(nèi)存分配量運(yùn)行的蹋订,當(dāng)環(huán)境中的變量,對(duì)象刻伊,字符串達(dá)到一定數(shù)量時(shí)觸發(fā)垃圾回收露戒。垃圾回收器一直處于工作狀態(tài),嚴(yán)重影響瀏覽器性能捶箱。

      IE7中智什,垃圾回收器會(huì)根據(jù)內(nèi)存分配量與程序占用內(nèi)存的比例進(jìn)行動(dòng)態(tài)調(diào)整,開(kāi)始回收工作丁屎。

    2. 合理的GC方案:(1)荠锭、遍歷所有可訪問(wèn)的對(duì)象; (2)、回收已不可訪問(wèn)的對(duì)象晨川。

    3. GC缺陷:(1)证九、停止響應(yīng)其他操作删豺;

    4. 優(yōu)化策略:(1)、分代回收(Generation GC);(2)愧怜、增量GC

    5. 開(kāi)發(fā)過(guò)程中遇到的內(nèi)存泄露情況呀页,如何解決的?

  • 內(nèi)存泄漏

    1. 定義和用法:內(nèi)存泄露是指一塊被分配的內(nèi)存既不能使用拥坛,又不能回收蓬蝶,直到瀏覽器進(jìn)程結(jié)束。C#和Java等語(yǔ)言采用了自動(dòng)垃圾回收方法管理內(nèi)存猜惋,幾乎不會(huì)發(fā)生內(nèi)存泄露疾党。我們知道,瀏覽器中也是采用自動(dòng)垃圾回收方法管理內(nèi)存惨奕,但由于瀏覽器垃圾回收方法有bug,會(huì)產(chǎn)生內(nèi)存泄露竭钝。
    2. 內(nèi)存泄露的幾種情況:
      • 當(dāng)頁(yè)面中元素被移除或替換時(shí)梨撞,若元素綁定的事件仍沒(méi)被移除,在IE中不會(huì)作出恰當(dāng)處理香罐,此時(shí)要先手工移除事件卧波,不然會(huì)存在內(nèi)存泄露。

        • 實(shí)例如下:
          <div id="myDiv">
              <input type="button" value="Click me" id="myBtn">
          </div>
          
          var btn = document.getElementById("myBtn");
          btn.onclick = function(){
          document.getElementById("myDiv").innerHTML = "Processing...";
          
        • 解決方法如下:
          <div id="myDiv">
              <input type="button" value="Click me" id="myBtn">
          </div>
          
          var btn = document.getElementById("myBtn");
          btn.onclick = function(){
          btn.onclick = null;
          document.getElementById("myDiv").innerHTML = "Processing...";
          }
          
      • 由于是函數(shù)內(nèi)定義函數(shù)庇茫,并且內(nèi)部函數(shù)--事件回調(diào)的引用外暴了港粱,形成了閉包。閉包可以維持函數(shù)內(nèi)局部變量旦签,使其得不到釋放查坪。

        • 實(shí)例如下:
          function bindEvent(){
          var obj=document.createElement("XXX");
          obj.onclick=function(){
              //Even if it's a empty function
          }
          }
          
        • 解決方法如下:
          function bindEvent(){
          var obj=document.createElement("XXX");
              obj.onclick=function(){
                  //Even if it's a empty function
              }
              obj=null;
          }
          

6. 寫(xiě)出3個(gè)使用this的典型應(yīng)用

  • 在html元素事件屬性中使用,如:

    <input type=”button” onclick=”showInfo(this);” value=”點(diǎn)擊一下”/>
    
  • 構(gòu)造函數(shù)

    function Animal(name, color) {
        this.name = name;
        this.color = color;
    }
    
  • input點(diǎn)擊宁炫,獲取值

    <input type="button" id="text" value="點(diǎn)擊一下" />
    
    var btn = document.getElementById("text");
    btn.onclick = function() {
    alert(this.value);    //此處的this是按鈕元素
    }
    
  • apply()/call()求數(shù)組最值

    var numbers = [5, 458 , 120 , -215 ]; 
    var maxInNumbers = Math.max.apply(this, numbers);  
    console.log(maxInNumbers);  // 458
    var maxInNumbers = Math.max.call(this,5, 458 , 120 , -215); 
    console.log(maxInNumbers);  // 458
    

7. 比較typeof與instanceof偿曙?

  • 相同點(diǎn):JavaScript 中 typeof 和 instanceof 常用來(lái)判斷一個(gè)變量是否為空,或者是什么類型的羔巢。

  • typeof的定義和用法:返回值是一個(gè)字符串望忆,用來(lái)說(shuō)明變量的數(shù)據(jù)類型。

  • 細(xì)節(jié):

    1. typeof 一般只能返回如下幾個(gè)結(jié)果:number,boolean,string,function,object,undefined竿秆。

    2. typeof 來(lái)獲取一個(gè)變量是否存在启摄,如 if(typeof a!="undefined"){alert("ok")},而不要去使用 if(a) 因?yàn)槿绻?a 不存在(未聲明)則會(huì)出錯(cuò)幽钢。

    3. 對(duì)于 Array,Null 等特殊對(duì)象使用 typeof 一律返回 object歉备,這正是 typeof 的局限性。

  • Instanceof定義和用法:instanceof 用于判斷一個(gè)變量是否屬于某個(gè)對(duì)象的實(shí)例匪燕。

  • 實(shí)例演示:

    a instanceof b?alert("true"):alert("false"); //a是b的實(shí)例威创?真:假
    var a = new Array(); 
    alert(a instanceof Array);  // true
    alert(a instanceof Object)  // true
    

如上落午,會(huì)返回 true,同時(shí) alert(a instanceof Object) 也會(huì)返回 true;這是因?yàn)?Array 是 object 的子類肚豺。
js function test(){}; var a = new test(); alert(a instanceof test) // true

  • 細(xì)節(jié):

    如下溃斋,得到的結(jié)果為‘N’,這里的 instanceof 測(cè)試的 object 是指 js 語(yǔ)法中的 object,不是指 dom 模型對(duì)象吸申。

    if (window instanceof Object){ alert('Y')} else {  alert('N');}  // 'N'
    

8.如何理解閉包梗劫?

  • 定義和用法:當(dāng)一個(gè)函數(shù)的返回值是另外一個(gè)函數(shù),而返回的那個(gè)函數(shù)如果調(diào)用了其父函數(shù)內(nèi)部的其它變量截碴,如果返回的這個(gè)函數(shù)在外部被執(zhí)行梳侨,就產(chǎn)生了閉包。

  • 表現(xiàn)形式:使函數(shù)外部能夠調(diào)用函數(shù)內(nèi)部定義的變量日丹。

  • 實(shí)例如下:

    根據(jù)作用域鏈的規(guī)則走哺,底層作用域沒(méi)有聲明的變量,會(huì)向上一級(jí)找哲虾,找到就返回丙躏,沒(méi)找到就一直找,直到window的變量束凑,沒(méi)有就返回undefined晒旅。這里明顯count 是函數(shù)內(nèi)部的flag2 的那個(gè)count 。

    var count=10;   //全局作用域 標(biāo)記為flag1
    function add(){
        var count=0;    //函數(shù)全局作用域 標(biāo)記為flag2
        return function(){
            count+=1;   //函數(shù)的內(nèi)部作用域
            alert(count);
        }
    }
    var s = add()
    s();//輸出1
    s();//輸出2
    
  • 變量的作用域

    要理解閉包汪诉,首先必須理解Javascript特殊的變量作用域废恋。

    變量的作用域分類:全局變量和局部變量。

  • 特點(diǎn):

    1. 函數(shù)內(nèi)部可以讀取函數(shù)外部的全局變量扒寄;在函數(shù)外部無(wú)法讀取函數(shù)內(nèi)的局部變量鱼鼓。

    2. 函數(shù)內(nèi)部聲明變量的時(shí)候,一定要使用var命令该编。如果不用的話蚓哩,你實(shí)際上聲明了一個(gè)全局變量!

  • 使用閉包的注意點(diǎn)

    1. 濫用閉包上渴,會(huì)造成內(nèi)存泄漏:由于閉包會(huì)使得函數(shù)中的變量都被保存在內(nèi)存中岸梨,內(nèi)存消耗很大,所以不能濫用閉包稠氮,否則會(huì)造成網(wǎng)頁(yè)的性能問(wèn)題曹阔,在IE中可能導(dǎo)致內(nèi)存泄露。解決方法是隔披,在退出函數(shù)之前赃份,將不使用的局部變量全部刪除。

    2. 會(huì)改變父函數(shù)內(nèi)部變量的值。所以抓韩,如果你把父函數(shù)當(dāng)作對(duì)象(object)使用纠永,把閉包當(dāng)作它的公用方法(Public Method),把內(nèi)部變量當(dāng)作它的私有屬性(private value)谒拴,這時(shí)一定要小心尝江,不要隨便改變父函數(shù)內(nèi)部變量的值。

9. 什么是跨域英上?跨域請(qǐng)求資源的方法有哪些炭序?

  • 什么是跨域?

    由于瀏覽器同源策略苍日,凡是發(fā)送請(qǐng)求url的協(xié)議惭聂、域名、端口三者之間任意一與當(dāng)前頁(yè)面地址不同即為跨域相恃。存在跨域的情況:

    1. 網(wǎng)絡(luò)協(xié)議不同辜纲,如http協(xié)議訪問(wèn)https協(xié)議。

    2. 端口不同拦耐,如80端口訪問(wèn)8080端口耕腾。

    3. 域名不同,如qianduanblog.com訪問(wèn)baidu.com揩魂。

    4. 子域名不同,如abc.qianduanblog.com訪問(wèn)def.qianduanblog.com炮温。

    5. 域名和域名對(duì)應(yīng)ip,如www.a.com訪問(wèn)20.205.28.90.

  • 跨域請(qǐng)求資源的方法:

    1. porxy代理

      • 定義和用法:proxy代理用于將請(qǐng)求發(fā)送給后臺(tái)服務(wù)器火脉,通過(guò)服務(wù)器來(lái)發(fā)送請(qǐng)求,然后將請(qǐng)求的結(jié)果傳遞給前端柒啤。

      • 實(shí)現(xiàn)方法:通過(guò)nginx代理倦挂;

      • 注意點(diǎn):1、如果你代理的是https協(xié)議的請(qǐng)求担巩,那么你的proxy首先需要信任該證書(shū)(尤其是自定義證書(shū))或者忽略證書(shū)檢查方援,否則你的請(qǐng)求無(wú)法成功。

    2. CORS 【Cross-Origin Resource Sharing】

      • 定義和用法:是現(xiàn)代瀏覽器支持跨域資源請(qǐng)求的一種最常用的方式涛癌。

      • 使用方法:一般需要后端人員在處理請(qǐng)求數(shù)據(jù)的時(shí)候犯戏,添加允許跨域的相關(guān)操作。如下:

        res.writeHead(200, {
            "Content-Type": "text/html; charset=UTF-8",
            "Access-Control-Allow-Origin":'http://localhost',
            'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
            'Access-Control-Allow-Headers': 'X-Requested-With, Content-Type'
        });
        
    3. jsonp

      • 定義和用法:通過(guò)動(dòng)態(tài)插入一個(gè)script標(biāo)簽拳话。瀏覽器對(duì)script的資源引用沒(méi)有同源限制先匪,同時(shí)資源加載到頁(yè)面后會(huì)立即執(zhí)行(沒(méi)有阻塞的情況下)。

      • 特點(diǎn):通過(guò)情況下弃衍,通過(guò)動(dòng)態(tài)創(chuàng)建script來(lái)讀取他域的動(dòng)態(tài)資源呀非,獲取的數(shù)據(jù)一般為json格式。

      • 實(shí)例如下:

        function testjsonp(data) {
        console.log(data.name); // 獲取返回的結(jié)果
        }
        
        var _script = document.createElement('script');
        _script.type = "text/javascript";
        _script.src = "http://localhost:8888/jsonp?callback=testjsonp";
        document.head.appendChild(_script);
        
      • 缺點(diǎn):

        1. 這種方式無(wú)法發(fā)送post請(qǐng)求(這里)
        2. 另外要確定jsonp的請(qǐng)求是否失敗并不容易,大多數(shù)框架的實(shí)現(xiàn)都是結(jié)合超時(shí)時(shí)間來(lái)判定岸裙。

10. javascript面向?qū)ο笾欣^承實(shí)現(xiàn)猖败?

  • 面向?qū)ο蟮幕咎卣饔校悍忾]、繼承降允、多態(tài)恩闻。

  • 在JavaScript中實(shí)現(xiàn)繼承的方法:

    1. 原型鏈(prototype chaining)

    2. call()/apply()

    3. 混合方式(prototype和call()/apply()結(jié)合)

    4. 對(duì)象冒充

  • 繼承的方法如下:

    1. prototype原型鏈方式:
      function teacher(name){
          this.name = name;
      }
      teacher.prototype.sayName = function(){
          console.log("name is "+this.name);
      }
      var teacher1 = new teacher("xiaoming");
      teacher1.sayName();
      
      function student(name){
          this.name = name;
      }
      student.prototype = new teacher()
      var student1 = new student("xiaolan");
      student1.sayName();
      //  name is xiaoming
      //  name is xiaolan
      
    2. call()/apply()方法
      function teacher(name,age){
      this.name = name;
      this.age = age;
      this.sayhi = function(){
      alert('name:'+name+", age:"+age);
      }
      }
      function student(){
      var args = arguments;
      teacher.call(this,args[0],args[1]);
      // teacher.apply(this,arguments);
      }
      var teacher1 = new teacher('xiaoming',23);
      teacher1.sayhi();
      
      var student1 = new student('xiaolan',12);
      student1.sayhi();
      
      // alert: name:xiaoming, age:23
      // alert: name:xiaolan, age:12
      
    3. 混合方法【prototype,call/apply】
      function teacher(name,age){
      this.name = name;
      this.age = age;
      }
      teacher.prototype.sayName = function(){
      console.log('name:'+this.name);
      }
      teacher.prototype.sayAge = function(){
      console.log('age:'+this.age);
      }
      
      function student(){
      var args = arguments;
      teacher.call(this,args[0],args[1]);
      }
      student.prototype = new teacher();
      
      var student1 = new student('xiaolin',23);
      student1.sayName();
      student1.sayAge();
      // name:xiaolin
      // age:23
      
    4. 對(duì)象冒充
      function Person(name,age){
      this.name = name;
      this.age = age;
      this.show = function(){
      console.log(this.name+", "+this.age);
      }
      }
      
      function Student(name,age){
      this.student = Person; //將Person類的構(gòu)造函數(shù)賦值給this.student
      this.student(name,age); //js中實(shí)際上是通過(guò)對(duì)象冒充來(lái)實(shí)現(xiàn)繼承的
      delete this.student; //移除對(duì)Person的引用
      }
      
      var s = new Student("小明",17);
      s.show();
      
      var p = new Person("小花",18);
      p.show();
      // 小明, 17
      // 小花, 18
      

11. 判斷一個(gè)字符串中出現(xiàn)次數(shù)最多的字符,統(tǒng)計(jì)這個(gè)次數(shù)

var str = 'asdfssaaasasasasaa';
var json = {};
for (var i = 0; i < str.length; i++) {
    if(!json[str.charAt(i)]){
       json[str.charAt(i)] = 1;
    }else{
       json[str.charAt(i)]++;
    }
};
var iMax = 0;
var iIndex = '';
for(var i in json){
    if(json[i]>iMax){
         iMax = json[i];
         iIndex = i;
    }
}        
console.log('出現(xiàn)次數(shù)最多的是:'+iIndex+'出現(xiàn)'+iMax+'次');

12. 編寫(xiě)一個(gè)方法 去掉一個(gè)數(shù)組的重復(fù)元素

  • 方法一:
    var arr = [0,2,3,4,4,0,2];
    var obj = {};
    var tmp = [];
    for(var i = 0 ;i< arr.length;i++){
    if( !obj[arr[i]] ){
        obj[arr[i]] = 1;
        tmp.push(arr[i]);
    }
    }
    console.log(tmp);
    //結(jié)果如下: [0, 2, 3, 4]
    
  • 方法二:
    var arr = [2,3,4,4,5,2,3,6],
    arr2 = [];
    for(var i = 0;i< arr.length;i++){
        if(arr2.indexOf(arr[i]) < 0){
            arr2.push(arr[i]);
        }
    }
    console.log(arr2);
    結(jié)果為:[2, 3, 4, 5, 6]
    
  • 方法三:
    var arr = [2,3,4,4,5,2,3,6];
    var arr2 = arr.filter(function(element,index,self){
    return self.indexOf(element) === index;
    });
    console.log(arr2);
    //結(jié)果為:[2, 3, 4, 5, 6]
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拟糕,一起剝皮案震驚了整個(gè)濱河市判呕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌送滞,老刑警劉巖侠草,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異犁嗅,居然都是意外死亡边涕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門褂微,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)功蜓,“玉大人,你說(shuō)我怎么就攤上這事宠蚂∈胶常” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵求厕,是天一觀的道長(zhǎng)著隆。 經(jīng)常有香客問(wèn)我,道長(zhǎng)呀癣,這世上最難降的妖魔是什么美浦? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮项栏,結(jié)果婚禮上浦辨,老公的妹妹穿的比我還像新娘。我一直安慰自己沼沈,他們只是感情好流酬,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著列另,像睡著了一般康吵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上访递,一...
    開(kāi)封第一講書(shū)人閱讀 49,837評(píng)論 1 290
  • 那天晦嵌,我揣著相機(jī)與錄音,去河邊找鬼。 笑死惭载,一個(gè)胖子當(dāng)著我的面吹牛旱函,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播描滔,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼棒妨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了含长?” 一聲冷哼從身側(cè)響起券腔,我...
    開(kāi)封第一講書(shū)人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拘泞,沒(méi)想到半個(gè)月后纷纫,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡陪腌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年辱魁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诗鸭。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡染簇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出强岸,到底是詐尸還是另有隱情锻弓,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布蝌箍,位于F島的核電站青灼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏十绑。R本人自食惡果不足惜聚至,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一酷勺、第九天 我趴在偏房一處隱蔽的房頂上張望本橙。 院中可真熱鬧,春花似錦脆诉、人聲如沸甚亭。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)亏狰。三九已至,卻和暖如春偶摔,著一層夾襖步出監(jiān)牢的瞬間暇唾,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留策州,地道東北人瘸味。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像够挂,于是被迫代替她去往敵國(guó)和親旁仿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

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