javascript 基礎(chǔ)

1. eval是做什么的况脆?

它的功能是把對應(yīng)的字符串解析成JS代碼并運行徽鼎;
應(yīng)該避免使用eval肤频,不安全净嘀,非常耗性能(2次,一次解析成js語句,一次執(zhí)行)辟躏。
由JSON字符串轉(zhuǎn)換為JSON對象的時候可以用eval,var obj =eval('('+ str +')');

2. 什么是window對象? 什么是document對象?

  • window對象是指瀏覽器打開的窗口拨黔。
  • document對象是Documentd對象(HTML 文檔對象)的一個只讀引用贺待,window對象的一個屬性。

3. null零截,undefined 的區(qū)別麸塞?

  • null 表示一個對象是“沒有值”的值,也就是值為“空”涧衙;
  • undefined 表示一個變量聲明了沒有初始化(賦值)哪工;
    undefined不是一個有效的JSON奥此,而null是;
    undefined的類型(typeof)是undefined雁比;
    null的類型(typeof)是object稚虎;

4. ["1", "2", "3"].map(parseInt) 答案是多少?

parseInt() 函數(shù)能解析一個字符串偎捎,并返回一個整數(shù)蠢终,需要兩個參數(shù) (val, radix),
其中 radix 表示要解析的數(shù)字的基數(shù)茴她⊙胺鳎【該值介于 2 ~ 36 之間,并且字符串中的數(shù)字不能大于radix才能正確返回數(shù)字結(jié)果值】;
但此處 map 傳了 3 個 (element, index, array),我們重寫parseInt函數(shù)測試一下是否符合上面的規(guī)則丈牢。

function parseInt(str, radix) {
return str+'-'+radix;
};
var a=["1", "2", "3"];
a.map(parseInt); // ["1-0", "2-1", "3-2"] 不能大于radix

因為二進制里面祭钉,沒有數(shù)字3,導(dǎo)致出現(xiàn)超范圍的radix賦值和不合法的進制解析,才會返回NaN
所以["1", "2", "3"].map(parseInt) 答案也就是:[1, NaN, NaN]

5. 事件是己沛?IE與火狐的事件機制有什么區(qū)別慌核? 如何阻止冒泡?

  1. 我們在網(wǎng)頁中的某個操作(有的操作對應(yīng)多個事件)泛粹。例如:當(dāng)我們點擊一個按鈕就會產(chǎn)生一個事件。是可以被 JavaScript 偵測到的行為肮疗。
  2. 事件處理機制:I.E.是事件冒泡晶姊、Firefox同時支持兩種事件模型,也就是:捕獲型事件和冒泡型事件伪货;
  3. ev.stopPropagation();(舊ie的方法 ev.cancelBubble = true;)

6. javascript 代碼中的"use strict";是什么意思 ? 使用它區(qū)別是什么们衙?

use strict是一種ECMAscript 5 添加的(嚴格)運行模式,這種模式使得 Javascript 在更嚴格的條件下運行,

使JS編碼更加規(guī)范化的模式,消除Javascript語法的一些不合理、不嚴謹之處碱呼,減少一些怪異行為蒙挑。
默認支持的糟糕特性都會被禁用,比如不能用with愚臀,也不能在意外的情況下給全局變量賦值;
全局變量的顯示聲明,函數(shù)必須聲明在頂層忆蚀,不允許在非函數(shù)代碼塊內(nèi)聲明函數(shù),arguments.callee也不允許使用;
消除代碼運行的一些不安全之處姑裂,保證代碼運行的安全,限制函數(shù)中的arguments修改馋袜,嚴格模式下的eval函數(shù)的行為和非嚴格模式的也不相同;

提高編譯器效率,增加運行速度舶斧;
為未來新版本的Javascript標(biāo)準(zhǔn)化做鋪墊欣鳖。

7. Javascript中,有一個函數(shù)茴厉,執(zhí)行時對象查找時泽台,永遠不會去查找原型什荣,這個函數(shù)是?

hasOwnProperty

javaScript中hasOwnProperty函數(shù)方法是返回一個布爾值怀酷,指出一個對象是否具有指定名稱的屬性稻爬。此方法無法檢查該對象的原型鏈中是否具有該屬性;該屬性必須是對象本身的一個成員胰坟。
使用方法:
object.hasOwnProperty(proName)
其中參數(shù)object是必選項因篇。一個對象的實例。
proName是必選項笔横。一個屬性名稱的字符串值竞滓。

如果 object 具有指定名稱的屬性,那么JavaScript中hasOwnProperty函數(shù)方法返回 true吹缔,反之則返回 false商佑。

8. JSON 的了解?

JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式厢塘。
它是基于JavaScript的一個子集茶没。數(shù)據(jù)格式簡單, 易于讀寫, 占用帶寬小
如:{"age":"12", "name":"back"}

JSON字符串轉(zhuǎn)換為JSON對象:
var obj =eval('('+ str +')');
var obj = str.parseJSON();
var obj = JSON.parse(str);

JSON對象轉(zhuǎn)換為JSON字符串:
var last=obj.toJSONString();
var last=JSON.stringify(obj);

9. js延遲加載的方式有哪些?

defer和async晚碾、動態(tài)創(chuàng)建DOM方式(用得最多)抓半、按需異步載入js

10.如何判斷當(dāng)前腳本運行在瀏覽器還是node環(huán)境中?(阿里)

this === window ? 'browser' : 'node';
通過判斷Global對象是否為window格嘁,如果不為window笛求,當(dāng)前腳本沒有運行在瀏覽器中

11.javascript的typeof返回哪些數(shù)據(jù)類型

    alert(typeof [1, 2]); //object
    alert(typeof 'leipeng'); //string
    var i = true; 
    alert(typeof i); //boolean
    alert(typeof 1); //number 
    var a; 
    alert(typeof a); //undefined
    function a(){;};
    alert(typeof a) //function

12. 例舉3種強制類型轉(zhuǎn)換和2種隱式類型轉(zhuǎn)換?

強制(parseInt(),parseFloat(),Number())
隱式(== ,!!)

13. split() 、join() 的區(qū)別

前者是切割成數(shù)組的形式糕簿,后者是將數(shù)組轉(zhuǎn)換成字符串

14. 數(shù)組方法pop() push() unshift() shift()

