王培顺的博客&WangPeishun’s Blog

wangpeishun 发布的文章

字符串字母大小写反向输出
altERnaTIng cAsE <=> ALTerNAtiNG CaSe

这里分享的都是大家比较认可的几个方案:
1.

String.prototype.toAlternatingCase = function () {
return this.split("").map(a =&gt; a === a.toUpperCase()? a.toLowerCase(): a.toUpperCase()).join('')
}

2.

const isLowerCase = (char) =&gt; char.toLowerCase() === char;
const swapCase = (char) =&gt; isLowerCase(char) ? char.toUpperCase() : char.toLowerCase();

String.prototype.toAlternatingCase = function() {
return [...this].map(swapCase).join('');
};

3.

String.prototype.toAlternatingCase = function () {
return this.replace(/./g, function (match) {
return /[a-z]/.test(match) ? match.toUpperCase() : match.toLowerCase();
});
}

4.

String.prototype.toAlternatingCase = function () {
return this.replace(/[A-Za-z]/g, x =&gt; x &gt; "Z" ? x.toUpperCase() : x.toLowerCase())
}

5.

String.prototype.toAlternatingCase = function(){
return this.split("").map(letter =&gt; {
var newLetter = letter.toUpperCase();
return letter == newLetter ? letter.toLowerCase() : newLetter;
}).join("");
}

6.

String.prototype.toAlternatingCase = function () {
return this.replace(/[a-zA-Z]/g, function (ltr) {
return ltr === ltr.toUpperCase() ? ltr.toLowerCase() : ltr.toUpperCase();
});
};

7.

String.prototype.toAlternatingCase = function () {
return this.split('').map(i =&gt; {
if (/[a-z]/i.test(i)) {
return i.toUpperCase() === i ? i.toLowerCase() : i.toUpperCase();
} else {
return i;
}
}).join('');
}

8.

String.prototype.toAlternatingCase = function () {
new_str = "";
for(var i = 0; i &lt; this.length; i++) { if(this[i] === this[i].toUpperCase()) { new_str += this[i].toLowerCase(); } else { new_str += this[i].toUpperCase(); } } return new_str; } [/code] [code] String.prototype.toAlternatingCase = function () { return this.split('').map(function(x){ if(x &gt;= 'A' &amp;&amp; x &lt;= 'Z') return x.toLowerCase(); if(x &gt;= 'a' &amp;&amp; x &lt;= 'z') return x.toUpperCase();
return x;
}).join('');
}

9.

String.prototype.toAlternatingCase = function () {
var letter, idx = 0, alt ='';
while (idx &lt; this.length) { letter = this[idx]; if (letter === letter.toUpperCase()) { alt += letter.toLowerCase(); } else { alt += letter.toUpperCase(); } idx++; } return alt; }; [/code] [code] String.prototype.toAlternatingCase = function () {  return this.split('').map(char =&gt; char === char.toUpperCase() ? char.toLowerCase() : char.toUpperCase()).join('');
}

10.

String.prototype.toAlternatingCase = function () {
let isUpper = function(c) {
if(c === c.toUpperCase()) return true;
return false;
};

let out = '';
for(let i = 0; i &lt; this.length; ++i) {
if(isUpper(this[i])) {
out += this[i].toLowerCase();
}
else {
out += this[i].toUpperCase();
}
}
return out;
}

返回一个字符串中最短单词的字母数量。

例如:"bitcoin take over the world maybe who knows perhaps" ,返回3。

我的:

function mysort(a,b){
return a-b;
}
function findShort(s){
var shorNum =0;
var myarr = s.split(' ');
for(var i=0;i&lt;myarr.length;i++){
myarr[i] = myarr[i].length;
}
myarr.sort(mysort);
return myarr[0];
}

人家的:

1.

function findShort(s){
return Math.min.apply(null, s.split(' ').map(w =&gt; w.length));
}

2.

function findShort(s){
var arr = s.split(' ');
var smallest = arr[0];
for (var i = 0; i &lt; arr.length; i++) {
if(arr[i].length &lt; smallest.length){ smallest = arr[i]; } } return smallest.length; } [/code] [code] function findShort(s){ return Math.min(...s.split(" ").map (s =&gt; s.length));
}

3.

