
javascript
文章平均质量分 54
ManGoYi
be yourself
展开
-
javascirpt正则
正则表达式两本基本字符类型原义文本字符 (abc 等)元字符: 含有特殊含义的非字母字符 (\d 等)常用: \d 数字 \b 单词的边界 \w 可以构成单词的字符 ^ 开头 $ 结尾 \B 非单词边界 \d{4} 表示四个数字。 []表示或,[-/] => 则表示‘-’或则‘/’。字符串replace函数:原创 2017-07-24 22:15:23 · 319 阅读 · 0 评论 -
vue项目运行 $ npm run dev 报错解决方案
vue项目运行 $ npm run dev 报错如下:$ npm run dev> sell1@1.0.0 dev E:\易先生\vue\Vue 高仿开发饿了么webApp\sell1> node build/dev-server.jsevents.js:160 throw er; // Unhandled 'error' event ^Error: listen EAD原创 2017-07-28 15:02:54 · 2775 阅读 · 0 评论 -
前端页面渲染流程
浏览器url请求服务器开始 1、返回HTML文档,包括: 文档,script标签, link标签, img标签,audio标签等等文件2、HTML解析: >dom树生成(按照文档的层级展示,存在隐藏在dom树的元素) >render树生成(可以看见到的界面,更多考虑的是显示的内容,dom结构在上一层生成了) >逐级解析dom树 1、p,div,ol原创 2017-10-13 16:59:46 · 1923 阅读 · 0 评论 -
Yahoo军规-提高网站性能
尽可能减少http的请求数。 http请求: 从客户端到服务器端的请求消息,包括消息首行中,对资源的请求方法,资源的标识符以及使用的协议。使用CDN(内容分发网络),解决网络拥挤。CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上,目的是使得用户可以就近的取到数据, 提高用户访问网站的速度。添加Expire/Ca原创 2017-10-13 17:45:45 · 382 阅读 · 0 评论 -
apply()和call()方法
ES5的函数是对象,所以也有属性和方法。 function box(value1, value2) { } console.log(box.length); // 2 返回的是函数参数的个数每个函数都有prototype(原型)属性,prototype有apply()和call()两个方法。 每个函数都包含了这两个非继承而来的方法,用来冒充该方法,通过其他的函数调用它。原创 2017-10-16 20:22:57 · 231 阅读 · 0 评论 -
ES5中的函数都是按值传递的
函数参数的传递方式,一般分为两种:1.按值传递(call by value):函数的形参是被调用时所传实参的副本。修改形参的值并不会影响实参。 2.按引用传递(call by reference):函数的形参接收实参的隐式引用,而不再是副本。这意味着函数形参的值如果被修改,实参也会被修改。同时两者指向相同的值。 function box(obj) { // 注意: 这里是原创 2017-10-16 21:07:36 · 492 阅读 · 0 评论 -
String类型
基本包装类型:Boolean、Number、String都是基本包装类型,每当读取一个基本类型的时候,后台就会创建一个对应的基本包装类型的对象,从而可以调用方法来操作数据。** 通过new操作符,new出来的类型,一定是个引用类型。 var str = new Object("mangoyi"); // 没实际作用,通常不会这么写 console.log(typeof str);原创 2017-10-16 21:24:55 · 313 阅读 · 0 评论 -
web开发中,对url键值对的处理。
在web开发中,经常出现需求。例如 url : http://localhost/test/test.html?id=5&search=sea 转化成: [“id” : 5, “search” : “sea”]实现方法如下: function getArgs() { var args = []; // 存放结果的数组 var qs =原创 2017-10-17 11:17:44 · 1075 阅读 · 0 评论 -
ajax跨域请求,服务端session丢失的解决方法
为什么跨域请求的时候session会丢失?关键先认识一下XMLHttpRequest.withCredentials属性。 引用MDN: XMLHttpRequest.withCredentials 属性是一个Boolean类型,它指示了是否该使用类似cookies,authorization headers(头部授权)或者TLS客户端证书这一类资格证书来创建一个跨站点访问控制...原创 2018-04-03 10:24:11 · 5391 阅读 · 0 评论 -
移动端1px边框的实现
移动端存在设备像素比devicePixelRatio(简称DPR),所以在电脑端设置: border-bottom: 1px solid red在PC端是1px,但是在手机端的显示就是2px或则更多。 大多数的手机min-device-aspect-ratio值是1.5或则是2.0.所以代码如下:@media (-webkit-min-device-pixel-ratio: 1.5),(mi原创 2017-07-27 15:05:33 · 320 阅读 · 0 评论 -
编写可维护的javascript(十):抛出自定义错误
抛出错误的目的不是防止错误,而是在错误发生的时能更加容易地调试。try-catch语句 Javascript提供了try-catch语句,它能在浏览器处理抛出的错误之前来解析它。 可能引发错误的代码放在try块中,处理错误的代码放在catch块中。如: try { somethingThatMighCauseAnError(); } catch (ex) {原创 2017-07-27 11:54:05 · 239 阅读 · 0 评论 -
编写可维护的javascript(一):基本的格式化
一 基本的格式化语句结尾 依赖于分析器的自动分号插入(ASI)机制,javascript代码省略分号是可以正常工作。ASI会自动寻找出代码中应当使用分号但实际没有分号的位置,并插入分号。在大多数情况下ASI都会正确插入分号,不会产生错误。 // 原始代码 function getData() { return {原创 2017-07-25 17:34:48 · 416 阅读 · 0 评论 -
编写可维护的javascript(二):注释
单行注释 // good if (condition) { // 如果执行到这里,则表明通过了所有安全性检查 allowed(); } // bad (注释之前没有空行) if (condition) { // 如果执行到这里,则表明通过了所有安全性检查 allowed(); }多行注释原创 2017-07-26 08:56:19 · 460 阅读 · 0 评论 -
编写可维护的javascript(三):语句和表达式
所有块语句都应当使用花括号,包括:if、for、while、do…while…花括号的对齐方式 第一种对齐风格: if (condition) { doSomething(); } else { doSomethingElse(); }javascript代码这种风格继承自Java,这在java的编程规范中有明确规定。 第二种对齐风格:原创 2017-07-26 09:50:00 · 265 阅读 · 0 评论 -
间歇调用和超时调用
跨浏览器获取浏览器窗口距离左边和上边的距离(px) var leftPos = (typeof window.screenLeft == "number") ? window.screenLeft : window.screenX; var topPos = (typeof window.screenTop == "number") ? window.screenTop原创 2017-08-03 14:05:22 · 603 阅读 · 0 评论 -
编写可维护的javascript(四):变量、函数和运算符
var变量声明 Javascript允许多次使用var语句,但无论var是否真正会被执行,所有var语句都提前到包含这段逻辑的函数的顶部执行,即变量声明提前。比如: function doSomething() { var result = 10 + value; var value = 10; return result; }原创 2017-07-26 14:22:11 · 274 阅读 · 0 评论 -
编写可维护的javascript(五):UI层的松耦合
松耦合 当你能做到修改一个组件而不需要修改其他的组件时,你就做到了松耦合。将Javascript从CSS中抽离 在IE8和更早的版本,存在CSS表达式。CSS表达式允许你讲Javascript直接插入到CSS中,这样可以在CSS代码中直接执行运算或其他操作。如: .box { width: expression(document.body.offsetWidth + 'px原创 2017-07-26 15:38:24 · 295 阅读 · 0 评论 -
编写可维护的javascript(六):避免使用全局变量
全局变量带来的问题命名冲突 当脚本中的全局变量和全局函数越来越多的时候,发生命名冲突的概率也随之增高,即很可能无意间就使用了一个已经声明了的变量。所有的变量都被定义为局部变量,这样的代码才是最容易维护的。 代码的脆弱性 一个依赖于全局变量的函数即是深耦合于上下文环境中,如果环境发生改变,函数很可能就失效了。 难以测试 当你想进行一些单元测试的时候,发现所有的测试都要依赖于一些全局变量才会正原创 2017-07-26 17:48:02 · 666 阅读 · 0 评论 -
编写可维护的javascript(八):避免“空比较”
在Javascript中,常常看到这种代码:变量和null的比较,如下: var Controller = { process: function(items) { if (items !== null) { // bad items.sort(); item.forEach(functio原创 2017-07-27 11:00:29 · 286 阅读 · 0 评论 -
防止页面回退
window对象通过history对象提供了对浏览器历史的访问。它暴露了很多有用的方法和属性,允许你在用户浏览历史中向前和向后跳转。在history中跳转 使用back(), forward()和go()方法来完成在用户历史记录中向后和向前的跳转。向后跳转window.history.back()这段代码和用户点击浏览器回退按钮的效果相同。向前跳转window.h...原创 2018-04-16 10:38:01 · 1108 阅读 · 0 评论