收集了最近深入学习js的一些文章
免得日后找不到
深入理解JavaScript系列 - 汤姆大叔 - 博客园
前端基础进阶系
深入理解javascript原型和闭包系列 - 王福朋 - 博客
mqyqingfeng/Blog
国服第一切图仔的 CSS 仓库
CSS 黑魔法小技巧,让你少写不必要的JS,代码更优雅
front-end-developer
免得日后找不到
深入理解JavaScript系列 - 汤姆大叔 - 博客园
前端基础进阶系
深入理解javascript原型和闭包系列 - 王福朋 - 博客
mqyqingfeng/Blog
国服第一切图仔的 CSS 仓库
CSS 黑魔法小技巧,让你少写不必要的JS,代码更优雅
在掘金上面看到一篇文章,让我加深了对let的理解,其中最重要的总结是,关于let是否存在变量提升,变量提升其实可以分为四种情况:
创建
初始化undefined, 所以在这里打印a为undefined
var a = 1; 赋值
创建 所以在这里打印a为报错(let的初始化只有一次机会,报错以后a将被锁定,再也不能初始化)
let a = 1; 初始化1
a = 2;赋值
五一过后的第一个周末,就有家乡的朋友大老远跑来南京玩,作为在南京生活了五年的我来说,好歹也要尽地主之谊。五一三天在家没事做,躺床上看了南京往事,愈加觉得南京是个有内涵的历史古都,近代史的动荡不安使得南京城历经风雨,沉淀了数不清道不明的历史故事,每一篇都值得回味和思考。
看了南京往事,才知道南京城的更多故事,原来南京城的道路格局基本是在蒋介石定都南京的时候,拟定的一本《首都计划》开始成型的。举个例子,中山陵的建成是为了给国父孙中山的一抔安息之土,历史记载,孙中山有一次在紫金山打猎的时候,感慨而发,说将来辞世之时,愿向百姓乞一抔土,以作安息之地。中山陵台阶392级,意味着当时全国人口三百九十二万,平台8个,从下往上看,看不到平台,意味着革命的道路充满艰难和坎坷,从上往下看,看不到台阶只看到平台,意味着革命胜利后回望来时的路,又不觉艰辛。中山陵中的墙上刻的是孙中山的《建国大纲》。孙中山逝世后才开始兴建中山陵,在竣工之前孙中山的遗体保存在北京,中山陵竣工后,蒋介石为孙中山举行了盛大的奉安大典,为了重视这个奉安大典,特地从中山码头开始修建了长长的中山大道一直到中山陵脚下。中山大道道路十分宽敞,两边种满了法国梧桐树。这也奠定了南京城现代化的城市格局。
再说著名的美龄宫,那是蒋介石为宋美龄兴建的别墅,在当时称为“远东第一别墅”,极尽奢华。北伐时期,蒋介石时长奔波在外,宋美龄十分支持蒋的事业,时不时从上海飞到南京陪伴蒋,蒋甚为感动,由于宋美龄身体羸弱,受不了战乱的生活,就希望蒋为她在紫金山旁边的小红山修建一座别墅,用来度假使用,既然宋美龄开口了。蒋自然放在心上。美龄宫当时超出了十几万的预算,好几次差点被停,原因是宋美龄对这个美龄宫要求十分高,很多家具装修都要求使用舶来品,宫内总共刻满一千只凤凰,极尽表现出了女主人的特殊身份。据说,好几次已经装修完成的部分,宋美龄不满意,又要求重新整改,这也是超支的一大原因。后来蒋又下令在道路两旁种满梧桐树,才有了现在流传的美龄宫项链,其实蒋并没有那么浪漫,他并没有想到几十年后的今天,这些梧桐树竟有这样的景观。
我曹,不想写了。我自己知道就好了。。。
说到IE,总是令人头疼的,说到IE8,更是令人望而生畏,最近的项目就苦逼的遇上了兼容IE8的需求,当然,作为一个称职的前端开发人员,面对困难总是义不容辞,勇往直前,敢于面对惨淡的人生。
在进行了调研之后,最终选择了react+redux+webpack+antd全家桶。不得不说,在拼凑这个全家桶的时候确实花费了不少时间和精力,了解了react0.14以下版本对IE8的兼容,我们根据版本对应发布的时间找到了对应的react-router版本和前端react组件框架antd的版本,分别是
- react(v0.14.3)
- react-router(v0.14.3)
- antd(v0.11.3)
ESLint是一个QA工具,用来避免低级错误和统一代码的风格。ESLint被设计为完全可配置的,主要有两种方式来配置ESLint:
- 在注释中配置:使用JavaScript注释直接把配置嵌入到JS文件中。
- 配置文件:使用.eslintrc.js或者.eslintrc.json来为全部的目录和它的子目录指定配置信息。
刚入职新公司一个月,从nodejs转战前端,感觉有趣又有挑战。这一个月来,使用vue前端框架做了一个小型项目,收获满满,在兼容
IE9方面也有很多收获,这些都是之前没有实战接触过的经验,十足珍贵。以下做一下阶段总结,这样后续再遇到问题就能很快处理。
顺便说一下,我发现,做前端经验很重要,刚毕业面试的时候,你问我这些兼容性那些兼容性,一个写不出来,写出来也是背的,现在
问我,我说出来的都是我切切实实遇到的。
placeholder属性是html5的新属性,IE9及以下不支持。所以使用focus和blur模拟placeholder。
当focus的时候将input2隐藏,blur的时候将真实的input隐藏,IE9对jquery也有很多不支持,所以不用jquery,原生的js也有很多是IE9不支持的,所以直接用vue的v-model属性。
函数中的this并不指向函数本身,即不是在函数定义时所在的词法作用域中,而是指向函数运行时所在作用域。this的指向规则有四种:
GET 请求
微信:微信的timestamp + 微信的nonce + 配置的token 来生成签名
开发者:微信的timestamp + 微信的nonce + 本地的token 来生成签名,验证消息是否来自微信
通过只有双方知道的token来进行验证
POST 请求
微信:微信的timestamp + 微信的nonce + 配置的token + 加密的密文 来生成签名
开发者:微信的timestamp + 微信的nonce + 本地的token + 加密的密文 来生成签名,验证消息是否来自微信,验证通过,可以放心使用消息体。
reply
开发者:开发者的timestamp + 开发者的nonce + 本地的token + 加密的密文 来生成签名
微信:开发者的timestamp + 开发者的nonce + 配置的token + 加密的密文 来生成签名,验证消息是否来自合法开发者,验证通过,可以放心接收消息体。
其中加密的密文使用了appid和aes加密,由微信提供,防止非法开发者对微信进行reply攻击。
一个进程中可以有多个线程同时运行,称为多线程,一个线程可与同属一个进程的其它线程共享进程所拥有的全部资源,同一进程中的多个线程之间可以并发执行。
线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。