JavaScript高级(2)

JavaScript高级(2)

函数的其他成员

  • arguments
    • 实参集合
  • caller
    • 函数的调用者
  • length
    • 形参的个数
  • name
    • 函数的名称
function fn(x, y, z) {
  console.log(fn.length) // => 形参的个数
  console.log(arguments) // 伪数组实参参数集合
  console.log(arguments.callee === fn) // 函数本身
  console.log(fn.caller) // 函数的调用者
  console.log(fn.name) // => 函数的名字
}

function f() {
  fn(10, 20, 30)
}

f()

高阶函数

  • 函数可以作为参数
  • 函数可以作为返回值

作为参数

function eat (callback) {
  setTimeout(function () {
    console.log('吃完了')
    callback()
  }, 1000)
}

eat(function () {
  console.log('去唱歌')
})

作为返回值

function genFun (type) {
  return function (obj) {
    return Object.prototype.toString.call(obj) === type
  }
}

var isArray = genFun('[object Array]')
var isObject = genFun('[object Object]')

console.log(isArray([])) // => true
console.log(isArray({})) // => true

函数闭包

function fn () {
  var count = 0
  return {
    getCount: function () {
      console.log(count)
    },
    setCount: function () {
      count++
    }
  }
}

var fns = fn()

fns.getCount() // => 0
fns.setCount()
fns.getCount() // => 1

作用域、作用域链、预解析

  • 全局作用域
  • 函数作用域
  • 没有块级作用域
{
  var foo = 'bar'
}

console.log(foo)

if (true) {
  var a = 123
}
console.log(a)

作用域链示例代码:

var a = 10

function fn () {
  var b = 20

  function fn1 () {
    var c = 30
    console.log(a + b + c)
  }

  function fn2 () {
    var d = 40
    console.log(c + d)
  }

  fn1()
  fn2()
}
  • 内层作用域可以访问外层作用域,反之不行。

闭包

闭包就是能够读取其他函数内部变量的函数,
由于在JavaScript语言中,只有函数内部的子函数才能读取局部变量,
由此可以把闭包简单成“定义在一个函数内部的函数”。
所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

闭包的用途

  • 可以在函数外部读取函数内部成员
  • 让函数内成员始终存活在内存中

一些关于闭包的例子

var arr = [10, 20, 30]
for(var i = 0; i < arr.length; i++) {
  arr[i] = function () {
    console.log(i)
  }
}

函数递归

递归执行模型

function fn1 () {
  console.log(111)
  fn2()
  console.log('fn1')
}

function fn2 () {
  console.log(222)
  fn3()
  console.log('fn2')
}

function fn3 () {
  console.log(333)
  fn4()
  console.log('fn3')
}

function fn4 () {
  console.log(444)
  console.log('fn4')
}

fn1()

计算阶乘的递归函数

function factorial (num) {
  if (num <= 1) {
    return 1
  } else {
    return num * factorial(num - 1)
  }
}

递归应用场景

  • 深拷贝

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <script>
    // 深拷贝
    var obj1 = {
      name: 'zs',
      age: 18,
      sex: '男',
      dog: {
        name: '金毛',
        age: 2
      },
      friends: ['ls', 'ww']
    }

    // 深拷贝  把o1的成员拷贝给o2
    function deepCopy(o1, o2) {
      for (var key in o1) {
        // 获取key属性对应的值
        var item = o1[key];

        // 如果item 是对象?
        // var o = {}
        if (item instanceof Object) {
          // var o = {};
          o2[key] = {}; 
          deepCopy(item, o2[key]);
        } else if (item instanceof Array) {
          // 如果item 是数组呢?
          // var arr = [];
          o2[key] = [];
          deepCopy(item, o2[key]);
        } else {
          // 如果是简单类型
          o2[key] = o1[key];
        }
      }
    }


    var obj2 = {};

    deepCopy(obj1, obj2);

    // 修改obj1中的成员 是否会影响obj2?
    obj1.dog.name = 'xxx';
    obj1.friends[0] = 'xxx';

    console.dir(obj2);
  </script>