push()尾部添加 pop()尾部刪除
unshift()頭部添加 shift()頭部刪除
map() : 遍歷數(shù)組中的元素, 返回一個新數(shù)組(包含回調(diào)函數(shù)返回的數(shù)據(jù))
filter():遍歷數(shù)組中的元素, 返回一個新數(shù)組(包含回調(diào)函數(shù)返回true的元素)

15.事件綁定和普通事件有什么區(qū)別

普通添加事件的方法:

var btn = document.getElementById("hello");
btn.onclick = function(){
    alert(1);
}
btn.onclick = function(){
    alert(2);
}

執(zhí)行上面的代碼只會alert 2

事件綁定方式添加事件:

var btn = document.getElementById("hello");
btn.addEventListener("click",function(){
    alert(1);
},false);
btn.addEventListener("click",function(){
    alert(2);
},false);

執(zhí)行上面的代碼會先alert 1 再 alert 2
普通添加事件的方法不支持添加多個事件探入,最下面的事件會覆蓋上面的,而事件綁定(addEventListener)方式添加事件可以添加多個懂诗。
addEventListener不兼容低版本IE
普通事件無法取消
addEventLisntener還支持事件冒泡+事件捕獲

16. IE和DOM事件流的區(qū)別

  • 執(zhí)行順序不一樣蜂嗽、
  • 參數(shù)不一樣
  • 事件加不加on
  • this指向問題

17. IE和標(biāo)準(zhǔn)下有哪些兼容性的寫法

var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
var target = ev.srcElement||ev.target

18.如何阻止事件冒泡和事件默認行為

//阻止事件冒泡
if(typeof ev.stopPropagation=='function') {  //標(biāo)準(zhǔn)的
    ev.stopPropagation();
} else { //非標(biāo)準(zhǔn)IE
    window.event.cancelBubble = true;
}
//阻止事件默認行為
return false

19. window.onload 和document ready的區(qū)別

window.onload 是在dom文檔樹加載完和所有文件加載完之后執(zhí)行一個函數(shù)document.ready原生中沒有這個方法,jquery中有 ().ready(function),在dom文檔樹加載完之后執(zhí)行一個函數(shù)(注意殃恒,這里面的文檔樹加載完不代表全部文件加載完)植旧。(document).ready要比window.onload先執(zhí)行
window.onload只能出來一次,$(document).ready可以出現(xiàn)多次

20. ”==”和“===”的不同

前者會自動轉(zhuǎn)換類型
后者不會

21. JavaScript是一門什么樣的語言离唐,它有哪些特點隆嗅?

javaScript一種直譯式腳本語言,是一種動態(tài)類型侯繁、弱類型胖喳、基于原型的語言,內(nèi)置支持類型贮竟。它的解釋器被稱為JavaScript引擎丽焊,為瀏覽器的一部分较剃,廣泛用于客戶端的腳本語言,最早是在HTML網(wǎng)頁上使用技健,用來給HTML網(wǎng)頁增加動態(tài)功能写穴。JavaScript兼容于ECMA標(biāo)準(zhǔn),因此也稱為ECMAScript雌贱。
基本特點

  1. 是一種解釋性腳本語言(代碼不進行預(yù)編譯)啊送。
  2. 主要用來向HTML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用)頁面添加交互行為。
  3. 可以直接嵌入HTML頁面欣孤,但寫成單獨的js文件有利于結(jié)構(gòu)和行為的分離馋没。
    跨平臺特性,在絕大多數(shù)瀏覽器的支持下降传,可以在多種平臺下運行(如Windows篷朵、Linux、Mac婆排、Android声旺、iOS等)。

22. JavaScript的數(shù)據(jù)類型都有什么段只?

基本數(shù)據(jù)類型:String,boolean,Number,Undefined, Null
引用數(shù)據(jù)類型:Object, Array, Function
那么問題來了腮猖,如何判斷某變量是否為數(shù)組數(shù)據(jù)類型?
方法一.判斷其是否具有“數(shù)組性質(zhì)”赞枕,如slice()方法澈缺。可自己給該變量定義slice方法鹦赎,故有時會失效
方法二.obj instanceof Array 在某些IE版本中不正確
方法三.方法一二皆有漏洞谍椅,在ECMA Script5中定義了新方法Array.isArray(), 保證其兼容性误堡,最好的方法如下:
if(typeof Array.isArray==="undefined")
{
Array.isArray = function(arg){
return Object.prototype.toString.call(arg)==="[object Array]"
};
}

23. 當(dāng)一個DOM節(jié)點被點擊時候古话,我們希望能夠執(zhí)行一個函數(shù),應(yīng)該怎么做锁施?

直接在DOM里綁定事件:<div onclick=”test()”></div>
在JS里通過onclick綁定:xxx.onclick = test
通過事件添加進行綁定:addEventListener(xxx, ‘click’, test)
那么問題來了陪踩,Javascript的事件流模型都有什么?
“事件冒泡”:事件開始由最具體的元素接受悉抵,然后逐級向上傳播
“事件捕捉”:事件由最不具體的節(jié)點先接收肩狂,然后逐級向下,一直到最具體的
“DOM事件流”:三個階段:事件捕捉姥饰,目標(biāo)階段傻谁,事件冒泡

24. 看下列代碼輸出為何?解釋原因列粪。

var a;
alert(typeof a); // undefined
alert(b); // 報錯
解釋:Undefined是一個只有一個值的數(shù)據(jù)類型审磁,這個值就是“undefined”谈飒,在使用var聲明變量但并未對其賦值進行初始化時,這個變量的值就是undefined态蒂。而b由于未聲明將報錯杭措。注意未申明的變量和聲明了未賦值的是不一樣的。

25. 看下列代碼,輸出什么钾恢?解釋原因手素。

var undefined;
undefined == null; // true undefined與null相等,但不恒等(===)
1 == true;   // true  一個是number一個是string時瘩蚪,會嘗試將string轉(zhuǎn)換為number
2 == true;   // false  嘗試將boolean轉(zhuǎn)換為number泉懦,0或1
0 == false;  // true
0 == '';     // true
NaN == NaN;  // false
[] == false; // true  嘗試將Object轉(zhuǎn)換成number或string,取決于另外一個對比量的類型
[] == ![];   // true

