html,css,js全阶段试题分析

1.行级元素有哪些?块级元素有哪些?行级元素如何转换成块级元素?

block元素的特点:

1.总在新行开始,2.高度,行高,以及外边距,内边距都是可控的,3.宽度缺省是它容器的100%,除非设定一个宽度,4.它可以容纳内联元素和其他块元素

常见的block元素:div,dl,form,h1,h2,h3,h4,h5,h6,hr,p,ul,table,menu

inline元素的特点:

1.和其他元素都在一行上,2.高,行高以及外距和内边距不可改变,3.宽度就是它的文字或图片的宽度,不可改变,4.内联元素只能容纳文本或者其他内联元素

常见的inline元素:br,em,i,img,input,lable,span,strong,

行级元素转换成块级元素:

1.使用display

2.使用float,该行的display属性会被赋予block属性,且拥有浮动特性。

3.position,当行内元素进行定位时,position:absolut,position:fixed,都会使原先的行内元素变成块级元素。


2.请回答,CSS代码,有几种常见的引入方式,分别是什么?

1.行内式:在标记的style属性中设定CSS样式

2.内嵌式:是将CSS样式集中写在网页的<head></head>标签对应的<style></style>里。

3.导入式:将一个独立的.CSS文件引入HTML文件中,导入式使用CSS规则引入外部CSS文件,语法如下:

<style type="text/css">

@import"mystyle.css";此处需要注意.css文件的路径

导入式会在整个网页加载完后再装载CSS文件,因此这就导致了一个问题,如果网页比较大,则会出现先显示无样式页面,闪烁过后才会出现页面的样式,这也算是一个缺陷。

4.链接式

链接式使用HTML规则引入外部CSS文件,它在网页的<head></head>标签对中使用<link>标签来引入外部样式表文件,使用语法如下:

<link href="mystyle.css" rel="stylesheet" type="text/css"/>

使用连接式时与导入式不同的是它会以网页文件主体装载前装载CSS文件,因此显示出来的网页从一开始就是带样式的效果。


3.web标准指什么?(一个高效网页的体系)



4.请简化一下CSS代码

#content{ 

margin:0 10px;

 padding:0;

 background:#ffffff; 

#content div{ 

margin:0 10px; 

padding:0; 

font-size:14px; 

text-align: center; 

color:#e9e9e9; 

#nav{ 

margin:0 10px;

 padding:0;

 background:#e0e0e0; 

}

简化后的结果:

#content,

#content div,

#nav{

margin:0 10px;

padding:0;

}

#content{

background:#fff;

}

#content div{

font-size:14px;

text-align:center;

color:#e9e9e9;

}

#nav{

background:#e0e0e0;

}


5.各位web前端工程师,考你们一个小常识,在很多浏览器的body都有默认的margin,这个值是多少呢?

8px


6.

body{ 

padding:0;

 margin:0; 

}

 #my-defined{ 

width:100px; 

height:100px; 

padding:0 100px; 

margin:10px 20px 30px 40px; 

border:1px solid orange; 

background:orange;

}

请回答:在这个HTML页面中,orange颜色的区域宽度是多少,range区域距离页面左边的和上边的距离分别为多少?

橙色区域的宽度是302,距离页面左边和上边的距离分别是40和10.


7.用CSS、HTML编写一个两列布局的网页,要求右侧宽度为200PX,左侧自动扩展

.left{

height:100px;

background:pink;

opacity:0.5;

margin-right:100px;

}

.right{

float:right;

height:100px;

background:yellow;

width:100px;

}

效果图:

采用的是浮动来实现两栏布局

8.如何居中一个浮动元素?(提示:

#my-defined{

position:absolute;

width:300px;

height:500px;

left: 50%;

top: 50%;

margin-top: -250px;

margin-left: -150px;

}

在上面加代码即可)

斜体代码是新增的。


9.请根据下面的HTML和CSS代码,画出布局示意图

#page{ 

width:520px;

 } 