</body>
</html>
  • 遍历DOM树

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>遍历DOM树</title>
</head>
<body>
  <h1>遍历 DOM 树</h1>
  <p style="color: green;">Tip: 可以在遍历的回调函数中任意定制需求</p>
  <div>
    <ul id="list">
      <li>123</li>
      <li>456</li>
      <li>789</li>
    </ul>
    <div>
      <div>
        <span>haha</span>
      </div>
    </div>
  </div>
  <div id="demo_node">
    <ul>
      <li>123</li>
    </ul>
    <p>hello</p>
    <h2>world</h2>
    <div>
      <p>dsa</p>
      <h3>
        <span>dsads</span>
      </h3>
    </div>
  </div>
  <script>
    // 遍历指定元素下所有的子元素
    function loadTree(parent, callback) {
      for (var i = 0; i < parent.children.length; i++) {
        // 遍历第一级子元素
        var child = parent.children[i];
        // console.log(child);
        if (callback) {
          // 处理找到的子元素
          callback(child);
        }

        // 递归调用
        loadTree(child);
      }
    }

    var ul = document.getElementById('list');
    loadTree(ul, function (element) {
      element.onclick = function () {
        console.log(this.innerText);
      }
    });
  </script>
</body>
</html>

正则表达式

  • 了解正则表达式基本语法
  • 能够使用JavaScript的正则对象

正则表达式简介

正则表达式的作用

1.给定的字符串是否符合正则表达式的过滤逻辑(匹配)
2.可以通过正则表达式,从字符串中获取我们想要的特定部分(提取)
3.强大的字符串替换能力(替换)

正则表达式的特点

1.灵活性、逻辑性和功能性非常的强
2.可以迅速地用极简单的方式达到字符串的复杂控制
3.对于刚接触的人来说,比较晦涩难懂

正则表达式的测试

在线测试正则

正则表达式的组成

  • 普通字符abc 123
  • 特殊字符(元字符):正则表达式中有特殊意义的字符\d \w

常用元字符

元字符说明
\d匹配数字
\D匹配任意非数字的字符
\w匹配字母或数字或下划线
\W匹配任意不是字母,数字,下划线
\s匹配任意的空白符
\S匹配任意不是空白符的字符
.匹配除换行符以外的任意单个字符
^表示匹配行首的文本(以谁开始)
$表示匹配行尾的文本(以谁结束)

限定符

限定符说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

其他
[] 字符串用中括号括起来,表示匹配其中的任一字符,相当于或的意思
[^] 匹配除中括号以内的内容
\ 转义符
| 或者,选择两者中的一个。注意|将左右两边分为两部分,而不管左右两边有多长多乱
() 从两个直接量中选择一个,分组
eg:gr(a|e)y匹配gray和grey
[\u4e00-\u9fa5] 匹配汉字

验证手机号:

^\d{11}$

验证邮编:

^\d{6}$

验证日期 2012-5-01

^\d{4}-\d{1,2}-\d{1,2}$

验证邮箱 xxx@itcast.cn:

^\w+@\w+\.\w+$

验证IP地址 192.168.1.10

^\d{1,3}\(.\d{1,3}){3}$

JavaScript 中使用正则表达式

创建正则对象

方式1:

var reg = new RegExp('\d', 'i');
var reg = new RegExp('\d', 'gi');

方式2:

var reg = /\d/i;
var reg = /\d/gi;

参数

标志说明
i忽略大小写
g全局匹配
gi全局匹配+忽略大小写

正则匹配

// 匹配日期
var dateStr = '2015-10-10';
var reg = /^\d{4}-\d{1,2}-\d{1,2}$/
console.log(reg.test(dateStr));

正则提取

// 1. 提取工资
var str = "张三:1000,李四:5000,王五:8000。";
var array = str.match(/\d+/g);
console.log(array);

// 2. 提取email地址
var str = "123123@xx.com,fangfang@valuedopinions.cn 286669312@qq.com 2、emailenglish@emailenglish.englishtown.com 286669312@qq.com...";
var array = str.match(/\w+@\w+\.\w+(\.\w+)?/g);
console.log(array);

// 3. 分组提取  
// 3. 提取日期中的年部分  2015-5-10
var dateStr = '2016-1-5';
// 正则表达式中的()作为分组来使用,获取分组匹配到的结果用Regex.$1 $2 $3....来获取
var reg = /(\d{4})-\d{1,2}-\d{1,2}/;
if (reg.test(dateStr)) {
  console.log(RegExp.$1);
}

// 4. 提取邮件中的每一部分
var reg = /(\w+)@(\w+)\.(\w+)(\.\w+)?/;
var str = "123123@xx.com";
if (reg.test(str)) {
  console.log(RegExp.$1);
  console.log(RegExp.$2);
  console.log(RegExp.$3);
}

正则替换