所以募舟,對于0祠斧、空字符串的判斷,建議使用 “===” 拱礁∽练妫“===”會先判斷兩邊的值類型,類型不匹配時為false呢灶。
看下面的代碼吴超,輸出什么,foo的值為什么鸯乃?

var foo = "11"+2-"1";
console.log(foo);
console.log(typeof foo);

執(zhí)行完后foo的值為111鲸阻,foo的類型為String。

26. 已知數(shù)組var stringArray = [“This”, “is”, “Baidu”, “Campus”]缨睡,Alert出”This is Baidu Campus”鸟悴。

alert(stringArray.join(" "))

27.已知有字符串foo=”get-element-by-id”,寫一個function將其轉(zhuǎn)化成駝峰表示法”getElementById”

function combo(msg){
    var arr=msg.split("-");
    for(var i=1;i<arr.length;i++){
     arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substr(1,arr[i].length-1);
    }
    msg=arr.join("");
    return msg;
}

28. 輸出今天的日期,以YYYY-MM-DD的方式奖年,比如今天是2014年9月26日细诸,則輸出2014-09-26

var d = new Date();
// 獲取年,getFullYear()返回4位的數(shù)字
var year = d.getFullYear();
// 獲取月陋守,月份比較特殊震贵,0是1月,11是12月
var month = d.getMonth() + 1;
var d = new Date();
// 獲取年水评,getFullYear()返回4位的數(shù)字
var year = d.getFullYear();
// 獲取月猩系,月份比較特殊,0是1月中燥,11是12月
var month = d.getMonth() + 1;

29. 將字符串”<tr><td>{$id}</td><td>{$name}</td></tr>”中的{$id}替換成10; {$name}替換成Tony (使用正則表達式)

"<tr><td>{$id}</td><td>{$id}_{$name}</td></tr>".replace(/{\$id}/g, '10').replace(/{\$name}/g, 'Tony');

30.為了保證頁面輸出安全寇甸,我們經(jīng)常需要對一些特殊的字符進行轉(zhuǎn)義,請寫一個函數(shù)escapeHtml,將<, >, &, “進行轉(zhuǎn)義

function escapeHtml(str) {
return str.replace(/[<>”&]/g, function(match) {
    switch (match) {
                   case “<”:
                      return “&lt;”;
                   case “>”:
                      return “&gt;”;
                   case “&”:
                      return “&amp;”;
                   case “\””:
                      return “&quot;”;
      }
  });
}

31. foo = foo||bar 拿霉,這行代碼是什么意思式塌?為什么要這樣寫?

如果foo存在友浸,值不變峰尝,否則把bar的值賦給foo。
短路表達式:作為”&&”和”||”操作符的操作數(shù)表達式收恢,這些表達式在進行求值時武学,只要最終的結(jié)果已經(jīng)可以確定是真或假,求值過程便告終止伦意,這稱之為短路求值火窒。

32. 看下列代碼,將會輸出什么?(變量聲明提升)

var foo = 1;
(function(){
console.log(foo);
var foo = 2;
console.log(foo);
})()
答案:輸出undefined 和 2驮肉。上面代碼相當(dāng)于:
var foo = 1;
(function(){
var foo;
console.log(foo); //undefined
foo = 2;
console.log(foo); // 2;
})()
函數(shù)聲明與變量聲明會被JavaScript引擎隱式地提升到當(dāng)前作用域的頂部熏矿,但是只提升名稱不會提升賦值部分。

33. 用js實現(xiàn)隨機選取10–100之間的10個數(shù)字离钝,存入一個數(shù)組票编,并排序。

function randomNub(aArray, len, min, max) {
               if (len >= (max - min)) {
                   return '超過' + min + '-' + max + '之間的個數(shù)范圍' + (max - min - 1) + '個的總數(shù)';
               }
               if (aArray.length >= len) {
                   aArray.sort(function(a, b) {
                       return a - b
                   });
                   return aArray;
               }
               var nowNub = parseInt(Math.random() * (max - min - 1)) + (min + 1);
               for (var j = 0; j < aArray.length; j++) {
                   if (nowNub == aArray[j]) {
                       randomNub(aArray, len, min, max);
                       return;
                   }
               }
               aArray.push(nowNub);
               randomNub(aArray, len, min, max);
               return aArray;
                 
                 var arr=[];
                 randomNub(arr,10,10,100);

34.把兩個數(shù)組合并卵渴,并刪除第二個元素慧域。

var array1 = ['a','b','c'];
var bArray = ['d','e','f'];
var cArray = array1.concat(bArray);
cArray.splice(1,1);

35.有這樣一個URL:http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e,請寫一段JS程序提取URL中的各個GET參數(shù)(參數(shù)名和參數(shù)個數(shù)不確定)浪读,將其按key-value形式返回到一個json結(jié)構(gòu)中昔榴,如{a:’1′, b:’2′, c:”, d:’xxx’, e:undefined}。

function URLParameter(str) {
        var obj = {},
            reg = /([^=?&]+)=([^=?&]+)/g;
        str.replace(reg, function () {
            var arg = arguments;   

            obj[arg[1]] = arg[2];
        });
        return obj;
    }

36. 正則表達式構(gòu)造函數(shù)var reg=new RegExp(“xxx”)與正則表達字面量var reg=//有什么不同碘橘?匹配郵箱的正則表達式互订?

當(dāng)使用RegExp()構(gòu)造函數(shù)的時候,不僅需要轉(zhuǎn)義引號(即\”表示”)痘拆,并且還需要雙反斜杠(即\表示一個\)仰禽。使用正則表達字面量的效率更高。
郵箱的正則匹配:
var regMail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/;

37. 寫一個function错负,清除字符串前后的空格坟瓢。

if (!String.prototype.trim) { 
    String.prototype.trim = function() { 
    return this.replace(/^\s+/, "").replace(/\s+$/,"");
 } 
} 
//測試 
var str = " \t\n test string ".trim(); 
alert(str == "test string"); // alerts "true"

38. 以下兩個變量a和b勇边,a+b的哪個結(jié)果是NaN犹撒?

A、var a=undefined; b=NaN
B粒褒、var a= ‘123’; b=NaN
C识颊、var a =undefined , b =NaN
D、var a=NaN , b='undefined'

39. 下面的JavaScript語句中,( )實現(xiàn)檢索當(dāng)前頁面中的表單元素中的所有文本框祥款,并將它們?nèi)壳蹇?/h3>
 if(document.form.elements.type==”text”)
