-
js
2019-07-24
Javascript知识点
阅读全文 >>
-
知识点汇总
2019-07-13
面试大总结
阅读全文 >>
-
html
2019-07-05
XMl、HTML与XHTML的区别
阅读全文 >>
-
React
2019-03-09
React并不是一个MVC框架,只是一个用于构建UI的javascript库。 React一般也叫React.js,起源于facebook,提倡用可重用的组件来表现随时间变化的数据。
阅读全文 >>
-
Css 布局
2019-02-04
html文档的正常文档流应该是所有块级元素从上往下依次排列,所有行内元素沿着行间排列。css可以改变这种布局得到我们想要的布局样式。
阅读全文 >>
-
前端架构设计模式
2018-08-29
MVVM是MVC的改进,将controller换成了viewmodal,viewmodal取出model的数据并绑定到view上
阅读全文 >>
-
js算法
2018-07-30
这里收集一些JS常用的算法
阅读全文 >>
-
JS事件绑定、js事件流、js事件循环机制
2018-07-06
JS事件绑定、js事件流、js事件循环机制
阅读全文 >>
-
原生DOM
2018-07-06
js原生dom操作
阅读全文 >>
-
面试题
2018-05-03
#### 1、如何解决0.1+0.2= 0.30000000000000004
```
js中浮点数采用IEEE 754标准的双精度浮点数表示。
数字在转换成二进制的时候,会有不能整除的情况,根据精度(双精度浮点数)取64位有效值。再转化为十进制就是0.3000……4.
解决方法:toFixed
let a = 0.11,b = 0.2801,d = 1.002;
let c = a + b + d;
let e = c.toFixed(4);
parseFloat(c.toFixed(10))
```
#### 2、实现一个数结构的菜单
2.1递归调用
以**斐波那契数列**为例
```
var Fibonacci = function(n){
if(n <= 2){
return 1
}else{
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
}
let x = Fibonacci(10);
console.log("Fibonacci",x)
```
2.2
树结构菜单实现
参考treeMenu文件夹
#### 3、设计如下一个场景
10个ajax同时发起,全部响应后展示所有返回结果,如果最多容忍3个http请求失败。
#### 4、如何实现 a==1&&a==2
```
const a = { i: 1, toString: function () { return a.i++; }};
console.log(a == 1 && a == 2 && a == 3);
```
这里讲的是js的隐式转换,当a为对象时,js会调用toString方法,我们修改了toString方法,每次运行完a会加一,所以等式成立。
隐士转换: 对象 -字符串 -数字
布尔-数字
阅读全文 >>
-
知识点汇总
2018-03-28
面试大总结
阅读全文 >>
-
DataStructure
2018-03-28
数据结构主要有数组、链表、哈希、
阅读全文 >>
-
模块化编程
2018-03-23
随着应用越来越复杂,js必然走向模块化编程。如何模块化编程呢?
阅读全文 >>
-
网页编码
2018-03-22
网页在传输数据的过程中资源会被编码压缩,然后通过http头注明相应参数,浏览器收到后进行解压解码,实现正常显示。
比如我们常常看到Content-Type:application/json,charset = UTF-8 || Content-Type: text/html || Content-Type: image/png (在内容格式中注明编码格式)
比较常见的编码格式还有 GBK、GB2312
##### 一、讲一个故事
很久很久以前,有一群人美国人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物,他们把这称为”字节”。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去,他们就把这机器称为”计算机”。
**注意8个开合的晶体管一共有2的8次方 = 256种状态**
1、美国人把控制码和大小写字母,数字,空格,标点符号分别用1-127号状态来表示,这就是 **ANSI** 的”**Ascii**”编码。
2、后来计算机发展越来越快,世界各国为了保存他们的文字,他们决定采用127后的状态码来表示这些新的字母、符号,一直用到了最后一个状态255,从128-255的字符集被称为**扩展字符集**。
3、等到中国人得到计算机时,已经没有可以利用的字节状态来表示汉字了,而且我们有6000多常用汉字需要保存。于是中国人把127号以后的符号全部取消掉,并且规定:一个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字,前面的一个字节(他称之为高字节)从0xA1用到 0xF7,后面一个字节(低字节)从0xA1到0xFE,这样我们就可以组合出大约7000多个简体汉字了。在这些编码里,我们还把数学符号、罗马希腊的字母、日文的假名们都编进去了,连在 ASCII 里本来就有的数字、标点、字母都统统重新编了两个字节长的编码,这就是常说的”全角”字符,而原来在127号以下的那些就叫”半角”字符了。
**这种汉字方案叫做** “GB2312″。**GB2312** 是对 **ASCII** 的中文扩展。
4、但是中国的汉字太多了,后来还是不够用,于是干脆不再要求低字节一定是127号之后的内码,只要第一个字节是大于127就固定表示这是一个汉字的开始,不管后面跟的是不是 扩展字符集里的内容。结果扩展之后的编码方案被称为 **GBK** 标准,GBK 包括了 GB2312 的所有内容,同时又增加了近20000个新的汉字(包括繁体字)和符号。
5、后来少数民族也要用电脑了,于是我们再扩展,又加了几千个新的少数民族的字,**GBK** 扩成了 **GB18030**。
6、由于当时各国都有一套自己的编码标准,谁也不支持谁的编码,于是有一个ISO的国际化组织决定解决这个问题,他们废掉所有的地区性编码,重做一套包括地球上所有文化、所有字母和符号的编码。这个就叫做**UNICODE**。
UNICODE 开始制订时,计算机的存储器容量极大地发展了,空间再也不成为问题了。于是 ISO 就直接规定必须用两个字节,也就是16位来统一表示所有的字符,对于 ascii 里的那些”半角”字符,UNICODE 包持其原编码不变,只是将其长度由原来的8位扩展为16位,而其他文化和语言的字符则全部重新统一编码。由于”半角”英文符号只需要用到低8位,所以其高 8位永远是0,因此这种大气的方案在保存英文文本时会多浪费一倍的空间。
7、UNICODE 来到时,一起到来的还有计算机网络的兴起,UNICODE 如何在网络上传输也是一个必须考虑的问题,于是面向传输的众多 UTF(UCS Transfer Format)标准出现了,顾名思义,**UTF8** 就是每次8个位传输数据,而** UTF16** 就是每次16个位,只不过为了传输时的可靠性,从UNICODE到 UTF时并不是直接的对应,而是要过一些算法和规则来转换。
##### 二、课代表:
- 中国人民通过对 ASCII 编码的中文扩充改造,产生了 GB2312 编码,可以表示6000多个常用汉字。
- 汉字实在是太多了,包括繁体和各种字符,于是产生了 GBK 编码,它包括了 GB2312 中的编码,同时扩充了很多。
- 中国是个多民族国家,各个民族几乎都有自己独立的语言系统,为了表示那些字符,继续把 GBK 编码扩充为 GB18030 编码。
- 每个国家都像中国一样,把自己的语言编码,于是出现了各种各样的编码,如果你不安装相应的编码,就无法解释相应编码想表达的内容。
- 终于,有个叫 ISO 的组织看不下去了。他们一起创造了一种编码 UNICODE ,这种编码非常大,大到可以容纳世界上任何一个文字和标志。所以只要电脑上有 UNICODE 这种编码系统,无论是全球哪种文字,只需要保存文件的时候,保存成 UNICODE 编码就可以被其他电脑正常解释。
- UNICODE 在网络传输中,出现了两个标准 UTF-8 和 UTF-16,分别每次传输 8个位和 16个位。
于是就会有人产生疑问,UTF-8 既然能保存那么多文字、符号,为什么国内还有这么多使用 GBK 等编码的人?因为 UTF-8 等编码体积比较大,占电脑空间比较多,如果面向的使用人群绝大部分都是中国人,用 GBK 等编码也可以。但是目前的电脑来看,硬盘都是白菜价,电脑性能也已经足够无视这点性能的消耗了。所以推荐所有的网页使用统一编码:**UTF-8**。
阅读全文 >>
-
Js OOP
2018-02-06
Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。
阅读全文 >>
-
JS函数
2018-01-30
函数定义,函数实参形参,匿名函数,自执行函数,闭包
阅读全文 >>
-
bug逻辑
2017-12-03
修改bug遇到的吐血集锦
阅读全文 >>
-
BFC
2017-05-08
block formatting context:块级格式化上下文
阅读全文 >>
-
es6
2017-05-05
关于es6的一些新特性
阅读全文 >>
-
ValueCopy
2017-03-29
ECMAScript变量的值类型有两种,基本类型和引用类型.
阅读全文 >>
-
webpack(打包)
2017-03-28
webpacke多入口情况,我们把第三方库,和组件,还有css分开来打包。
阅读全文 >>
-
Javascript关键字
2017-03-27
this关键字,在全局范围,函数调用,构造函数,对象方法中指向各不相同,我们还可以手动改变this指向。
阅读全文 >>
-
JavaScript数据类型
2017-03-26
关于Javascript的数据类型、变量定义、隐式转换
阅读全文 >>
-
继承(inherit)
2017-03-24
Javascript如何实现继承?
阅读全文 >>
-
文件上传
2017-03-15
采用百度团队开发的webuploader + express部署服务器。
阅读全文 >>
-
Ajax介绍(下)
2017-03-14
废话不多说,上代码
阅读全文 >>
-
Ajax
2017-03-14
Ajax:A(异步)的 JA(javascript)和 X(xml)。实现 客户端异步请求操作,从而实现不用刷新页面的情况下与服务器通信,减少用户等待时间,提高用户体验。
阅读全文 >>
-
Sass
2017-03-11
完全兼容 CSS3
sass是一款css预处理语言。
在 CSS 语言基础上添加了扩展功能,比如变量、嵌套 (nesting)、混合 (mixin)
对颜色和其它值进行操作的{Sass::Script::Functions 函数}
阅读全文 >>
-
js几种常见设计模式
2017-03-10
Javascript的设计模式,在平时我们接触的很多代码里已经包含了一些设计模式的实现,在这里做个概念性介绍。
阅读全文 >>
-
gulp
2017-03-08
gulp是一个nodejs的streaming构建工具,所谓的streaming大致意思就是把构建流程想成一个个链接的管道。
阅读全文 >>
-
Javascript闭包(Closure)
2017-03-07
js的作用域只有两种,全局作用域和方法作用域,不存在块级作用域。
阅读全文 >>
-
正则表达式(RegExp)
2017-03-03
正则表达式:regular expression
阅读全文 >>
-
跨域(cors)
2017-03-01
跨域的原理,就是受同源策略(域名,协议,端口)的影响,本域的js不能操作其它域的页面对象。
阅读全文 >>
-
响应式布局
2016-02-28
响应式布局的概念是为了让网页在不同分辨率的屏幕上都有较好的展示效果,即需要应用不同的css样式。
阅读全文 >>
-
NRM
2016-02-13
提升下载速度,避免总是安装错误的包
阅读全文 >>
-
Git使用笔记
2016-02-12
分布式版本管理系统,为了更好地管理Linux内核开发而创立。
阅读全文 >>