谈谈js中的作用域

如果有过其他高级语言‘块级作用域’的认知,那么再接触js的函数作用域后就会大跌眼镜。个人认为应该在这几个方面着重关注一下:作用域、作用域链、变量提升。

先看作用域,js是没有块作用域的说法的(不过现在ES6的let关键字已经支持了),用网络上其他的例子作说明:

1
2
3
4
5
6
var name="global";
if(true){
var name="local";
console.log(name)//local
}
console.log(name);//local

上面的输出都为local,如果不是函数作用域而是块作用域的话,输出应该依次是local和global。所以,以上代码证明了开始的观点。这里一定要注意函数作用域这个关键点哦!

Read More

应用于广播的解决方案

以前android终端连接服务器的地址都是写在了代码里(不可取)或者配置文件中,当然在平日开发中为了方便,问题当然不大,主要是我们的局域网中服务器的IP地址基本不会改变,要么都是手动设置了IP。但是如果一旦作为产品卖给客户,问题就凸显出来了,因为我们到时候是不清楚客户方的网络情况,不可能到一个地方都去改代码然后打包,这显然是不现实的。

Read More

多么痛的领悟之闭包小结

“闭包”,一个快被讲烂了的知识点,以至坊间流传着一种说法,不识闭包的人就不能谈精通js。好吧,虽然现在大部分时间在写node后端,极少用到闭包,但是为了以后写前端js真正遇到闭包特性时,不必乍慌~

关于什么是闭包的定义,官网上的解释有点晦涩,参考了网上一大圈解释,选了几个易懂的方便理解:第一个,
闭包就是能够读取其他函数内部变量的函数。第二个,可能要长点:2.1闭包就是函数的局部变量集合,只是这些局部变量在函数返回后会继续存在;2.2闭包就是就是函数的“堆栈”在函数返回后并不释放,我们也可以理解为这些函数堆栈并不在栈上分配而是在堆上分配;2.3当在一个函数内定义另外一个函数就会产生闭包。

Read More

孕期饮食

到今天写下这篇日志时,我家春天都怀孕50多天啦。原谅孕妇比较馋,什么都想吃,所以每次春天问我“老公,我可不可以吃这个啊?”,我都要去百度一下,太麻烦,信息不集中,所以要把这些东西归档一下!

什么不能吃!

  1. 木瓜、桂圆、荔枝:具体原因忘记了,好象是会容易导致流产,所以不能吃..

  2. 山楂:山楂对妇女子宫有收缩作用,如果孕妇大量食用山楂食品,就会刺激子宫收缩,甚至导致流产

  3. 柿子:不能吃,怕引至流产

  4. 龙眼和荔枝、人参:不能吃的,它能刺激子宫收缩,特别是在怀孕后期,易流产

  5. 螃蟹、甲鱼:荷尔蒙十分旺盛,是早期的“堕胎药”,特别是蟹爪。

  6. 咖啡:在「早期妊娠」喝大量咖啡,可能造成胎儿心脏畸形、裂颚、多手指头、缺手指头,机会比没喝咖啡的人大一点。若大量饮用,则流产机率高达百分之七十

  7. 酒:喝酒多了,怀孕期及周产期之胎儿死亡率是十七%

  8. 可乐,茶:和咖啡差不多

  9. 薏仁:其作用为消除体内异常细胞,故薏仁的功效恐会抑制受精卵的成长.

  10. 猪肝:许多人认为猪肝很补血,然而它却有破血之效,会打散子宫内的废血;但因怀孕时期子宫内并无废血,故反易造成早期流产

  11. 马齿笕、薏米、黑木耳也是不能触碰的!

  12. 山楂:活血破瘀,使用过多,一定会引发流产

  13. 嚼槟榔:孕妇吃槟榔或孕龄妇女长期嚼槟榔后再怀孕,其流产、死产及畸胎率为常人的两倍。止吐药可能导致胎儿畸型

  14. 大麦芽、燕麦:根据前人经验,妇人怀孕期间忌食大芽。如《本草正》中说:麦芽,女子有胎妊者不宜多服。亦善催生落胎。

    Read More

TCP的粘包问题

TCP粘包这似乎是个老生长谈的问题,想不到还是在项目中给我遇到了。

服务器本来每次收取的就是客户端发送的简短的消息,即发送一次收一次,客户端也并没有频繁请求。不过却在有一次的测试中给报错了,看日志是解析数据出错,我想客户端发送的消息还是以前的,怎么到我这里来就解析出错了呢?不可能是掉包呀!再看解析错误的是什么数据,噢!原来是在后来的程序中我们服务器加上了与客户端的保活连接模块,然而我们在解析的代码里面并没有进一步的判断,而这次收到的数据却是既包含了正常请求数据+keepalive数据,于是就报异常了(话说以前我赶时间,这程序写的真渣…)。

Read More