const findShort = (s) =&gt; s
.split(' ')
.sort((a, b) =&gt; b.length - a.length)
.pop()
.length;

昨天看了一个BBC的纪录片《未来的地球》(Future Earth)。

BBC的水准一直很高,是我们应该学习的。

通过这个纪录片,我了解一个几个数据:

  1. 甲烷的温室效应比二氧化碳高出20多倍。
  2. 畜牧业是甲烷产生的主要行业。牛体内产生的甲烷,5%是由放屁排放出来的,95%是通过鼻孔排放的。
  3. 四分之一的二氧化碳是火力发电产生的。
  4. 近250年终,地球气温升高1度。
  5. 全球气温升高1度,看似幅度不大,对自然生态的影响确实巨大,甚至是致命的。
  6. 5500万年前,出现过地球气温高3度的情况,引起一系列恶性循环,导致地球气温短时间内增加6度,海洋生物大量灭绝。地球通过10万年的时间才恢复。

科学家的几个预测:

  1. 到本世纪末年,全球气温比工业革命前要高3度。
  2. 自然灾害发生率比之前高出很多,百年一遇的灾害,可能会变成二十年一遇。
  3. 北冰洋将无冰,北极永久冻土层将解冻,微生物会分解冻土层理的有机物,进而转换成二氧化碳排放到大气层。
  4. “地球之肺”亚马逊雨林可能因干旱和山火而消失,变成热带草原。
  5. 温暖适宜的地中海气候将不再存在。
  6. 北极、南极冰川融化,海平面将升高,部分地势较低的国家和地区将消失。
  7. 南极陆地将露出冰面,缺少冰川的反射,陆地会吸收太阳光的大部分热量,导致地球问题上升。
  8. 剧烈的气候变化将失控,形成恶性循环,地球生态崩溃。
  9. 干旱、缺水、饥饿、冲突、动乱、文明崩塌等侵袭人类。

科学家的努力:

  1. 二氧化碳收集和存放。
  2. 人造肉,减少畜牧业。为动物服用“绿色抗生素”。
  3. 人造树,模拟植物吸收二氧化碳,但“人造树”不能分解二氧化碳,
  4. 冰岛的地热发电、伦敦的风力发电、西班牙的光伏发电,葡萄牙的潮汐发电、法国的核电站,印度的沼气发电。
  5. 中国上海的悬磁浮列车。
  6. 将建筑外观刷成白色,发射阳光。
  7. 向太空发射大量带有微型电脑的镜子发射阳光,为地球降温。造价太高,目前不现实。
  8. 将硫酸盐发射入大气中,形成一个发射层,从而达到降温效果。但可能对臭氧层等地球保护层产生一些不确定的影响。

科学家的研究方法:

  1. 深钻地下,分析冰层,土层的物质、元素含量。
  2. 对野生动物做跟踪研究。
  3. 对某种现象做原因分析。

我的不解:

  1. 有一条数据,中国每一个月就新增2个火力发电站。这个是真实的吗,我在媒体上看到的是中国政府一直在关停火力发电厂呀。
  2. 中国的光伏产业那么牛,为了人类未来,为了地球,你们欧美还搞什么壁垒?
  3. 北极熊应该是没有国籍吧,“近水楼台先得月”,谁有能力逮着它研究就能研究吗?

(完)

定义一个hello函数,参数传递名字时,返回hello,名字,参数为空时,返回hello,world。

hello "john" => "Hello, John!" 
hello "aliCE" => "Hello, Alice!" 
hello => "Hello, World!" # name not given 
hello ' ' => "Hello, World!" # name is an empty String

我的(我承认,是第二次做这个题目啦,自我感觉逻辑思维是硬伤!!!)

第一次:

function hello(name) { 
if (name != null){
if(name == ""){ return "Hello, World!"; }
else{ var array = name.toLowerCase().split(" "); 
for (i=0;i<array.length;i++) { 
array[i] = array[i][0].toUpperCase() + array[i].substring(1, array[i].length); } 
var string = array.join(" "); 
return "Hello, "+ string +"!"; } 
} 
else { return"Hello, World!"; } 
}

第二次:

function hello(name) { 
if(name){ 
var say = name.substr(0,1).toUpperCase()+name.substring(1).toLowerCase(); return "Hello, "+say+"!"; }
else{ return 'Hello, World!'; } 
}