form.elements.value=”";

40. typeof運算符返回值中有一個跟javascript數(shù)據(jù)類型不一致清笨,它是

Array

41. 寫出函數(shù)DateDemo的返回結(jié)果,系統(tǒng)時間假定為今天

function DateDemo(){
 var d, s="今天日期是:";
 d = new Date();
s += d.getMonth() +1+ "/";
s += d.getDate() + "/";
s += d.getFullYear();
return s;
}

結(jié)果:今天日期是:7/21/2016

42. 寫出簡單描述html標(biāo)簽(不帶屬性的開始標(biāo)簽和結(jié)束標(biāo)簽)的正則表達式刃跛,并將以下字符串中的html標(biāo)簽去除掉


var reg = /<\/?\w+\/?>/gi;
var str = “<div>這里是div<p>里面的段落</p></div>”;
alert(str.replace(reg,”"));

43. 截取字符串a(chǎn)bcdefg的efg

alert('abcdefg'.substring(4));

44.簡述創(chuàng)建函數(shù)的幾種方式

//第一種(函數(shù)聲明): 
function sum1(num1,num2){
   return num1+num2;
}
//第二種(函數(shù)表達式):
var sum2 = function(num1,num2){
   return num1+num2;
}
//第三種(函數(shù)對象方式):
var sum3 = new Function("num1","num2","return num1+num2");

45. Javascript如何實現(xiàn)繼承抠艾?

  • 構(gòu)造繼承法
  • 原型繼承法
  • 實例繼承法

46. Javascript創(chuàng)建對象的幾種方式?

1桨昙、var obj = {};(使用json創(chuàng)建對象)
如:obj.name = '張三';
obj.action = function ()
{
alert('吃飯');
};
2检号、var obj = new Object();(使用Object創(chuàng)建對象)
如:obj.name = '張三';
obj.action = function ()
{
alert('吃飯');
};
3、通過構(gòu)造函數(shù)創(chuàng)建對象蛙酪。
(1)齐苛、使用this關(guān)鍵字
如:var obj = function (){
this.name ='張三';
this.age = 19;
this.action = function ()
{
alert('吃飯');
};
}
(2)、使用prototype關(guān)鍵字
如:function obj (){}
obj.prototype.name ='張三';
obj.prototype.action=function ()
{
alert('吃飯');
};
4桂塞、使用內(nèi)置對象創(chuàng)建對象凹蜂。
如:var str = new String("實例初始化String");
var str1 = "直接賦值的String";
var func = new Function("x","alert(x)");//示例初始化func
var obj = new Object();//示例初始化一個Object

47.哪些操作會造成內(nèi)存泄漏?

內(nèi)存泄漏指任何對象在您不再擁有或需要它之后仍然存在阁危。
垃圾回收器定期掃描對象玛痊,并計算引用了每個對象的其他對象的數(shù)量。如果一個對象的引用數(shù)量為 0(沒有其他對象引用過該對象)狂打,或?qū)υ搶ο蟮奈┮灰檬茄h(huán)的卿啡,那么該對象的內(nèi)存即可回收。

  1. setTimeout 的第一個參數(shù)使用字符串而非函數(shù)的話菱父,會引發(fā)內(nèi)存泄漏颈娜。
  2. 閉包
  3. 控制臺日志
  4. 循環(huán)(在兩個對象彼此引用且彼此保留時,就會產(chǎn)生一個循環(huán))

48.判斷一個字符串中出現(xiàn)次數(shù)最多的字符浙宜,統(tǒng)計這個次數(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;
}
}
alert('出現(xiàn)次數(shù)最多的是:'+iIndex+'出現(xiàn)'+iMax+'次');

49.寫一個獲取非行間樣式的函數(shù)

function getStyle(obj,attr,value)
{
    if(!value)
    {
         if(obj.currentStyle)
         {
             return obj.currentStyle(attr);
         }
         else{
             obj.getComputedStyle(attr,false);
         }
    }   
    else
    {
         obj.style[attr] = value;
    }
}

50.字符串反轉(zhuǎn)官辽,如將 '12345678' 變成 '87654321'

//思路:先將字符串轉(zhuǎn)換為數(shù)組 split(),利用數(shù)組的反序函數(shù) reverse()顛倒數(shù)組粟瞬,再利用 jion() 轉(zhuǎn)換為字符串

var str = '12345678';
str = str.split('').reverse().join('');

51.將數(shù)字 12345678 轉(zhuǎn)化成 RMB形式 如: 12,345,678

//思路:先將數(shù)字轉(zhuǎn)為字符同仆, str= str + '' ;
//利用反轉(zhuǎn)函數(shù),每三位字符加一個 ','最后一位不加裙品; re()是自定義的反轉(zhuǎn)函數(shù)俗批,最后再反轉(zhuǎn)回去!
function re(str) {
str += '';
return str.split("").reverse().join("");
}

function toRMB(num) {
var tmp='';
for (var i = 1; i <= re(num).length; i++) {
tmp += re(num)[i - 1];
if (i % 3 == 0 && i != re(num).length) {
tmp += ',';
}
}
return re(tmp);
}

52. 生成5個不同的隨機數(shù)市怎;

//思路:5個不同的數(shù)岁忘,每生成一次就和前面的所有數(shù)字相比較,如果有相同的区匠,則放棄當(dāng)前生成的數(shù)字干像!
var num1 = [];
for(var i = 0; i < 5; i++){
num1[i] = Math.floor(Math.random()*10) + 1; //范圍是 [1, 10]
for(var j = 0; j < i; j++){
if(num1[i] == num1[j]){
i--;
}
}
}

53.去掉數(shù)組中重復(fù)的數(shù)字