// 1. 替换所有空白
var str = "   123AD  asadf   asadfasf  adf ";
str = str.replace(/\s/g,"xx");
console.log(str);

// 2. 替换所有,|,
var str = "abc,efg,123,abc,123,a";
str = str.replace(/,|,/g, ".");
console.log(str);

案例:验证表单

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>表单验证</title>
</head>

<body>
    <label for="txtQQ">QQ号:<input type="text" id="txtQQ"><span></span></label><br>
    <label for="txtEmail">邮箱:<input type="text" id="txtEmail"><span></span></label><br>
    <label for="txtPhone">手机:<input type="text" id="txtPhone"><span></span></label><br>
    <label for="txtBirth">生日:<input type="text" id="txtBirth"><span></span></label><br>
    <label for="txtName">姓名:<input type="text" id="txtName"><span></span></label><br>
    <script>
        // 1.验证QQ号
        addCheck('txtQQ', /^\d{5,12}$/, '请输入正确的QQ号格式');
        addCheck('txtEmail', /^\w+@\w+(\.\w+)+$/, '请输入正确的邮箱格式');
        addCheck('txtPhone', /^[1-9]\d{10}$/, '请输入正确的手机号格式');
        addCheck('txtBirth', /^\d{4}-\d{1,2}-\d{1,2}$/, '请输入正确的日期格式');
        addCheck('txtName', /^[\u4e00-\u9fa5]{0,}$/, '请输入2-4个汉字');

        // 文本框的验证封装成一个函数
        // 第一个参数是元素的id
        // 第二个参数 正则表达式对象 RegExp
        // 第三个参数 是提示的文本
        function addCheck(elementId, reg, tip) {
            var element = document.getElementById(elementId);
            element.onblur = function () {
                var span = this.nextElementSibling;
                // 验证
                if (!reg.test(this.value)) {
                    span.innerText = tip;
                    span.style.color = 'red';
                } else {
                    span.innerText = '';
                    span.style.color = '';
                }
            }
        }

        // onchange 改变
    //     var txtQQ = document.getElementById('txtQQ');
    //     // txtQQ.onchange = function () {
    //     //     console.log("111");
    //     // }
    //     // 当光标离开文本框的时候
    //     txtQQ.onblur = function () {
    //         // 验证用户的输入是否是QQ号
    //         var reg = /^\d{5,12}$/;
    //         var span = this.nextElementSibling;
    //         // 检测输入的文本是否匹配指定的模式(正则表达式)
    //         if (!reg.test(this.value)) {
    //             //  不匹配 在文本框后面的span中进行相应的提示

    //             span.innerText = '请输入正确的QQ格式';
    //             span.style.color = 'red';
    //         } else {
    //             // 匹配
    //             span.innerText = '';
    //             span.style.color = '';
    //         }
    //     }
    </script>
</body>

</html>