人家的:

function hello(name){ 
if (name){ return "Hello, " + name.substring(0,1).toUpperCase() + name.substring(1).toLowerCase() + '!'; } else { return "Hello, World!"; } 
}

function hello(name) { 
if (name === undefined || name === '') { return 'Hello, World!'; } 
else { return 'Hello, ' + name.substring(0,1).toUpperCase() + name.substring(1).toLowerCase() + '!'; } 
} 

function hello(name) {
if (!(name)) { return 'Hello, World!'; } 
else { name = name.replace(name.charAt(0), name.charAt(0).toUpperCase()); name = name.replace(name.charAt(name.length - 1), name.charAt(name.length - 1).toLowerCase()); } 
return 'Hello, ' + name +'!'; 
} 

function hello(name = "World") { 
if (!name) name = "World" return "Hello, " + name.charAt(0).toUpperCase() + name.slice(1).toLowerCase() + "!"; 
}


判断n是不是正整数若是整数求和。

函数f(n)

function f(n) { return (parseInt(n) === n && n > 0) ? n*(n+1)/2 : false; }; 

function f(n) { return Number.isInteger(n) && n > 0 ? n * (n + 1) / 2 : false; };

function f(n) { if(typeof n != 'number' || n <= 0 || Math.floor(n) != n) return false; return n * (n + 1) / 2; };

function f(n) { if(isNaN(n) || n <= 0 || ~~n !== n) return false; var x = 0; while(n>0) { x += n; n--; } return x; };

最近玩编程游戏觉得很有意思,个人觉得有两款值得为新手推荐。

1.CodeCombat。www.codecombat.cn

2.Codewars。   www.codewars.com

自己觉得codewars低级别的题目都比较难。值得自己去学习,这里在今后一段时间可能会list几个题目来强化记忆。


编写accum函数,实现如下功能:

accum(“abcd”) –> “A-Bb-Ccc-Dddd”

accum(“RqaEzty”) –> “R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy”

accum(“cwAt”) –> “C-Ww-Aaa-Tttt”

我的函数:

function accum(s) {
var start_str = s;
var resurt_str = "";
for(var i=0;i<start_str.length;i++){
var mystr = start_str.substr(i,1).toUpperCase();
for(var j=i;j>0;j--){
mystr += start_str.substr(i,1).toLowerCase();
}
if(i != start_str.length-1){
mystr += '-';
}
resurt_str += mystr;
}
return resurt_str;
}

人家的函数

function accum(str) {

var letters = str.split(“ ”);
var result = [];
for (var i = 0; i < letters.length; i++) {
result.push(letters[i].toUpperCase() + Array(i + 1).join(letters[i].toLowerCase()));
}
return result.join('-');
}

 

到了年底,闲暇下来,心里就不自主地要做一个总结。

想来可能从小到大,每逢年底,都会有考试在“总结”自己。

工作以后,年底也就成了写各种总结的时间。

时间长了,“总结”自己也就成了一种习惯。


2016年,感觉很忙,一直在忙。

2016年,感觉有点累,心理上的和生理上的。

2016年,最大的收获,就是家里多了一口人。

2016年,最大的遗憾,自己还是原来的自己。

2016年,最高兴的事,身体没出大毛病。

2016年,最不高兴的事,自己还是那么不上进。

2016年,好像就做了两门课,还累得半死。

2016年,好像一直在突击,各种临时任务。

2016年,没有读几本书。

2016年,刷了太多时间的手机。

2016年,买了很多视频类的视频教程,大部分还没有看完。

2016年,应该做更多的笔记和读后感。


2017年,一定会发生很多事情,努力做好自己。