方法一:
//思路:每遍歷一次就和之前的所有做比較,不相等則放入新的數(shù)組中!
//這里用的原型 個人做法麻汰;
Array.prototype.unique = function(){
var len = this.length,
newArr = [],
flag = 1;
for(var i = 0; i < len; i++, flag = 1){
for(var j = 0; j < i; j++){
if(this[i] == this[j]){
flag = 0; //找到相同的數(shù)字后速客,不執(zhí)行添加數(shù)據(jù)
}
}
flag ? newArr.push(this[i]) : '';
}
return newArr;
}
方法二:
var arr=[1,2,3,3,4,4,5,5,6,1,9,3,25,4];
Array.prototype.unique2 = function()
{
var n = []; //一個新的臨時數(shù)組
for(var i = 0; i < this.length; i++) //遍歷當(dāng)前數(shù)組
{
//如果當(dāng)前數(shù)組的第i已經(jīng)保存進了臨時數(shù)組,那么跳過五鲫,
//否則把當(dāng)前項push到臨時數(shù)組里面
if (n.indexOf(this[i]) == -1) n.push(this[i]);
}
return n;
}
var newArr2=arr.unique2(arr);
alert(newArr2); //輸出1,2,3,4,5,6,9,25

54.階乘函數(shù)溺职;

Number.prototype.N = function(){
    var re = 1;
    for(var i = 1; i <= this; i++){
        re *= i;
    }
    return re;
}
var num = 5;
alert(num.N());

56.window.location.search() 返回的是什么?

http://localhost:8080/xxx?ver=1.0&id=123
返回值:?ver=1.0&id=timlq 也就是問號后面的部分

57. window.location.reload() 作用位喂?

刷新當(dāng)前頁面辅愿。

58. javascript 中的垃圾回收機制?

在Javascript中忆某,如果一個對象不再被引用点待,那么這個對象就會被GC回收。如果兩個對象互相引用弃舒,而不再 被第3者所引用癞埠,那么這兩個互相引用的對象也會被回收。因為函數(shù)a被b引用聋呢,b又被a外的c引用苗踪,這就是為什么 函數(shù)a執(zhí)行后不會被回收的原因。

59.精度問題: JS 精度不能精確到 0.1 所以 削锰。通铲。。器贩。同時存在于值和差值中

var n = 0.3,m = 0.2, i = 0.2, j = 0.1;
alert((n - m) == (i - j)); //false
alert((n-m) == 0.1); //false
alert((i-j)==0.1); //true

60.計算字符串字節(jié)數(shù):

new function(s){ 
     if(!arguments.length||!s) return null;  
     if(""==s) return 0;     
     var l=0;
     for(var i=0;i<s.length;i++){        
         if(s.charCodeAt(i)>255) l+=2; else l+=1;  //charCodeAt()得到的是unCode碼   
     }     //漢字的unCode碼大于 255bit 就是兩個字節(jié)
     alert(l); 
}("hello world!");

61. 匹配輸入的字符:第一個必須是字母或下劃線開頭颅夺,長度5-20

var reg = /^[a-zA-Z_][a-zA-Z0-9_]{5,20}/,
            name1 = 'leipeng',
            name2 = '0leipeng',
            name3 = '你好leipeng',
            name4 = 'hi';
     
        alert(reg.test(name1));
        alert(reg.test(name2));
        alert(reg.test(name3));
        alert(reg.test(name4));

63.你如何優(yōu)化自己的代碼?

代碼重用
避免全局變量(命名空間蛹稍,封閉空間吧黄,模塊化mvc..)
拆分函數(shù)避免函數(shù)過于臃腫
注釋

64. 使用js實現(xiàn)這樣的效果:在文本域里輸入文字時,當(dāng)按下enter鍵時不換行唆姐,而是替換成“{{enter}}”,(只需要考慮在行尾按下enter鍵的情況).

<html>
<head>
    <script>
        function back(ele,event){
            event = event || window.event;
            if(event.keyCode==13){
                event.returnValue = false;
                ele.value+="{{enter}}"
                return false;
            }
        }
    </script>
</head>
<body>
<textarea rows="3" cols="40" id="te" onkeypress="back(this,event);"></textarea>
</body>
</html>

65. 簡述readyonly與disabled的區(qū)別

ReadOnly和Disabled的作用是使用戶不能夠更改表單域中的內(nèi)容.
但是二者還是有著一些區(qū)別的:

  • Readonly只針對input(text/password)和textarea有效僵娃,而disabled對于所有的表單元素有效彪薛,包括select,radio,checkbox,button等星掰。
  • 在表單元素使用了disabled后骗奖,我們將表單以POST或者GET的方式提交的話,這個元素的值不會被傳遞出去声功,而readonly會將該值傳遞出去

66. 為什么擴展javascript內(nèi)置對象不是好的做法烦却?

因為你不知道哪一天瀏覽器或javascript本身就會實現(xiàn)這個方法,而且和你擴展的實現(xiàn)有不一致的表現(xiàn)减噪。到時候你的javascript代碼可能已經(jīng)在無數(shù)個頁面中執(zhí)行了數(shù)年短绸,而瀏覽器的實現(xiàn)導(dǎo)致所有使用擴展原型的代碼都崩潰了。筹裕。醋闭。

67. 什么是三元表達式?“三元”表示什么意思朝卒?

三元運算符:
三元如名字表示的三元運算符需要三個操作數(shù)证逻。
語法是 條件 ? 結(jié)果1 : 結(jié)果2;. 這里你把條件寫在問號(?)的前面后面跟著用冒號(:)分隔的結(jié)果1和結(jié)果2。滿足條件時結(jié)果1否則結(jié)果2抗斤。

68.變量的命名規(guī)范以及命名推薦

變量囚企,函數(shù),方法:小寫開頭瑞眼,以后的每個單詞首字母大寫 (駝峰)
構(gòu)造函數(shù)龙宏,class:每個單詞大寫開頭
基于實際情況,以動詞伤疙,名詞银酗,謂詞來命名。盡量言簡意駭徒像,以命名代替注釋

69.三種彈窗的單詞以及三種彈窗的功能

1.alert

//彈出對話框并輸出一段提示信息  
    function ale() {  
        //彈出一個對話框  
        alert("提示信息黍特!");  
  
    }  

2.confirm

  //彈出一個詢問框,有確定和取消按鈕  
   function firm() {  
       //利用對話框返回的值 (true 或者 false)  
       if (confirm("你確定提交嗎锯蛀?")) {  
           alert("點擊了確定");  
       }  
       else {  
           alert("點擊了取消");  
       }  
 
   }  