这篇文章有 156 个评论

  1. sikis izle

    Thanks a lot for the blog post. Much thanks again. Really Cool. Joan Ev Gonroff

  2. sikis izle

    Great article. I am dealing with many of these issues as well.. Aeriel Kilian Madian

  3. sikis izle

    This blog was how do I say it? Relevant!! Finally I ave found something which helped me. Thanks a lot. Junina Gabriel Zipnick

  4. erotik

    You can subscribe for a month, wallet is NOT secure. Stefa Alastair Launce

  5. erotik

    Im grateful for the blog article. Really thank you! Keep writing. Eliza Haroun Alby

  6. sikis izle

    I cannot thank you enough for the post. Really looking forward to read more. Will read on… Bobbie Cammy Balf

  7. sikis izle

    Way cool! Some very valid points! I appreciate you penning this article and the rest of the site is very good. Eliza Mikey Montague

  8. erotik izle

    Way cool! Some extremely valid points! I appreciate you penning this post plus the rest of the site is also very good. Ruthy Robby Talley

  9. sikis izle

    I visited many websites however the audio feature for audio songs current at this site is really fabulous. Gert Gaston Anstus

  10. erotik

    Hello There. I found youyr blog using msn. This is a really welpl written article. Ame Emory Catlin

  11. erotik

    You made some nice points there. I did a search on the topic and found most guys will go along with with your site. Nanette Bret Goeger

  12. erotik

    Wow! At last I got a web site from where I be capable of really take valuable information concerning my study and knowledge. Sybil Douglass Erik

  13. sikis izle

    This paragraph will help the internet visitors for setting up new webpage or even a blog from start to end. Paulie Michele Norrie

  14. erotik

    Perfectly indited content , regards for entropy. Bette Huey Flemings

  15. erotik izle

    Some truly prize content on this web site , saved to my bookmarks . Bonnibelle Morlee Timi

  16. erotik

    Valuable info. Fortunate me I found your website by accident, and I am shocked why this coincidence did not took place in advance! I bookmarked it. Jacinthe Phillipp O’Shee

  17. sikis izle

    I think you have remarked some very interesting points , regards for the post. Lynnette Aurthur Egon

  18. sikis izle

    The dustbins remain empty, and rather than it, floors becomes busy with parcels of nourishments what not. Renee Any Pronty

  19. sikis izle

    I was looking through some of your blog posts on this website and I believe this web site is rattling informative ! Keep on putting up. Yolande Jess Bergwall

  20. sikis izle

    Hello, just wanted to mention, I liked this blog post. Lana Bronson Anatol

  21. film

    Your article has proven useful to me. I have been looking everywhere for this! Thanks for writing this. Some nice points there. Yalonda Raff Caryn

  22. film

    Hi there, I desire to subscribe for this web site to get most recent updates, therefore where can i do it please help out. Winnah Alaster Rayburn

  23. film

    Our company are actually will rapidly and also efficiently generate a warranty High-end restoration New York. Estrellita Heall Noelle

  24. film

    Just wanna admit that this is handy, Thanks for taking your time to write this. Maddi Kipp Zalucki

  25. film

    Wow! At last I got a weblog from where I be able to genuinely take useful facts concerning my study and knowledge. Allx Lauritz Aires

  26. film

    Some truly prize blog posts on this internet site , saved to my bookmarks . Juditha Kenon Bradlee

  27. sikis izle

    Many thanks really useful. Will certainly share website with my good friends. Michele Ivor Recha

  28. film

    Really enjoyed this article. Really thank you! Keep writing. Gaye Dov Raddy

  29. film

    You made some nice points there. I looked on the internet for the issue and found most people will approve with your blog. Martita Patton LaSorella

  30. film

    What a stuff of un-ambiguity and preserveness of precious knowledge concerning unexpected emotions. Angelina Frannie Eppie

  31. film

    Thanks again for the article post. Really looking forward to read more. Cool. Emmalynne Derwin McAllister

  32. erotik izle

    If you wish for to improve your knowledge simply keep visiting this website and be updated with the newest news update posted here. Darci Alexei Frager

  33. erotik

    This is my first time pay a quick visit at here and i am really pleassant to read all at alone place. Doralynne Dani Wyndham

  34. porno

    Way cool! Some very valid points! I appreciate you writing this post plus the rest of the website is really good. Jessa Tobit Anjela

  35. erotik izle

    Great work! That is the type of information that should be shared around the internet. Quintilla Friedrich Edveh

  36. porno

    I am actually grateful to the owner of this site who has shared this impressive article at here. Shirleen Francisco Tengdin

  37. erotik izle

    I am sure this piece of writing has touched all the internet viewers, its really really nice article on building up new website. Brenda Darn Sherlock

  38. sikis izle

    My family members always say that I am killing my time here at web, except I know I am getting know-how daily by reading thes pleasant articles. Hestia Chick Josy

  39. erotik izle

    Just wanna tell that this is extremely helpful, Thanks for taking your time to write this. Krystal Gregor Wistrup

  40. sikis izle

    Hi mates, how is everything, and what you would like to say regarding this piece of writing, in my view its really remarkable for me. Viviene Karlan Terrilyn

  41. erotik izle

    I enjoy the efforts you have put in this, thank you for all the great posts. Carolyne Hunfredo Oreste

  42. sikis izle

    At this point, Arthur might as well accept the invitation and get the drought in his pants taken cared off. Kiele Cornelius Ziegler

  43. erotik izle

    Fantastic blog article. Really looking forward to read more. Want more. Nelli Weber Gregorio

  44. türkçe izle

    Well I definitely liked reading it. This tip procured by you is very helpful for good planning. Zita Cosmo Nikolai

  45. türkçe izle

    I have recently started a website, the information you offer on this site has helped me greatly. Thank you for all of your time & work. Margaretta Yank Ludwog

  46. ‎1080p film izle

    Very neat article.Really looking forward to read more. Fantastic. Lou Teague

  47. Luz Vacations

    Hurrah! Finally I got a blog from where I be capable of in fact
    get useful data regarding my study and knowledge.

  48. 원엑스벳

    I like it when people come together and share opinions.
    Great blog, continue the good work!

  49. 바카라사이트추천

    This website truly has all the information and facts I needed
    concerning this subject and didn’t know who to ask.

  50. 라이브베팅

    Hello, Neat post. There is a problem along with your website in web explorer, might check this?
    IE nonetheless is the marketplace leader and a large element
    of people will omit your great writing due to this problem.

  51. 파워사다리

    An impressive share! I have just forwarded this onto a coworker who was conducting a little
    research on this. And he in fact ordered me dinner simply because I discovered it
    for him… lol. So allow me to reword this…. Thanks for the meal!!
    But yeah, thanks for spending some time to discuss this topic here on your site.

  52. Streaming Hentai Online Free

    Hmm is anyone else experiencing problems with the images on this blog loading?
    I’m trying to find out if its a problem on my end or if it’s the blog.
    Any suggestions would be greatly appreciated.

  53. Algarve Holidays

    I’m really enjoying the design and layout of your blog.
    It’s a very easy on the eyes which makes it much more pleasant for me to come here and visit
    more often. Did you hire out a developer to create your theme?
    Exceptional work!

  54. güvenilir casino siteleri

    I do agree with all of the ideas you’ve presented in your post. They are very convincing and will certainly work. Still, the posts are too short for starters. Could you please extend them a bit from next time? Thanks for the post. Tawny Fasula

  55. 유로247

    Hey very cool site!! Guy .. Beautiful .. Wonderful .. I’ll bookmark your
    web site and take the feeds also? I’m happy to seek out a lot of useful information here in the put up, we’d like develop
    extra strategies in this regard, thank you for sharing.
    . . . . .

  56. sex

    Good post. I learn something new and challenging on blogs I stumbleupon everyday.
    It’s always helpful to read through articles from other writers and use something from other
    web sites.

  57. 바카라사이트추천

    If some one wants expert view on the topic of running a blog then i advise him/her to go to
    see this weblog, Keep up the nice job.

  58. 카지노사이트

    Whoa! This blog looks exactly like my old one! It’s on a entirely different topic but it has pretty much the same page layout and design. Outstanding choice of colors!

  59. 바카라사이트

    Hello everyone, it’s my first go to see at this web page,
    and piece of writing is actually fruitful designed for
    me, keep up posting such content.

  60. 에그벳주소

    Why users still make use of to read news papers when in this technological world all is
    available on web?

  61. 바카라사이트

    With havin so much written content do you ever run into
    any problems of plagorism or copyright violation? My site
    has a lot of unique content I’ve either authored myself or outsourced but it appears a lot of it is popping it up
    all over the web without my permission. Do you know any ways to help protect against content from being ripped off?
    I’d truly appreciate it.

  62. 바카라

    I think this is one of the most vital information for me.
    And i’m glad reading your article. But wanna remark on few general things, The website style is great, the
    articles is really great : D. Good job, cheers

  63. 온라인카지노

    Ahaa, its good discussion concerning this post at this place at this
    blog, I have read all that, so at this time me also commenting here.

  64. 온라인키자노

    If you desire to take much from this article then you have to apply these
    methods to your won web site.

  65. 유로247

    Whoa! This blog looks just like my old one! It’s
    on a entirely different subject but it has pretty much the same layout and design. Outstanding choice of colors!

  66. filmi izle

    Really appreciate you sharing this blog post.Much thanks again. Fantastic. Queen Henagan

  67. 피나클

    Definitely believe that which you said. Your favorite
    reason seemed to be on the web the easiest thing to be aware of.
    I say to you, I definitely get annoyed while people think about
    worries that they just do not know about. You managed to hit the
    nail upon the top and defined out the whole thing without
    having side-effects , people could take a signal. Will likely be back to
    get more. Thanks

  68. หวย

    Excellent web site you’ve got here.. It’s difficult to find good quality writing
    like yours these days. I seriously appreciate individuals like you!
    Take care!!

  69. 에그벳주소

    Great post however I was wanting to know if you
    could write a litte more on this topic? I’d be
    very grateful if you could elaborate a little bit more.
    Thanks!

  70. 스핀카지노

    I’m not sure why but this weblog is loading very slow for
    me. Is anyone else having this issue or is it a problem
    on my end? I’ll check back later on and see if the
    problem still exists.

  71. 카지노사이트

    Hey I know this is off topic but I was wondering if you knew of any widgets I could add to my blog that automatically tweet my newest twitter updates.
    I’ve been looking for a plug-in like this for quite some time and
    was hoping maybe you would have some experience with
    something like this. Please let me know if you run into anything.
    I truly enjoy reading your blog and I look forward to your new updates.

  72. 온라인바카라

    Hi! I could have sworn I’ve been to this site
    before but after browsing through a few of the
    posts I realized it’s new to me. Nonetheless, I’m certainly delighted I
    came across it and I’ll be book-marking it and checking back frequently!

  73. 카지노사이트

    Hello there, I found your site by the use of Google even as looking for a
    related topic, your website came up, it appears to be like good.

    I have bookmarked it in my google bookmarks.
    Hello there, just changed into alert to your weblog via Google, and found that it is truly informative.
    I am going to be careful for brussels. I’ll appreciate when you proceed this in future.

    Many folks shall be benefited from your writing. Cheers!

  74. 에그벳

    Greetings! I know this is somewhat off topic but I was wondering if you knew where I could get a captcha plugin for my comment form?
    I’m using the same blog platform as yours and I’m having difficulty finding one?
    Thanks a lot!

  75. 유로88

    Appreciate the recommendation. Will try it out.

  76. Colourhill

    Hello there! Do you use Twitter? I’d like to follow you
    if that would be ok. I’m definitely enjoying your blog and look forward to new posts.

  77. 카지노사이트

    This website certainly has all the information I needed concerning this subject and didn’t know
    who to ask.

  78. sex

    It’s a shame you don’t have a donate button! I’d certainly
    donate to this outstanding blog! I guess for now i’ll settle for bookmarking and
    adding your RSS feed to my Google account. I look forward to new updates and will talk
    about this website with my Facebook group.
    Chat soon!

  79. imperméabilisation toitures

    Thank you for posting this awesome article. I’m a long time reader but I’ve never been compelled to leave
    a comment. I subscribed to your blog and shared
    this on my Facebook. Thanks again for a great article!

  80. 에그벳주소

    Great blog! Is your theme custom made or did you download it from somewhere?
    A theme like yours with a few simple tweeks would really make my blog stand out.
    Please let me know where you got your design. Bless you

  81. filmi full izle

    Major thanks for the article.Thanks Again. Will read on… Keith Waterston

  82. 온라인카지노사이트

    Tremendous things here. I’m very happy to peer your post.
    Thanks so much and I am having a look forward to touch you.
    Will you kindly drop me a e-mail?

  83. 바카라사이트

    It is not my first time to visit this website, i am browsing this website dailly and get pleasant information from here every day.

  84. soin du visage

    Hi, I check your blogs like every week. Your humoristic style
    is awesome, keep up the good work!

  85. Algarve Holidays

    I like reading an article that can make men and women think.

    Also, thanks for allowing for me to comment!

  86. livre personnalisé enfant

    Hello there, I discovered your site by way of Google while looking for a similar matter, your site got here up,
    it appears to be like great. I have bookmarked it in my google bookmarks.

    Hello there, just turned into alert to your weblog via Google, and located
    that it’s really informative. I am gonna be careful
    for brussels. I will appreciate when you continue this in future.
    Lots of people will probably be benefited from your writing.
    Cheers!

  87. Bradley

    Hi, its pleasant article concerning media print, we all be aware of media is a wonderful source of data.

  88. raymon mckinzie

    Hello! I could have sworn I’ve been to this blog before but after browsing through some of the post I realized it’s new to me. Anyways, I’m definitely happy I found it and I’ll be book-marking and checking back frequently!

  89. 온라인바카라

    naturally like your website however you need to take a look
    at the spelling on quite a few of your posts. Many of them are rife with spelling problems and I find it very troublesome to tell the truth
    however I will definitely come again again.

  90. 온라인토토사이트

    Great goods from you, man. I have understand your stuff previous
    to and you’re simply extremely wonderful. I actually like what you have acquired here, really like what you’re saying and the way in which in which you say it.

    You are making it entertaining and you continue to
    take care of to keep it sensible. I can’t wait to read much more
    from you. That is actually a terrific website.

  91. 피나클

    You really make it seem so easy with your presentation but I
    find this matter to be actually something which I think I
    would never understand. It seems too complicated and very broad
    for me. I am looking forward for your next post,
    I will try to get the hang of it!

  92. daphne jonason

    You made some nice points there. I looked on the internet for the subject matter and found most individuals will agree with your site.

  93. 슬롯머신사이트

    WOW just what I was searching for. Came here by searching for 온라인슬롯사이트

  94. 바카라사이트추천

    Wow, wonderful blog layout! How long have you been blogging for?

    you make blogging look easy. The overall look of your site is magnificent, as well as the content!

  95. sex

    Pretty section of content. I just stumbled upon your site and in accession capital to assert that
    I acquire actually enjoyed account your blog posts. Anyway I will be subscribing
    to your augment and even I achievement you access consistently rapidly.

  96. 온라인카지노

    Superb blog! Do you have any tips and hints for aspiring writers?
    I’m hoping to start my own blog soon but I’m a little lost on everything.
    Would you recommend starting with a free platform like WordPress or go
    for a paid option? There are so many choices out there that I’m completely confused ..
    Any suggestions? Kudos!

  97. I’ve read several excellent stuff here. Certainly worth bookmarking for revisiting.
    I wonder how much effort you set to make any such wonderful informative web site.

  98. jacki zullinger

    Hello! I could have sworn I’ve been to this blog before but after browsing through some of the post I realized it’s new to me. Anyways, I’m definitely happy I found it and I’ll be book-marking and checking back frequently!

  99. หวย

    Having read this I believed it was really informative. I appreciate you spending
    some time and effort to put this article together.

    I once again find myself personally spending a lot of time both reading and commenting.

    But so what, it was still worthwhile!

  100. sex

    Hey there! I know this is kinda off topic but I
    was wondering if you knew where I could locate a captcha plugin for my comment form?
    I’m using the same blog platform as yours and I’m having difficulty finding one?
    Thanks a lot!

  101. jonah fernatt

    It is a very good useful article I like to read such articles

  102. หวย

    Hey There. I discovered your weblog the usage of msn. This is a very
    smartly written article. I will be sure to bookmark it and come
    back to read extra of your useful info. Thank you for the post.
    I will certainly comeback.

  103. taxi to airport

    After going over a few of the blog posts on your site, I truly like your way of writing
    a blog. I book marked it to my bookmark webpage list and will be
    checking back soon. Take a look at my web site as well and tell me
    your opinion.

    Here is my blog post: taxi to airport

  104. yikanabilir maske

    Hurrah! In the end I got a website from where I know how to in fact obtain helpful facts regarding my study and
    knowledge.

  105. Excellent beat ! I would like to apprentice whilst you amend your website, how could i subscribe for
    a weblog web site? The account aided me a acceptable
    deal. I have been a little bit familiar of this your broadcast
    provided shiny clear concept

  106. 바카라사이트

    No matter if some one searches for his required thing,
    so he/she desires to be available that in detail, so that
    thing is maintained over here.

  107. ina howlett

    I get very useful information on your page, I feel lucky

  108. https://lovetoy.vn/

    Ԍood article and гight t᧐ tһe point.
    I don’t know if this is truly the Ƅest plаcе to аsk but do ʏou people һave any thoughts on where to ɡеt ѕome professional
    writers? Ꭲhanks 🙂

  109. andree syversen

    Greate article. Keep writing such kind of info on your blog.

  110. sex

    This is very fascinating, You are a very professional blogger.
    I have joined your rss feed and look ahead to looking for
    extra of your excellent post. Additionally,
    I have shared your site in my social networks

  111. Adultfriendfire

    It’s really a great and useful piece of information. I’m glad that you shared
    this useful info with us. Please stay us up to date like this.
    Thank you for sharing.

  112. Adultfriendfirnder

    Hi would you mind sharing which blog platform
    you’re working with? I’m looking to start my own blog soon but I’m having a hard time deciding
    between BlogEngine/Wordpress/B2evolution and Drupal.
    The reason I ask is because your design and style seems different then most blogs and I’m looking for
    something unique. P.S Sorry
    for being off-topic but I had to ask!

  113. web

    Hello, recognition you for facts! I repost in Facebook

  114. bit.ly

    This is very important for me

  115. site

    This is very important for me

  116. 카지노사이트

    Wow, amazing blog layout! How long have you been blogging for?

    you make blogging look easy. The overall look of your website is wonderful, let alone the content!

  117. 우리카지노

    An outstanding share! I’ve just forwarded this onto a co-worker
    who was conducting a little homework on this.
    And he in fact bought me dinner because I discovered it for
    him… lol. So let me reword this…. Thank YOU for the meal!!
    But yeah, thanks for spending time to talk about this
    topic here on your internet site.

  118. 우리카지노

    Thank you for any other informative web site. The place else may just I get
    that type of information written in such an ideal manner?
    I’ve a venture that I’m just now operating on, and I’ve been at the look out
    for such information.

  119. 우리카지노

    Its like you read my mind! You appear to know so much about this, like you wrote the book in it or something.

    I think that you can do with a few pics to drive the message home a bit, but instead of that, this is great blog.
    A great read. I will certainly be back.

  120. คลิป

    This is a topic that is close to my heart…

    Best wishes! Exactly where are your contact details though?

  121. Adultfriendfindetr

    Thank you for another wonderful post. Where else may just anyone get that kind of info in such an ideal
    approach of writing? I’ve a presentation next week, and
    I am at the look for such information.

  122. movers near me

    Wow, amazing weblog layout! How lengthy have you ever been running a blog for?
    you made running a blog glance easy. The entire look of your site is wonderful,
    as neatly as the local movers content!

  123. Grace

    If you are going for best contents like I do, only go to see this web page all the time because it presents feature contents, thanks

  124. https://lovetoy.vn/

    Some really excellent articles on thіs
    site, apprecіate it for contribution.

  125. go to the website

    I do agree with all of the ideas you’ve presented in your post. They’re really convincing and can definitely work. Still, the posts are too quick for novices. May you please extend them a bit from next time? Thanks for the post.

  126. lovetoy shop

    I reаlly likе whɑt you guys are up too. Sucһ clever work and reporting!
    Keeρ up tһe superb workѕ guys I’ve incorporated ʏou
    guys to blogroll.

  127. 720p

    This piece of writing will help the internet visitors for building up new website or even a blog from start to end. Jesse Beale Pricilla

  128. watch

    wonderful points altogether, you simply gained a emblem new reader. What might you recommend about your submit that you made a few days ago? Any positive? Constanta Izaak Judy

  129. altyazili

    It as hard to find well-informed people for this topic, however, you sound like you know what you are talking about! Thanks Celeste Reagen Adalheid

  130. Adultfrinfinder francais

    Hi there this is kind of of off topic but I was wanting to know if blogs use WYSIWYG editors or if
    you have to manually code with HTML. I’m starting a
    blog soon but have no coding expertise so I wanted to get advice from someone with experience.
    Any help would be enormously appreciated!

  131. tek parca

    Oh my, this resort looks amazing! What a brilliant place to stay. And I love all your travel looks. Tres chic! Melisande Cecilio Ioved

  132. หวยเด็ด

    Hello, i think that i saw you visited my web site thus i came to
    “return the favor”.I am trying to find things to enhance my site!I suppose its ok to
    use some of your ideas!!

  133. shopping online

    Hey just wanted to give you a quick heads up. The text in your article
    seem to be running off the screen in Opera. I’m not sure
    if this is a formatting issue or something to do with web browser compatibility but I thought I’d post to let you know.

    The design and style look great though! Hope you get the problem solved soon. Thanks

  134. หวย

    I read this post fully on the topic of the resemblance of most recent and previous technologies, it’s amazing article.

  135. movie online

    A fascinating discussion is worth comment. I believe that you ought to publish more on this issue, it might not be a taboo matter but typically people do not talk about such topics. To the next! Many thanks!! Kirsti Abbe Winson

  136. torrent

    Very good post. I definitely love this site. Keep it up! Dorian Andre Morrissey

  137. prison break

    After exploring a handful of the blog articles on your web site, I seriously appreciate your way of blogging. I book marked it to my bookmark website list and will be checking back soon. Please visit my website as well and tell me what you think. Gabriela Montgomery Gusta

  138. bluray

    At this time I am going away to do my breakfast, when having my breakfast coming over again to read additional news.| Sula Yankee Murtha

  139. turkce

    Excellent post. I certainly love this site. Keep it up! Siusan Baxy Walls

  140. bluray

    Thanks for sharing your thoughts on arbejd hjemmefra. Shawnee Erl Pappano

  141. AdultFrinendFinder

    I am sure this paragraph has touched all the internet people,
    its really really nice article on building up new website.

  142. 카지노사이트

    Spot on with this write-up, I really believe this web site needs much more attention.
    I’ll probably be returning to see more, thanks for
    the advice!

  143. Everything is very open with a very clear clarification of the challenges.
    It was definitely informative. Your site is useful. Thank you for sharing!

  144. Hello to every one, the contents existing at this web page are really
    remarkable for people experience, well, keep up the good work fellows.

发表评论