最好背会了在敲出来。


  1. I see。我明白啦
  2. I quit!我退出,我不干了!
  3. Let go!放手,让他走
  4. Me too.
  5. My God.
  6. No way.
  7. Come on.来吧(赶快)
  8. Hold on。 等一等
  9. I agree。我同意。
  10. Not bad。还不错
  11. Not yet。还没
  12. See you。再见
  13. Shut up!
  14. So long。 再见。
  15. Why not?好呀(为什么不呢?)
  16. Allow me。让我来
  17. Be quiet!
  18. Cheep up!振作起来
  19. Good job!干得好。
  20. Have Fun!玩的高兴
  21. How much?
  22. I’m full。
  23. I’m home。我回来啦
  24. I’m lost。
  25. My treat。 我请客。
  26. So do I。我也一样
  27. This way。这么请。
  28. After you。您先请。
  29. Bless you!祝福你
  30. Follow me.
  31. Forget it! 算了,休想。
  32. Good luck!
  33. I decline!我拒绝
  34. I promise。
  35. Of course!
  36. Slow Down!慢点。
  37. Take care。
  38. They hurt。(伤口)疼
  39. Try again。再试试
  40. watch out!
  41. What’s up?什么事?
  42. Be careful!
  43. Bottom Up。干杯(见底)
  44. Don't move!
  45. Guess What?猜猜看。
  46. I doubt it。我怀疑。
  47. I think so。
  48. I'm single。我是单身。
  49. keep it up。坚持下去。
  50. let me see。让我想想。
  51. Never mind。不要紧
  52. No problem。没问题。
  53. That's all。就这些,就这样。
  54. Time is Up.时间到了。
  55. what's new? 有什么新鲜事?
  56. count me on。算上我
  57. Don't worry。
  58. Feel better?感觉好点了没有
  59. I love you。
  60. I'm his fans.
  61. Is it yours?这是你的吗?
  62. That's neat。这很好
  63. Are you sure。
  64. Do i have to 非做不可吗?
  65. He is my age。他和我同岁。
  66. Here you are。给你
  67. No one konws。没有人知道。
  68. Take it easy。
  69. What a pity。太遗憾了!
  70. Any thing else?还要别的吗?
  71. To be careful!一定要小心。
  72. Do me a favor?帮个忙,好吗?
  73. Help yourself。别客气,请随意。
  74. I'm  on a diet。我在节食。
  75. keep it Touch。保持联系。
  76. Time is money.
  77. Who's calling?是哪一位?
  78. You did right。你做得对。
  79. You set me up!你出卖我。
  80. Can i help you?
  81. Enjoy youslef。玩的开心。
  82. Excuse me,sir。
  83. Give me  a hand!帮帮我。
  84. How's it going?怎么样?
  85. I have no idea.我毫无头绪。

1.document.write(""); 输出语句

2.JS中的注释为//

3.传统的HTML文档顺序是:document->html->(head,body)

4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document)

5.得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或value)

6.一个小写转大写的JS: document.getElementById("output").value = document.getElementById("input").value.toUpperCase();

7.JS中的值类型:String,Number,Boolean,Null,Object,Function

8.JS中的字符型转换成数值型:parseInt(),parseFloat()  //与104、105重复

9.JS中的数字转换成字符型:(""+变量)

10.JS中的取字符串长度是:(length)

11.JS中的字符与字符相连接使用+号.

12.JS中的比较操作符有:==等于,!=不等于,>,>=,<.<=

13.JS中声明变量使用:var来进行声明

14.JS中的判断语句结构:if(condition){ }else{ }

15.JS中的循环结构:for([initial expression];[condition];[upadte expression]) {inside loop}

16.循环中止的命令是:break

17.JS中的函数定义:function functionName([parameter],...){statement[s]}

18.当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替.

19.窗口:打开窗口window.open(), 关闭一个窗口:window.close(), 窗口本身:self

20.状态栏的设置:window.status="字符";

21.弹出提示信息:window.alert("字符");

22.弹出确认框:window.confirm();

23.弹出输入提示框:window.prompt();

24.指定当前显示链接的位置:window.location.href="URL"

25.取出窗体中的所有表单的数量:document.forms.length

26.关闭文档的输出流:document.close();

27.字符串追加连接符:+=

28.创建一个文档元素:document.createElement(),document.createTextNode()

29.得到元素的方法:document.getElementById()

30.设置表单中所有文本型的成员的值为空:

var form = window.document.forms[0]

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

if (form.elements[i].type == "text"){

form.elements[i].value = "";

}
}
31.复选按钮在JS中判断是否选中:document.forms[0].checkThis.checked (checked属性代表为是否选中返回TRUE或FALSE)

32.单选按钮组(单选按钮的名称必须相同):取单选按钮组的长度document.forms[0].groupName.length