3.prompt

  //彈出一個輸入框灭衷,輸入一段文字,可以提交  
   function prom() {  
       var name = prompt("請輸入您的名字", ""); //將輸入的內(nèi)容賦給變量 name 旁涤,  
 
       //這里需要注意的是翔曲,prompt有兩個參數(shù),前面是提示的話劈愚,后面是當(dāng)對話框出來后部默,在對話框里的默認值  
       if (name)//如果返回的有內(nèi)容  
       {  
           alert("歡迎您:" + name)  
       }  
   }

70. 主流瀏覽器內(nèi)核

IE trident 火狐gecko 谷歌蘋果webkit Opera:Presto

71.JavaScript的循環(huán)語句有哪些?

for,for..in,while,do...while

72.閉包:下面這個ul造虎,如何點擊每一列的時候alert其index傅蹂?

<ul id="test">
    <li>這是第一條</li>
    <li>這是第二條</li>
    <li>這是第三條</li>
</ul>
//js
 window.onload = function() {
        var lis = document.getElementById('test').children;
        for (var i = 0; i < lis.length; i++) {
            lis[i].onclick = (function(i) {
                return function() {
                    alert(i)
                };
            })(i);
        };
    }

73.列出3條以上ff和IE的腳本兼容問題

  • window.event:
    表示當(dāng)前的事件對象,IE有這個對象算凿,F(xiàn)F沒有份蝴,F(xiàn)F通過給事件處理函數(shù)傳遞事件對象
  • 獲取事件源
    IE用srcElement獲取事件源,而FF用target獲取事件源
  • 添加氓轰,去除事件
    IE:element.attachEvent(“onclick”, function) element.detachEvent(“onclick”, function)
    FF:element.addEventListener(“click”, function, true) element.removeEventListener(“click”, function, true)
  • 獲取標(biāo)簽的自定義屬性
    IE:div1.value或div1[“value”]
    FF:可用div1.getAttribute(“value”)

74. 在Javascript中什么是偽數(shù)組婚夫?如何將偽數(shù)組轉(zhuǎn)化為標(biāo)準(zhǔn)數(shù)組?

偽數(shù)組(類數(shù)組):無法直接調(diào)用數(shù)組方法或期望length屬性有什么特殊的行為署鸡,但仍可以對真正數(shù)組遍歷方法來遍歷它們案糙。典型的是函數(shù)的argument參數(shù)限嫌,還有像調(diào)用getElementsByTagName,document.childNodes之類的,它們都返回NodeList對象都屬于偽數(shù)組∈卑疲可以使用Array.prototype.slice.call(fakeArray)將數(shù)組轉(zhuǎn)化為真正的Array對象怒医。

75.請寫出一個程序,在頁面加載完成后動態(tài)創(chuàng)建一個form表單奢讨,并在里面添加一個input對象并給它任意賦值后義post方式提交到:http://127.0.0.1/save.php

window.onload=function(){
var form=document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "http://127.0.0.1/save.php");

var input=document.createElement("input");
form.appendChild(input);
document.body.appendChild(form);
input.value="cxc";
form.submit();//提交表單

}

76.用JavaScript實現(xiàn)冒泡排序稚叹。數(shù)據(jù)為23、45拿诸、18扒袖、37、92亩码、13季率、24

//升序算法
function sort(arr){
for (var i = 0; i <arr.length; i++) {
for (var j = 0; j <arr.length-i; j++) {
if(arr[j]>arr[j+1]){
var c=arr[j];//交換兩個變量的位置
arr[j]=arr[j+1];
arr[j+1]=c;
}
};
};
return arr.toString();
}
console.log(sort([23,45,18,37,92,13,24]));

77.前端代碼優(yōu)化的方法

var User = {
count = 1,
getCount:function(){
return this.count;
}
}
console.log(User.getCount());
var func = User.getCount;
console.log(func());
1 undefined(因為是window對象執(zhí)行了func函數(shù));

78.用程序?qū)崿F(xiàn)找到html中id名相同的元素描沟?

<body>
<form id='form1'>
<div id='div1'></div>
<div id='div2'></div>
<div id='div3'></div>
<div id='div4'></div>
<div id='div5'></div>
<div id='div3'>id名重復(fù)的元素</div>
</form>
</body>
var nodes=document.querySelectorAll("#form1>*");
for(var i=0,len=nodes.length;i<len;i++){
var attr=nodes[i].getAttribute("id");
var s=1;
for(var j=i+1;j<len;j++){
if(nodes[j].getAttribute("id")==attr){
s++;
alert("id為:"+attr+"的元素出現(xiàn)"+s+"次");
}
}
}

79.程序中捕獲異常的方法蚀同?

window.error
try{}catch(){}finally{}

80.下列控制臺都輸出什么

//第1題:
function setName(){
    name="張三";
}
setName();
console.log(name);
答案:"張三"
//第2題:
//考點:1、變量聲明提升 2啊掏、變量搜索機制
var a=1;
function test(){
    console.log(a);
    var a=1;
}
test();
答案:undefined
//第3題:
var b=2;
function test2(){
    window.b=3;
    console.log(b);
}
test2();
答案:3
//第4題:
c=5;//聲明一個全局變量c 
function test3(){
    window.c=3;
    console.log(c);        //答案:undefined蠢络,原因:由于此時的c是一個局部變量c,并且沒有被賦值
    var c;
    console.log(window.c);//答案:3迟蜜,原因:這里的c就是一個全局變量c
}
test3();
//第5題:
var arr = [];
arr[0]  = 'a';
arr[1]  = 'b';
arr[10] = 'c';
alert(arr.length); //答案:11
console.log(arr[5]); //答案:undefined
//第6題:
var a=1;
console.log(a++);        //答案:1
console.log(++a);        //答案:3
//第7題:
console.log(null==undefined); //答案:true
console.log("1"==1);       //答案:true刹孔,因為會將數(shù)字1先轉(zhuǎn)換為字符串1
console.log("1"===1);     //答案:false,因為數(shù)據(jù)類型不一致
//第8題:
typeof 1;        "number"
typeof "hello";        "string"
typeof /[0-9]/;        "object"
typeof {};        "object"
typeof null;        "object"
typeof undefined;   "undefined"
typeof [1,2,3];     "object"
typeof function(){}; //"function"
第9題:
parseInt(3.14);             //3
parseFloat("3asdf");         //3
parseInt("1.23abc456");  //1
parseInt(true);// NaN
第10題:
//考點:函數(shù)聲明提前
function bar() {
    return foo;
    foo = 10;
    function foo() {}
    //var foo = 11;
}
alert(typeof bar());//"function"
第11題: 
//考點:函數(shù)聲明提前
var foo = 1;
function bar() {
    foo = 10;
    return;
    function foo() {}
}
bar();
alert(foo);//答案:1
第12題:
console.log(a);//是一個函數(shù)
var a = 3;
function a(){}
console.log(a);////3
第13題:
//考點:對arguments的操作
function foo(a) {
    arguments[0] = 2;
    alert(a);//答案:2娜睛,因為:a髓霞、arguments是對實參的訪問,b畦戒、通過arguments[i]可以修改指定實參的值
}
foo(1);
第14題:
function foo(a) {
    alert(arguments.length);//答案:3方库,因為arguments是對實參的訪問
}
foo(1, 2, 3);
第15題
bar();//報錯
var foo = function bar(name) {
    console.log("hello"+name);
    console.log(bar);
};
console.log(typeof bar);   undefined
foo("world");// helloworld
console.log(bar);// bar is not defined
console.log(foo.toString());
bar();//報錯

