Front End

前端爱好者


  • 首页

  • 分类

  • 归档

  • 标签

移动端适配

发表于 2017-08-09 | 分类于 移动端及响应式 |

移动端web开发相对于PC端web开发,我们可以庆幸不用兼容那么多浏览器了,但是随之而来的却是各种屏幕尺寸的适配,个人觉得,比PC端还要费精力。在使用了腾讯优测进行软件测试后,问题得到了有效解决。

1.移动端布局方式

1.1响应式布局

简而言之,就是页面元素的位置随着屏幕尺寸的变化而变化,通常会用百分比来定位,而在设计上需要预留一些可被“压缩”的空间。

image

如上图,其实就相当于页面被压矮了。

阅读全文 »

跨域问题

发表于 2017-08-09 | 分类于 浏览器&Ajax |

1.同源

1.1含义

所谓“同源”指的是”三个相同“。

  • 协议相同
  • 域名相同
  • 端口相同

1.2目的

同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。

1.3限制范围

  • Cookie、LocalStorage 和 IndexedDB 无法读取。
  • DOM 无法获得。
  • AJAX 请求无效(可以发送,但浏览器会拒绝接受响应)。
    阅读全文 »

js面向对象编程:封装

发表于 2017-08-09 | 分类于 javascript&ES6 |

Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。

1.生成实例对象的原始模式

假定我们把猫看成一个对象,它有”名字”和”颜色”两个属性。

1
2
3
4
 var Cat = {
    name : '',
    color : ''
  }

现在,我们需要根据这个原型对象的规格(schema),生成两个实例对象。

1
2
3
4
5
6
var cat1 = {}; // 创建一个空对象
    cat1.name = "大毛"; // 按照原型对象的属性赋值
    cat1.color = "黄色";
  var cat2 = {};
    cat2.name = "二毛";
    cat2.color = "黑色";

缺点:

好了,这就是最简单的封装了,把两个属性封装在一个对象里面。但是,这样的写法有两个缺点,一是如果多生成几个实例,写起来就非常麻烦;二是实例与原型之间,没有任何办法,可以看出有什么联系。

阅读全文 »

ES6重点特性

发表于 2017-08-09 | 分类于 javascript&ES6 |

1. 一些核心功能

1.1 let const

ES5 通过 var 来申明变量,ES6 新添 let 和 const,且作用域是 块级作用域。

let 使用和 var 非常类似,let 不存在变量提升,也不允许重复申明,let 的声明只能在它所在的代码块有效

const 就是申明常量用的,一旦申明即被锁定,后面无法更改。

阅读全文 »

IMWeb面试题整理

发表于 2017-08-06 | 分类于 Tencent_IMWeb |
  1. 什么是盒子模型?
  2. 简述一下src与href的区别?
  3. 简述同步和异步的区别?
  4. 怎样添加、移除、移动、复制、创建和查找节点?
  5. 一次完整的HTTP事务是怎样的一个过程?
  6. 你所了解到的Web攻击技术?
  7. ajax是什么?ajax的交互模型?同步和异步的区别?如何解决跨域问题?
  8. 什么叫优雅降级和渐进增强?
  9. 在Javascript中什么是伪数组?如何将伪数组转化为标准数组?
  10. 浏览器本地存储?
    阅读全文 »

《图解HTTP》笔记(一)

发表于 2017-08-05 | 分类于 HTTP网络 |

第一章 了解Web及网络基础

TCP/IP的分层

应用层,传输层,网络层,数据链路层

  • 应用层:FTP,DNS,HTTP;
  • 传输层:TCP,UDP;
  • 网络层:IP,处理网络上流动的数据包;
  • 数据链路层:处理连接网络的硬件部分。
    域名-IP-MAC

DNS-客户端-HTTP请求报文-TCP将HTTP报文分为多个报文段-IP路由器中转-TCP重组报文-HTTP处理请求-服务器

URI用字符串标识某一互联网资源,而URL表示资源的地点(互联网上所处的位置)。可见URL是URI的子集。

阅读全文 »

git使用方法

发表于 2017-08-04 | 分类于 git&blog |

上传本地代码到GitHub

1.建立git仓库

git init

2.将项目的所有文件添加到仓库中

git add .

3.将add的文件commit到仓库

git commit -m “创建仓库”

4.去github上创建自己的Repository

复制仓库的https地址

5.将本地的仓库关联到github上

git remote add origin https://github.com/。。。

6.上传github之前,要先pull一下

git pull origin master

7.上传代码到github远程仓库

git push -u origin master

阅读全文 »

字符串及数组操作

发表于 2017-07-26 | 分类于 数据结构&算法 |

字符串操作

1.判断回文字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function palindrome(str){
// \W匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。
var re = /[\W_]/g;
// 将字符串变成小写字符,并干掉除字母数字外的字符
var lowRegStr = str.toLowerCase().replace(re,'');
// 如果字符串lowRegStr的length长度为0时,字符串即是palindrome
if(lowRegStr.length===0)
return true;
// 如果字符串的第一个和最后一个字符不相同,那么字符串就不是palindrome
if(lowRegStr[0]!=lowRegStr[lowRegStr.length-1])
return false;
//递归
return palindrome(lowRegStr.slice(1,lowRegStr.length-1));
}
阅读全文 »

常见排序及查找算法

发表于 2017-07-26 | 分类于 数据结构&算法 |

Javascript实现八大排序

参考链接1
参考链接2
参考链接3

排序算法,分为内部排序和外部排序。内部排序要使用内存,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。这里只探讨内部排序。

  1. 交换排序:冒泡排序和快速排序
  2. 插入排序:直接插入排序和希尔排序
  3. 选择排序:简单选择排序和堆排序
  4. 归并排序
  5. 基数排序

当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。

快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短。

阅读全文 »

HTML5新特性

发表于 2017-07-26 | 分类于 HTML5&CSS3 |

HTML5新特性

兼容问题:IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签

1. 绘画 canvas 元素

2.媒介回放的 video 和 audio 元素

HTML5 规定了在网页上嵌入音频元素的标准,即使用 元素。

1
2
3
4
5
<audiocontrols>
<sourcesrc="horse.ogg"type="audio/ogg">
<sourcesrc="horse.mp3"type="audio/mpeg">
您的浏览器不支持 audio 元素。
</audio>

HTML5 规定了一种通过 video 元素来包含视频的标准方法。

1
2
3
4
5
<videowidth="320"height="240"controls>
<sourcesrc="movie.mp4"type="video/mp4">
<sourcesrc="movie.ogg"type="video/ogg">
您的浏览器不支持Video标签。
</video>
阅读全文 »
12
Barry Lee

Barry Lee

19 日志
11 分类
24 标签
GitHub
Links
  • 百度前端技术学院
© 2017 Barry Lee
由 Hexo 强力驱动
主题 - NexT.Pisces