33.单选按钮组判断是否被选中也是用checked.

34.下拉列表框的值:document.forms[0].selectName.options[n].value (n有时用下拉列表框名称加上.selectedIndex来确定被选中的值)

35.字符串的定义:var myString = new String("This is lightsword");(对象级别)

36.字符串转成大写:string.toUpperCase(); 字符串转成小写:string.toLowerCase();

37.返回字符串2在字符串1中出现的位置:String1.indexOf("String2")!=-1则说明没找到.

38.取字符串中指定位置的一个字符:StringA.charAt(9);

39.取出字符串中指定起点和终点的子字符串:stringA.substring(2,6);

40.数学函数:

Math.PI(返回圆周率),

Math.SQRT2(返回开方),

Math.max(value1,value2)返回两个数中的最在值,

Math.pow(value1,10)返回value1的十次方,

Math.round(value1)四舍五入函数,

Math.floor(Math.random()*(n+1))返回随机数

41.定义日期型变量:var today = new Date();

42.日期函数列表:

dateObj.getTime()得到时间,

dateObj.getYear()得到年份,

dateObj.getFullYear()得到四位的年份,dateObj.getMonth()得到月份,dateObj.getDate()得到日,

dateObj.getDay()得到日期几,dateObj.getHours()得到小时,dateObj.getMinutes()得到分,dateObj.getSeconds()得到秒,

dateObj.setTime(value)设置时间,dateObj.setYear(val)设置年,dateObj.setMonth(val)设置月,dateObj.setDate(val)设置日,

dateObj.setDay(val)设置星期几,dateObj.setHours设置小时,dateObj.setMinutes(val)设置分,dateObj.setSeconds(val)设置秒  [注意:此日期时间从0开始计]

43.FRAME的表示方式: [window.]frames[n].ObjFuncVarName,frames["frameName"].ObjFuncVarName,frameName.ObjFuncVarName

44.parent代表父亲对象,top代表最顶端对象

45.打开子窗口的父窗口为:opener

46.表示当前所属的位置:this

47.当在超链接中调用JS函数时用:(Javascript:)来开头后面加函数名

48.在老的浏览器中不执行此JS:<!--      //-->

49.引用一个文件式的JS:<script type="text/Javascript" src="aaa.js"></script>

50.指定在不支持脚本的浏览器显示的HTML:<noscript></noscript>

51.当超链和ONCLICK事件都有时,则老版本的浏览器转向a.html,否则转向b.html.例:<a href="a.html" onclick="location.href='b.html';return false">dfsadf</a>

52.JS的内建对象有:Array,Boolean,Date,Error,EvalError,Function,Math,Number,Object,RangeError,ReferenceError,RegExp,String,SyntaxError,TypeError,URIError

53.JS中的换行:/n

54.窗口全屏大小:<script>function fullScreen(){ this.moveTo(0,0);this.outerWidth=screen.availWidth;this.outerHeight=screen.availHeight;}window.maximize=fullScreen;</script>

55.JS中的all代表其下层的全部元素

56.JS中的焦点顺序:document.getElementByid("表单元素").tabIndex = 1

57.innerHTML的值是表单元素的值:如<p id="para">"how are <em>you</em>"</p>,则innerHTML的值就是:how are <em>you</em>

58.innerTEXT的值和上面的一样,只不过不会把<em>这种标记显示出来.

59.contentEditable可设置元素是否可被修改,isContentEditable返回是否可修改的状态.

60.isDisabled判断是否为禁止状态.disabled设置禁止状态

61.length取得长度,返回整型数值

62.addBehavior()是一种JS调用的外部函数文件其扩展名为.htc

63.window.focus()使当前的窗口在所有窗口之前.

64.blur()指失去焦点.与focus()相反.

65.select()指元素为选中状态.

66.防止用户对文本框中输入文本:onfocus="this.blur()"

67.取出该元素在页面中出现的数量:document.all.tags("div(或其它HTML标记符)").length

68.JS中分为两种窗体输出:模态和非模态.window.showModaldialog(),window.showModeless()

69.状态栏文字的设置:window.status='文字',默认的状态栏文字设置:window.defaultStatus = '文字.';

70.添加到收藏夹:external.AddFavorite("http://www.xrss.cn","jaskdlf");