.nav{ 

width:200px;

float:right; 

background: orange; 

.main{ 

width:200px; 

float:left;

padding-left:110px; 

background:black; 

}

.sub{

width:100px; 

float:left; 

margin:10px 0 10px -100px;

.nav, .sub{ 

border:1px dashed #000; 

height:300px; 

background: orange; 

.sub{ 

height:280px; 

}

效果如图所示:



10.form表单中method属性常用哪些值?他们的区别是什么?

<form action="action_page.php" method="GET">

或者

<form action="action_page.php" method="POST">

当用户在HTML表单中输入信息并提交之后,有两种方法将信息从浏览器传送到Web服务器,一种方法是通过URL,另外一种是在HTTP Request的body中。

主要区别如下:

GET:1.URL改变,在URL里显示HTML FROM参数的name/value值,2.只适合有少量参数的HTML Form,因为URL长度有字符限制,不能无限长,3.涉及安全性的信息,比如用户密码,不能用get,因为会在URL上显示,不安全。

POST:1.URL不改变,不在URL里显示HTML Form的数据,2.Form提交的信息没有长度限制,3.涉及安全性的信息,如用户密码,应该采用POST方式。


11.如何去掉ul>li结构中li前面的圆点?去除圆点后,每个li前面会有空余怎么解决?

list-style:none;

padding:0;

margin:0;


12.写出javascript语言typeof可能返回的结果?

string  number object function undefined boolean


13.已知数组

var arr = ["google","microsoft","oracle","阿里","freewheel","IBM","爱立信",“百度”,"企鹅","美团","去哪","58同城","新浪",“搜狐”,“大众点评“,”360“,”汽车之家“,”巨人网络“,”携程“,”同城“,”4399“,”凤凰网“,”人民网“]

如果你想进前十的公司,那就请用效率最高的方法将此数组按照顺序连接成字符。

arr.join("")

js中的join()方法用于把数组中的所有元素放入一个字符串,参数是指定要使用的分隔符,如果省略该参数,则使用逗号作为分隔符。

效率最慢的连接..应该就是var一个字符串自己for循环拼接了吧。


14.请写出Html,css,javascript注释的代码形式

html中的注释形式是:<!—   —>

css中的注释形式是:/*      */

js中的注释形式是://和/**/


15.请编写一段javascript脚本生成下面这段DOM结构,要求:使用标准的DOM方法或属性。

<div class="example">

    <p class="slogan">姬成,你最帅!</p>

</div>

使用标准的DOM写的话如下:

var Example = document.createElementByTagName('div');

varExample=document.createElement('div');

varP=document.createElement('p');

Example.className='example';

P.className='slogan';

Example.appendChild(P);

document.getElementsByTagName('body')[0].appendChild(Example);


16.要为一个html元素绑定一个事件,如点击事件,请写出一个兼容各个浏览器的事件绑定方法

window.onload=function() {

Main=document.getElementById('main');

if(Main.attachEvent) {

Main.attachEvent("onclick",function() {

alert('ie');

})

}else{

Main.addEventListener("click",function() {

alert('chrom');

})

}

}


17.简述call,和apply方法的用途,和区别?

改变this指向,call传递的是连续参数,apply传递的是数组参数。


18.请自己封装一个Ajax

function AJAX(json){

    if(json == null || typeof(json) != "object"){

return false;}

    var url = json.url,

        mathod = json.method,

        data = json.data,

        flag = json.flag,

        callback = json.callBack,

        xhr = null;

    if(window.XMLHttpRequest){

        xhr = new window.XMLHttpRequest();

    }else {

xhr = new ActiveXObject('Microsoft.XMLHTTP')

    }

    if(method == 'get'){

        url += '?' + data + new Date().getTime();

        xhr.open('get',url,flag);

    }else {

        xhr.open('post',url,flag);

    }

    xhr.onreadystatechange = function() {

        if(xhr.readyState === 4 && xhr.status === 200){

            callBack(xhr.responseText); 

            }

        }

        if(methos == 'get') {

            xhr.send(); 

        }else {

            xhr.setRequestHeader('Content-Type','application/x-www-form-urle');

            xhr.send(data);

        }

    }


19.为一个数组去重,eg:var arr = ['a','b',234,23,'a','b',3,1,234];(要求在原型链上编写方法可得满分)

Array.prototype.deletesame=function() {

var tmp=[];

for(var i = 0; i < this.length; i++)

if(tmp.length != 0) {

for(var j = 0;j < tmp.length; j++)

if(tmp[j] == this[i]) {

break;

}

if(j == tmp.length - 1 && tmp[j] != this[i]) {

tmp.push(this[i]);

}

}

}else{

tmp.push(this[i]);

}

}

return tmp;

}


20.如今有一个Ul,里面有十亿个Li,要求点击li触发事件,弹出对应的li的内容

var ul = document.getElementsByTagName('ul')[0];

ul.onclick=function(e) {

var event = e || window.event;

vartar = event.target || event.srcElement;

if(tar.tagName.toLowerCase()==="li")

alert(tar.innerText);

}

看到这个题,一般的思路是for循环,遍历一万次,这样的话一万次的循环,效率很低。这里就可以考虑利用事件冒泡特性来提高效率,主要是利用事件代理。

事件代理(Event Delegation),又称之为事件委托,是javascript种常用绑定事件的常用技巧。顾名思义,“事件代理”即是把原本需要绑定的事件委托给父元素,让父元素担当事件监听的职务。这么做的原因呢?众所周知,dom操作是十分消耗性能的,所以重复的事件绑定简直是性能杀手,而事件代理的核心思想,就是通过尽量少的绑定,去监听尽量多的事件。

另外就是event.target和event.srcElement的区别:

首先,event.srcElement和event.target都是指向触发事件的元素,它是什么就有什么样的属性。

IE浏览器支持window.event.srcElement,而firefox支持window.event.target。


21.如何阻止事件冒泡和事件默认事件

冒泡事件:即事件从最底层逐个经过上面一级级事件的过程,就是冒泡事件。在非IE浏览器中提供了一个事件对象stopPropagation,那么在IE浏览器中可以通过cancelBubble事件对象阻止。

默认事件:浏览器的默认事件就是浏览自己的行为,比如我们在点击<a href="#">的时候,浏览器跳转到指定页面,或者是当我们滚动鼠标时页面会向下滚动,但我们按空格键和按方向键时也会向下滚动,为了更好的用户体验,这时我们就需要阻止这种行为的发生。

阻止事件冒泡:

function stopBubble(e) {

    if(e && e.stopPropagation) {

        e.stopPropagation();

    }else {

        window.event.cancelBubble = true;

            }

    }

阻止浏览器的默认事件:

function stopDefault(e) {

    if(e && e.preventDefault) {

        e.preventDefault();

        }else {

                window.event.returnValue = false;

          }

    return false;

}


22.什么是DOM?

DOM的全称是Document Object Model,是一种用于HTML和XML文档的编程接口。


23.请利用javascript取非行间样式,要求兼容性各个浏览器

function getStyle(obj, attr)

{

if(obj.currentStyle)

{

return obj.currentStyle[attr];

}

else{

return getComputedStyle(obj, null)[attr];

}

}

element.style和getComputedStyle都可以获取元素的CSS样式,区别在于:

1.getComputedStyle方法是只读的,只能获取不能设置,而element.style能读能写。

2.getComputedStyle方法获取的是最终应用在元素上的所有CSS属性对象,即使没有CSS代码,也会把默认的祖宗八代都显示出来;而element.style只能获取元素的style属性中的CSS样式。

getComputedStyle和currentStyle都是只能获取属性,不能更改,但是二者兼容性不同。

getComputedStyle该属性兼容火狐谷歌,但不兼容IE

currentStyle该属性兼容IE,但不兼容火狐和谷歌。


24.运行test()和new test()的结果是什么?

var a = 5;

 function test() { 

    a = 0; 

    alert(a); 

    alert(this.a); 

    var a;

    alert(a); 

}

0,5,0

0,undefined,0


25.有字符串“aaabbbcccdddeeefgggaa”,转换成连续不重复的字符串,eg:abcdefga(提示:用正则做可得满分)

var reg = /(.)\1*/g;

var str = 'aaabbbcccdddeeefgggaa';

str.replace(reg,str);


26.一串连续的数字,请实现打点功能,如:已知1000000000转换成1.000.000.000。(提示:用正则做可得满分,其他方法酌情给分)

var reg = /(?=(\B)(\d{3})+$)/g;

str.replace(reg,'.');


27.写出运算结果

alert(typeof(a)); undefined

alert(typeof(undefined)); undefined

alert(typeof(NaN)); number

alert(typeof(null)); object

alert(typeof(NaN)); number

var a = "123abc"; 

alert(typeof(+a)); number

alert(typeof(!!a));boolean

 alert(typeof(a + "")); string

alert(1 == "1"); true

alert(NaN == NaN); false

alert(NaN == undefined); false

alert("11" + 11); 1111

alert(1 === "1"); false

alert(parseInt("123abc")); 123

var num = 123123.345789; 

alert(num.toFixed(3));123123.345


28.打印当前年月日时分

vardate=newDate()

console.log(date.getFullYear());

console.log(date.getMonth()+1);

console.log(date.getDate());

console.log(date.getHours());

console.log(date.getMinutes());

console.log(date.getSeconds());


29.在CSS中,font-size设置的是字体的高还是宽,单位px,em是相对值还是绝对值

高 ;相对


30.有HTML结构如下,求他们之间的距离。

<div style="background-color:red;margin:0 0 100px 0;">123</div>

<div style="background-color:red;margin:200px 0 0 0;">234</div>

200px


31.你了解js对象吗,可以简单说说自定义构造函数创建对象的原理吗?

var this = {} return this//隐式返回this

var this = Object.create(Person.prototype)return this;//显式返回


32.你了解原型链吗?请写出一种原型链实现继承的方式

圣杯模式


33.使用javascript深度克隆一个对象(在原型链上编写可得满分)

Array.prototype.deepCopy=function (tar){

    var tar= tar|| {} ;

    for (var prop in this){

    if (typeof (this[prop]) == 'object'){

    tar[prop] = (this[prop].constructor === Array ) ? [] : {};

    this[prop].deepCopy(tar[prop]);

    }else {

    tar[prop] = this[prop];

    }

    }

    return tar;

}


34.描述一下预编译的过程

1.创建AO对象。

2.寻找形参和变量声明,将变量和形参作为AO对象的属性名添加到对象中,值为undefined。值得注意的是,函数声明不叫变量。

3.将实参值和形参值相统一。

4.在函数体里面寻找函数声明,将函数名作为属性名,值为这个函数的函数体。


35.请介绍一下js语言的特点

js语言是一种解释性的单线程的脚本语言


36.请介绍一下主流浏览器以及他们相应的内核,请介绍一下浏览器分为哪几个部分,内核呢?

IE    trident

Chrome  webkit/blink

Safari    webkit Firefox

Gecko Opera   presto

浏览器器分shell和内核内核分渲染引擎和js引擎


37.你了解js时间线嘛,能简单描述一下

1.创建document。document.readyState = ‘loading’;

2.解析script(⽆无defer async)阻塞执⾏行行

3.async异步加载,加载完执⾏行行

4.defer异步加载

5.遇到img等标签,解析dom结构,然后加载src内容

6.dom解析完毕,document.readyState = ‘interactive’;

7.按顺序执⾏行行defer脚本

8.dom触发DOMContentLoaded事件,由同步脚本阶段,转变为异步事件监听阶段

9.async下载并执⾏行行完,img的src等都下载完,触发document.readyState = ‘complete’;window触发load事件


38.请写出异步加载Js的几种方案

defer async function asyncLoaded(url, callback)

{    var script = document.createElement('script');

script.type = "text/javascript";

if(script.readyState) {//IE

script.onreadystatechange = function () {

if(readyState == "loaded" || readyState == "complete") {

script.onreadystatechange = null;

callback();

}

}

}else{//Chrome Safari Opera Firefox

script.onload = function () {

callback();

}

}

script.src = url;

document.head.appendChild(script);

}


39.

var a = (10 * 3 - 4 / 2 + 1) % 2; 1

       b = 3; 3

       b %= a + 3; 3

       console.log(a++); 2

        console.log(--b);2

1 2


40.

<ul>

    <li>a</li>

    <li>a</li>

    <li>a</li>

    <li>a</li>

</ul>

使用原生的Js,addEventListener,给每个li元素绑定事件,输出他们的顺序。()

var li=document.getElementsByTagName('li');

for (var i = 0; i < li.length; i++) {

li[i].addEventListener('click',function (e) {

console.log(this.innerText);

})

}


41.一个字符串由[a-z]组成,找出第一个只出现一次的字母

vars='aabbccbdcjjm';

functionfindfirst(str) {

varlist=newArray();

for(vari=0;i

for(j=i+1;j

if(str[i]==str[j]) {

if(!find(list,str[i])){

list.push(str[i]);

}

break;

}

}

if(j==str.length) {

if(!find(list,str[i]))

{

returnstr[i];

}

}

}

}

functionfind(str,tar) {

for(vari=0;i

if(str[i]==tar)

{

returntrue;//有

}

}

returnfalse;//没有

}

console.log(findfirst(s));


42.

var name = "222";

var a = {

    name:"111",

    say:function(){

            console.log(this.name);

        }

    }

    var fun = a.say;

    fun();

    a.say();

    var b = {

        name:"333",

         say:function(fun) {

                    fun();

                }

        b.say(a.say);

        b.say = a.say;

        b.say();

写出控制台的打印结果

222  111  222  333


43.

var str = "你成哥很帅";

str.length = 3;

console.log(str);

此程序执行结果为?为什么?

“你成哥很帅”

字符串的长度不能修改


44.请用多种方法创建对象

第一种,简单对象的创建,使用对象字面量的方式{},例如var Cat  = {}; Cat.name = "kitty"...添加属性

第二种,用function来模拟class,new defined();

例如:

function Pet(name, age, hobby){

    this.name = name;

    this.age = age;

    this.hobby = hobby;

}

var maidou = new Pet("麦兜",“5”,“睡觉”);//实例化来创建对象

第三种,使用工厂方式来创建,new Object(),例如:var Dog = new Object();Dog.name="white"..

第四种,使用原型对象的方式,例如:

function Dog() {

}

Dog.prototype.name = "旺财";

Dog.prototype.eat = function() {

    alert(this.name + "是个吃货~");

}

第五种,混合模型(原型和构造函数),例如:

funtcion Car(name, price) {

    this.name = name;

    this.price = price;

}

Car.prototype.sell = function() {

    alert("我是"+this.name+",我现在卖"+this.price+"万元");

}

var camry = new Car("凯美瑞",27);

第六种,动态原型的方式,例如:

function Car(name, price) {

this.name = name;

this.price = price;

if(typeof Car.sell == "undefined"){

Car.prototype.sell = function() {

alert("我是"+this.name+",我现在卖"+this.price+“万元”);

}

Car.sell = true;

}

}

var camry = new Car("凯美瑞",27);


45.在企业中,多人开发同一js文件,常会导致污染全局变量的事情发生,为有效的解决这种情况,你有什么好的建议吗?

一、定义全局变量命名空间

只创建一个全局变量,并定义该变量为当前应用容器,把其他全局变量追加在该命名空间下。例如:

var my = {};

my.name = {

big_name:"张三",

small_name:"李四"

};

my.work = {

school_work:"study",

family_work:"we are"

};

二、利用匿名函数将脚本包裹起来,例如:

(function() {

var exp = {};//定义一个exp包

var name = "哈喽";//临时变量

exp.method = function() {//临时方法

return name;

};

window.ex = exp;//把exp包挂在window.ex下

})();

当离开了这个函数域之后,局部变量和函数被销毁,exp定义的东西通通挂到了变量window.ex下,从而减少了很多污染,避免了不必要的冲突。


46.如何枚举一个对象中的所有自然属性,请写出具体代码。


for..in循环可以遍历对象中所有可枚举的对象属性(包括对象自有属性和继承的属性),不过需要注意的是,使用for...in循环遍历对象属性时返回的属性会因为各个浏览器不同导致对象属性遍历的顺序有可能不是当初构建时的顺序。如果只需要获取对象的实例属性(跳过继承属性),可以使用hasOwnProperty()进行过滤。例如:

varDog={

name:'Taidy',

age:2,

sex:'female',

color:'white'

}

for(prop in Dog){

if(Dog.hasOwnProperty(prop))

console.log(prop);

}

ojbect.keys(),返回一个由给定对象的所有可枚举自身属性的属性名组成的数组,数组中属性名的排列顺序和使用for...in循环遍历该对象时返回的顺序一致,两者最大的区别在于for...in还会遍历出一个对象从其原型链上继承到的可枚举属性。例如:

varDog={

name:'Taidy',

age:2,

sex:'female',

color:'white'

}

console.log(Object.keys(Dog));


47.让一个数组里面的数据,从小到大排列,var arr = [23,4,6,7,2,2,5,55,8]

var arr = [23,4,6,7,2,2,55,8];

function number(a,b) {

return a-b;

}

arr.sort(number);


48.es5的严格模式如何使用,使用时应注意写什么。

“use strict”声明必须放在第一行


49.选择html元素节点的集中方法,以及他们各自的兼容性问题及特点

getElementById();

getElementsByName();

getElementsByClassName(); ie8及以下不兼容

getElementsByTagName();

querySelectorAll();非实时ie7及以下不兼容

querySelector();非实时ie7及以下不兼容


50.请说出,节点类型的值为1,3,8,9的值对应的节点是什么

元素节点 ,文本节点,comment节点,document节点


51.请说出,鼠标事件的触发顺序,以及如何实现右键的事件监听

onmousedown,onmouseup,click

监听mousedown,判断button==2


52.数据格式JSON转换为字符串,以及把字符串转换为JSON的方法

JSON.stringify()  json — > string

JSON.parse()    string — > json


53.请说出几种你所熟悉的BOM对象,并介绍其一点或两点功能


1.window对象,它表示整个浏览器窗口,主要用来操作浏览器窗口,对窗口的操作主要是对坐标的调整。常用方法有:1)相对操作:moveBy——移动,resizeBy——调整大小,2)绝对操作:moveTo,resizeTo