81. 請說出三種減低頁面加載時間的方法

  • 壓縮css、js文件
  • 合并js障斋、css文件纵潦,減少http請求
  • 外部js、css文件放在最底下
  • 減少dom操作垃环,盡可能用變量替代不必要的dom操作

82. 實現(xiàn)一個函數(shù)clone邀层,可以對JavaScript中的5種主要的數(shù)據(jù)類型(包括Number、String遂庄、Object寥院、Array、Boolean)進行值復(fù)制

    // 方法一:
Object.prototype.clone = function(){
   var o = this.constructor === Array ? [] : {};
   for(var e in this){
      o[e] = typeof this[e] === "object" ? this[e].clone() : this[e];
   }
   return o;
}
//方法二:
     /**
     * 克隆一個對象
     * @param Obj
     * @returns
     */
    function clone(Obj) {   
        var buf;   
        if (Obj instanceof Array) {   
            buf = [];//創(chuàng)建一個空的數(shù)組 
            var i = Obj.length;   
            while (i--) {   
                buf[i] = clone(Obj[i]);   
            }   
            return buf;    
        }else if (Obj instanceof Object){   
            buf = {};//創(chuàng)建一個空對象 
            for (var k in Obj) { //為這個對象添加新的屬性 
                buf[k] = clone(Obj[k]);   
            }   
            return buf;   
        }else{ //普通變量直接賦值
            return Obj;   
        }   
    }

83. 如何消除一個數(shù)組里面重復(fù)的元素涛目?

var arr=[1,2,3,3,4,4,5,5,6,1,9,3,25,4];
        function deRepeat(){
            var newArr=[];
            var obj={};
            var index=0;
            var l=arr.length;
            for(var i=0;i<l;i++){
                if(obj[arr[i]]==undefined)
                  {
                    obj[arr[i]]=1;
                    newArr[index++]=arr[i];
                  }
                else if(obj[arr[i]]==1)
                  continue;
            }
            return newArr;
        }
        var newArr2=deRepeat(arr);
        alert(newArr2); //輸出1,2,3,4,5,6,9,25

84.定義一個log方法秸谢,讓它可以代理console.log的方法凛澎。
function log(msg) {
console.log(msg);
}
log("hello world!") // hello world!
如果要傳入多個參數(shù)呢?顯然上面的方法不能滿足要求估蹄,所以更好的方法是:
function log(){
console.log.apply(console, arguments);
};
到此塑煎,追問apply和call方法的異同。

85. 原生JS的window.onload與Jquery的$(document).ready(function(){})有什么不同元媚?如何用原生JS實現(xiàn)Jq的ready方法轧叽?

window.onload()方法是必須等到頁面內(nèi)包括圖片的所有元素加載完畢后才能執(zhí)行苗沧。
$(document).ready()是DOM結(jié)構(gòu)繪制完畢后就執(zhí)行刊棕,不必等到加載完畢。
/*

  • 傳遞函數(shù)給whenReady()
  • 當(dāng)文檔解析完畢且為操作準(zhǔn)備就緒時待逞,函數(shù)作為document的方法調(diào)用
    */

function ready(fn){
if(document.addEventListener) {//標(biāo)準(zhǔn)瀏覽器
document.addEventListener('DOMContentLoaded', function() {
//注銷事件, 避免反復(fù)觸發(fā)
document.removeEventListener('DOMContentLoaded',arguments.callee, false);
fn();//執(zhí)行函數(shù)
}, false);
}else if(document.attachEvent) {//IE
document.attachEvent('onreadystatechange', function() {
if(document.readyState == 'complete') {
document.detachEvent('onreadystatechange', arguments.callee);
fn();//函數(shù)執(zhí)行
}
});
}
};

86.(設(shè)計題)想實現(xiàn)一個對頁面某個節(jié)點的拖曳甥角?如何做?(使用原生JS)

回答出概念即可识樱,下面是幾個要點
給需要拖拽的節(jié)點綁定mousedown, mousemove, mouseup事件
mousedown事件觸發(fā)后嗤无,開始拖拽
mousemove時,需要通過event.clientX和clientY獲取拖拽位置怜庸,并實時更新位置
mouseup時当犯,拖拽結(jié)束
需要注意瀏覽器邊界的情況

87.數(shù)組和對象有哪些原生方法,列舉一下割疾?

  • Array.concat( ) 連接數(shù)組

  • Array.join( ) 將數(shù)組元素連接起來以構(gòu)建一個字符串

  • Array.length 數(shù)組的大小

  • Array.pop( ) 刪除并返回數(shù)組的最后一個元素

  • Array.push( ) 給數(shù)組添加元素

  • Array.reverse( ) 顛倒數(shù)組中元素的順序

  • Array.shift( ) 將元素移出數(shù)組

  • Array.slice( ) 返回數(shù)組的一部分

  • Array.sort( ) 對數(shù)組元素進行排序

  • Array.splice( ) 插入嚎卫、刪除或替換數(shù)組的元素

  • Array.toLocaleString( ) 把數(shù)組轉(zhuǎn)換成局部字符串

  • Array.toString( ) 將數(shù)組轉(zhuǎn)換成一個字符串

  • Array.unshift( ) 在數(shù)組頭部插入一個元素

  • Object.hasOwnProperty( ) 檢查屬性是否被繼承

  • Object.isPrototypeOf( ) 一個對象是否是另一個對象的原型

  • Object.propertyIsEnumerable( ) 是否可以通過for/in循環(huán)看到屬性

  • Object.toLocaleString( ) 返回對象的本地字符串表示

  • Object.toString( ) 定義一個對象的字符串表示

  • Object.valueOf( ) 指定對象的原始值

