cosyer's Blog

Blog


  • 首页

  • 友链

  • 留言板

  • 归档

  • 关于

  • 搜索
7月
01
更新于
7月01
2019
JS

toFixed方法注意点

发表于 2018-09-14 | 热度 ℃
| 字数统计: 671 (字) | 阅读时长: 3 (分钟)

遇到的问题:

js的浮点数运算不准确,(a + b).toFixed(2)能解决一部分问题,但并不完美。

1
2
3
4
5
6
7
8
0.1 + 0.2 //0.30000000000000004
(0.1 + 0.2).toFixed(2) // 0.30
0.815 + 0.1 // 0.9149999999999999
(0.815 + 0.1).toFixed(2) // 0.91,错误!期望0.92
// toFixed并不是我们通常理解的“四舍五入”,而是“四舍六入五留双”
// 简单来说就是:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为奇应舍去,五前为偶要进一。
(0.225).toFixed(2) // 0.23
(0.235).toFixed(2) // 0.23,错误!期望0.24

阅读全文 »
6月
15
更新于
6月15
2019
JS

use strict

发表于 2019-05-08 | 热度 ℃
| 字数统计: 1,279 (字) | 阅读时长: 5 (分钟)

严格模式是ES5引入的,更好的将错误检测引入代码的方法。顾名思义,使得JS在更严格的条件下运行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
变量必须先声明,再使用
function test(){
"use strict";
foo = 'bar'; // Error
}

不能对变量执行delete操作
var foo = "test";
function test(){}

delete foo; // Error
delete test; // Error

function test2(arg) {
delete arg; // Error
}
对象的属性名不能重复
{ foo: true, foo: false } // Error

禁用eval()

函数的arguments参数
setTimeout(function later(){
// do stuff...
setTimeout( later, 1000 );
}, 1000 );

禁用with(){}

不能修改arguments
不能在函数内定义arguments变量
不能使用arugment.caller和argument.callee。因此如果你要引用匿名函数,需要对匿名函数命名。

严格模式的优点:

  1. 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;

  2. 消除代码运行的一些不安全之处,保证代码运行的安全;

  3. 提高编译器效率,增加运行速度;

  4. 为未来新版本的Javascript做好铺垫。

  • 注:经过测试 IE6,7,8,9 均不支持严格模式。

缺点:

现在网站的 JS 都会进行压缩,一些文件用了严格模式,而另一些没有。这时这些本来是严格模式的文件,被 merge 后,这个串就到了文件的中间,不仅没有指示严格模式,反而在压缩后浪费了字节。


阅读全文 »
6月
12
更新于
6月12
2019
知识

chrome插件扩展程序开发指南

发表于 2018-11-26 | 热度 ℃
| 字数统计: 1,401 (字) | 阅读时长: 6 (分钟)

什么是chrome extensions

Chrome Extensions,中文名叫 “Chrome浏览器扩展程序”。引用官方文档的描述,翻译一下就是 “可以修改和增强浏览器功能的 H5 小程序”。 它的入口在浏览器窗口的右上角,地址栏的最右边


阅读全文 »
6月
11
更新于
6月11
2019
JS

深入理解JS的类型、值和类型转换

发表于 2019-03-05 | 热度 ℃
| 字数统计: 2,585 (字) | 阅读时长: 10 (分钟)

一、七种内置类型和常见引用类型

精简

复杂


阅读全文 »
4月
30
更新于
4月30
2019
知识

vuex学习笔记

发表于 2019-04-19 | 热度 ℃
| 字数统计: 2,420 (字) | 阅读时长: 12 (分钟)

vuex

数据驱动模板(管理共享状态) 核心store仓库(响应式的状态存储) 提交mutation才能修改内部状态 记录每次改变保存状态快照

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const store = new Vuex.Store({
state:{
count:0
},
mutations: {
increase(state){
state.count++;
}
},
// 开启严格模式
strict: process.env.NODE_ENV !== 'production'
// 在严格模式下,无论何时发生了状态变更且不是由 mutation 函数引起的,将会抛出错误。这能保证所有的状态变更都能被调试工具跟踪到。
})

store.commit('increase');
store.state.count;

不要在发布环境下启用严格模式!严格模式会深度监测状态树来检测不合规的状态变更——请确保在发布环境下关闭严格模式,以避免性能损失。


阅读全文 »
4月
25
更新于
4月25
2019
杂谈

维生素

发表于 2019-04-25 | 热度 ℃
| 字数统计: 656 (字) | 阅读时长: 2 (分钟)

维生素分类

维生素A

长期用眼。

维生素A缺乏,会带来眼睛干涩,夜间视力下降等问题。

维生素A


阅读全文 »
4月
11
更新于
4月11
2019
JS

export/export default/import的区别以及用法

发表于 2018-07-06 | 热度 ℃
| 字数统计: 532 (字) | 阅读时长: 2 (分钟)

ES6模块主要有两个功能:export和import

export用于对外输出本模块(一个文件可以理解为一个模块)变量的接口

import用于在一个模块中加载另一个含有export接口的模块。

也就是说使用export命令定义了模块的对外接口以后,其他JS文件就可以通过import命令加载这个模块(文件)。


阅读全文 »
4月
01
更新于
4月01
2019
CSS

borderRadius百分比50和100究竟有什么区别

发表于 2019-04-01 | 热度 ℃
| 字数统计: 556 (字) | 阅读时长: 2 (分钟)

border-radius的值是百分比的话,就相当于盒子的宽度和高度的百分比。我们知道在一个正方形内做一个面积最大的圆形,这个圆的半径就为正方形边长的一半。所

以border-radius为50%时,则会形成圆。那么可能有人就会问,border-radius为100%时,对应圆的半径长度不就是正方形的宽高么,这种情况下,为什么还是会

形成一个和值为50%一样的圆形呢?


阅读全文 »
3月
12
更新于
3月12
2019
Node

NodeJSHttp加载静态资源

发表于 2019-03-12 | 热度 ℃
| 字数统计: 973 (字) | 阅读时长: 5 (分钟)

问题场景:浏览器向后台发送请求后,后台返回一个html界面。但是在浏览器中没有加载js、css等静态资源,查找原因后发现是Content-Type的原因。浏览器不知道css、js等文件的文件格式,无法成功加载静态文件。所以,需要设置正确的文件格式。


阅读全文 »
3月
08
更新于
3月08
2019
JS

深入理解JS的继承

发表于 2019-03-07 | 热度 ℃
| 字数统计: 659 (字) | 阅读时长: 3 (分钟)
Summary
阅读全文 »
1…13141516
陈宇(cosyer)

陈宇(cosyer)

不去做的话永远也做不到。

159 日志
10 分类
51 标签
RSS
GitHub Twitter E-Mail FB Page
推荐阅读
  • Callmesoul
  • JsTips
  • Personal Site
  • Resume
© 2021 陈宇(cosyer)
终于等到你(UV):   |   欢迎再来(PV):
Blog总字数: 312.5k字
苏ICP备17005342号-1