2.location对象,它是window对象和document对象的属性,用来分析和设置页面的URL地址。

3.navigator对象,被认为是最重要的对象,它包含了一系列浏览器信息的属性,userAgent是最常用的属性,用来完成浏览器判断。

4.screen对象,主要是用来获取用户的屏幕信息。


54.请详细说明Position定位的值有什么区别,如果有不能兼容的问题,怎么解决?

相对于谁定位

是否脱离原来的位置

fixed ie6不兼容

解决方法:用js让元素的位置

高度等于滚动条滚过的长度+屏幕高度

宽度等于屏幕宽度


55.

56.请说出你所熟悉的选择的优先级关系(写权重,满分)

!important     无穷大

style                 1000

id                       100

class/attr/伪类      10

标签/伪元素           1

通配符                   0


57.请说出display的值及含义

block  块级  占满整行  可以改变宽高

inline   行级/内联/行内  内容决定占位,不可以改变宽高

inlie-block  行级块   内容决定占位,可以改变宽高


58.写一个输入框,带有js功能,鼠标聚集提示信息消失,失去焦点显示提示信息

<input type="text" value="请输入关键字" style="color=‘#999’" onfocuse="if(this.value == "请输入关键字") {this.value='';this.style.color='black';}" onblur="if(this.value == '') {this.value="请输入关键字";this.style.color='#999';}">