88. JS 怎么實現(xiàn)一個類。怎么實例化這個類

嚴格來講js中并沒有類的概念宏榕,不過js中的函數(shù)可以作為構(gòu)造函數(shù)來使用拓诸,通過new來實例化,其實函數(shù)本身也是一個對象麻昼。

89.在JS中有哪些會被隱式轉(zhuǎn)換為false

Undefined奠支、null、關(guān)鍵字false抚芦、NaN倍谜、零、空字符串

90.外部JS文件出現(xiàn)中文字符叉抡,會出現(xiàn)什么問題枢劝,怎么解決?

會出現(xiàn)亂碼卜壕,加charset=”utf-8”;

91.寫一個通用的事件偵聽器函數(shù)

markyun.Event = {
    // 頁面加載完成后
    readyEvent : function(fn) {
        if (fn==null) {
            fn=document;
        }
        var oldonload = window.onload;
        if (typeof window.onload != 'function') {
            window.onload = fn;
        } else {
            window.onload = function() {
                oldonload();
                fn();
            };
        }
    },
    // 視能力分別使用dom0||dom2||IE方式 來綁定事件
    // 參數(shù): 操作的元素,事件名稱 ,事件處理程序
    addEvent : function(element, type, handler) {
        if (element.addEventListener) {
            //事件類型您旁、需要執(zhí)行的函數(shù)、是否捕捉
            element.addEventListener(type, handler, false);
        } else if (element.attachEvent) {
            element.attachEvent('on' + type, function() {
                handler.call(element);
            });
        } else {
            element['on' + type] = handler;
        }
    },
    // 移除事件
    removeEvent : function(element, type, handler) {
        if (element.removeEnentListener) {
            element.removeEnentListener(type, handler, false);
        } else if (element.datachEvent) {
            element.detachEvent('on' + type, handler);
        } else {
            element['on' + type] = null;
        }
    }, 
    // 阻止事件 (主要是事件冒泡轴捎,因為IE不支持事件捕獲)
    stopPropagation : function(ev) {
        if (ev.stopPropagation) {
            ev.stopPropagation();
        } else {
            ev.cancelBubble = true;
        }
    },
    // 取消事件的默認行為
    preventDefault : function(event) {
        if (event.preventDefault) {
            event.preventDefault();
        } else {
            event.returnValue = false;
        }
    },
    // 獲取事件目標(biāo)
    getTarget : function(event) {
        return event.target || event.srcElement;
    },
    // 獲取event對象的引用鹤盒,取到事件的所有信息蚕脏,確保隨時能使用event;
    getEvent : function(e) {
        var ev = e || window.event;
        if (!ev) {
            var c = this.getEvent.caller;
            while (c) {
                ev = c.arguments[0];
                if (ev && Event == ev.constructor) {
                    break;
                }
                c = c.caller;
            }
        }
        return ev;
    }
}; 

92. JSON 的了解

JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式侦锯。它是基于JavaScript的一個子集驼鞭。數(shù)據(jù)格式簡單, 易于讀寫, 占用帶寬小
{'age':'12', 'name':'back'}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市尺碰,隨后出現(xiàn)的幾起案子挣棕,更是在濱河造成了極大的恐慌,老刑警劉巖亲桥,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件洛心,死亡現(xiàn)場離奇詭異,居然都是意外死亡题篷,警方通過查閱死者的電腦和手機词身,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來番枚,“玉大人法严,你說我怎么就攤上這事『” “怎么了深啤?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長路星。 經(jīng)常有香客問我溯街,道長,這世上最難降的妖魔是什么奥额? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任苫幢,我火速辦了婚禮,結(jié)果婚禮上垫挨,老公的妹妹穿的比我還像新娘韩肝。我一直安慰自己,他們只是感情好九榔,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布哀峻。 她就那樣靜靜地躺著,像睡著了一般哲泊。 火紅的嫁衣襯著肌膚如雪剩蟀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天切威,我揣著相機與錄音育特,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛缰冤,可吹牛的內(nèi)容都是我干的犬缨。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼棉浸,長吁一口氣:“原來是場噩夢啊……” “哼怀薛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起迷郑,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤枝恋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后嗡害,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體焚碌,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年就漾,在試婚紗的時候發(fā)現(xiàn)自己被綠了呐能。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片念搬。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡抑堡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出朗徊,到底是詐尸還是另有隱情首妖,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布爷恳,位于F島的核電站有缆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏温亲。R本人自食惡果不足惜棚壁,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望栈虚。 院中可真熱鬧袖外,春花似錦、人聲如沸魂务。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粘姜。三九已至鬓照,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間孤紧,已是汗流浹背豺裆。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留号显,地道東北人臭猜。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓翼抠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親获讳。 傳聞我的和親對象是個殘疾皇子阴颖,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

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

  • 1 - 編程語言 1.1 編程 編程:就是讓計算機為解決某個問題而使用某種程序設(shè)計語言編寫程序代碼,并最終得到結(jié)果...
    Scincyc閱讀 273評論 0 0
  • 轉(zhuǎn)載請聲明出處 博客原文 隨手翻閱以前的學(xué)習(xí)筆記丐膝,順便整理一下放在這里量愧,方便自己復(fù)習(xí),也希望你有也有幫助吧 第一課...
    程序員poetry閱讀 12,645評論 13 94
  • JavaScript基礎(chǔ) JavaScript簡介JavaScript對象 JavaScript簡介 為什么使用j...
    廖少少閱讀 545評論 0 4
  • # JavaScript基礎(chǔ)第01天 ## 1 - 編程語言 ### 1.1 編程 -編程: -就是讓計算機為解...
    私心呢閱讀 226評論 0 0
  • JavaScirpt變量 JavaScript 變量名稱的規(guī)則: 應(yīng)該起一些具有意義的帅矗,描述性的偎肃,讓人望文生義的變...
    zyh9212閱讀 356評論 0 0