71.JS中遇到脚本错误时不做任何操作:window.onerror = doNothing; 指定错误句柄的语法为:window.onerror = handleError;

72.JS中指定当前打开窗口的父窗口:window.opener,支持opener.opener...的多重继续.

73.JS中的self指的是当前的窗口

74.JS中状态栏显示内容:window.status="内容"

75.JS中的top指的是框架集中最顶层的框架

76.JS中关闭当前的窗口:window.close();

77.JS中提出是否确认的框:if(confirm("Are you sure?")){alert("ok");}else{alert("Not Ok");}

78.JS中的窗口重定向:window.navigate("http://www.sina.com.cn");

79.JS中的打印:window.print()

80.JS中的提示输入框:window.prompt("message","defaultReply");

81.JS中的窗口滚动条:window.scroll(x,y)

82.JS中的窗口滚动到位置:window.scrollby

83.JS中设置时间间隔:setInterval("expr",msecDelay)或setInterval(funcRef,msecDelay)或setTimeout

84.JS中的模态显示在IE4+行,在NN中不行:showModalDialog("URL"[,arguments][,features]);

85.JS中的退出之前使用的句柄:function verifyClose(){event.returnValue="we really like you and hope you will stay longer.";}}  window.onbeforeunload=verifyClose;

86.当窗体第一次调用时使用的文件句柄:onload()

87.当窗体关闭时调用的文件句柄:onunload()

88.window.location的属性: protocol(http:),hostname(www.example.com),port(80),host(www.example.com:80),pathname("/a/a.html"),hash("#giantGizmo",指跳转到相应的锚记),href(全部的信息)

89.

window.location.reload()刷新当前页面.

parent.location.reload()刷新父亲对象(用于框架)

opener.location.reload()刷新父窗口对象(用于单开窗口)

top.location.reload()刷新最顶端对象(用于多开窗口)

90.

window.history.back()返回上一页,

window.history.forward()返回下一页,

window.history.go(返回第几页,也可以使用访问过的URL)

91.document.write()不换行的输出,document.writeln()换行输出

92.document.body.noWrap=true;防止链接文字折行.

93.变量名.charAt(第几位),取该变量的第几位的字符.

94."abc".charCodeAt(第几个),返回第几个字符的ASCii码值.

95.字符串连接:string.concat(string2),或用+=进行连接

96.变量.indexOf("字符",起始位置),返回第一个出现的位置(从0开始计算)

97.string.lastIndexOf(searchString[,startIndex])最后一次出现的位置.

98.string.match(regExpression),判断字符是否匹配.

99.string.replace(regExpression,replaceString)替换现有字符串.

100.string.split(分隔符)返回一个数组存储值.

101.string.substr(start[,length])取从第几位到指定长度的字符串.

102.string.toLowerCase()使字符串全部变为小写.

103.string.toUpperCase()使全部字符变为大写.

104.parseInt(string[,radix(代表进制)])强制转换成整型.

105.parseFloat(string[,radix])强制转换成浮点型.

106.isNaN(变量):测试是否为数值型.

107.定义常量的关键字:const,定义变量的关键字:var

108.=>是ES6中新添加的arrow function,(x)=>x+1相当于function (x){return x+1} //原文基础上新增

109.isInterger(变量):ES6中新增判断变量是否为整数。 //原文基础上新增

110. >>>是无符号移位运算符,100>>>2 相当于  先将100转换成二进制01100100,向右移两位后得00011001,再转换回十进制,得25。 //原文基础上新增 by leftstick

文章来源:http://blog.csdn.net/benbenrh/article/details/3318961

生活之不易,就像爬山,举步维艰。

幸有亲人、朋友的帮助。

不要认为别人对你的好是理所当然,

没有谁生来就欠你的,包括你的父母。

我们要有上进心,要多折腾,

但前提是折腾自己,并不是折腾自己的亲人朋友。

对现已拥有的要珍惜,

对向往已久的要敬重。

对自己施以帮助的人要牢记,

不做吃着奶又骂娘的白眼狼。

对需要帮助的人尽量给予支持,

没钱可以出点力。

照顾好自己的身体,经营好自己的生活,

不但要跟上面比,还要往下面看。


年龄越大,感觉自己的屁话越多......