59.

function fn(a, b) {

    arguments[0] = 1;

    console.log(a);

}

fn(2,1);

写出打印结果,并说明原因

1,arguments和实参的值是绑定的,改变arguments里面的值实际上也是改变实参值。


60.请将如下变量名转换为小驼峰式

my-first-name ——> myFirstName

var str = "my-first-name";

答案:

var reg = /-(\w)/g

str.replace(reg, function($,$1) { return $1.toUpperCase();})


61.请将形如aaaabbbb的字符串调换成bbbbaaaa的形式(采用正则做)

var str = "aaaabbbb";

var reg = /(\w)\1*(\w)\2*/gi;

console.log(str.replace(reg,"$2$2$2$2$1$1$1$1"));


62.说说你曾经做过的一个项目,写写心得体会,和整个项目的思维过程。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,697评论 2 17
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,045评论 1 10
  • 前端开发面试题 <a name='preface'>前言</a> 只看问题点这里 看全部问题和答案点这里 本文由我...
    自you是敏感词阅读 746评论 0 3
  • 要说感恩,我最应该感谢的应该是我的外公外婆。 小时候父母忙,小学之前都外公外婆带的我。外公是个内外兼攻的医生,母亲...
    漠翊阅读 349评论 0 1
  • 我最舍不得伤害的人,我每天无时无刻都在担心着他,但是我们永远都无法在一起,没有人教我怎么做,我也无法向别人解释,我...
    kishi1023阅读 502评论 0 1