专栏名称: 前端JavaScript
分享 | 学习 | 交流 | 原创 分享是学习的开始;学习不必要从头开始,是从现在开始;交流能沟通你我,提高你的学识;期待你的加入!!! web前端技术交流,JavaScript,HTML5,CSS3……
目录
相关文章推荐
51好读  ›  专栏  ›  前端JavaScript

[S3-E407]web前端知识小笔记:(一)

前端JavaScript  · 公众号  · Javascript  · 2017-08-22 06:22

正文

请到「今天看啥」查看全文


图片切片,组合成一张大图

用 CDN 加速

问题地址:https://segmentfault.com/q/10...


5.([] + {}).length ?

[] + {} 运算,首先是调用对象的 valueOf 方法,如果返回一个基本类型,则以该基本类型参与运算;否则调用 toString 方法,返回基本类型则参与运算。


数组和对象的 valueOf(默认)返回自身,因此不是基本类型,接着调用 toString,空数组返回空字符串,普通对象始终返回字符串 [object Object]。故视为两个字符串的拼接,结果为字符串 [object Object],其长度为 15。


一个例外是 Date 的实例,其实例首先调用 toString ,接着才调用valueOf。

可以这样验证:

([]).toString() // ""

({}).toString() // "[object Object]"

([]+{}) // "[object Object]"


问题地址:https://segmentfault.com/q/10...


6.js对Date对象的操作的问题

使用JavaScript生成一个倒数7天的数组。

比如今天是10月1号,生成的数组是["9月25号","9月26号","9月27号","9月28号","9月29号","9月30号","10月1号"]。


Date 的 setDate() 可以给 0 和负数作为参数,日期会自动计算


var today = new Date();

var dates = [today];


for (var i = 1; i < 7; i++) {

var d = new Date(today);

d.setDate(d.getDate() - i);

dates.unshift(d);

}


console.log(dates);

[Fri Sep 25 2015 09:58:23 GMT+0800 (中国标准时间),

Sat Sep 26 2015 09:58:23 GMT+0800 (中国标准时间),

Sun Sep 27 2015 09:58:23 GMT+0800 (中国标准时间),

Mon Sep 28 2015 09:58:23 GMT+0800 (中国标准时间),

Tue Sep 29 2015 09:58:23 GMT+0800 (中国标准时间),

Wed Sep 30 2015 09:58:23 GMT+0800 (中国标准时间),

Thu Oct 01 2015 09:58:23 GMT+0800 (中国标准时间)]

如果要取得格式化后的日期


var today = new Date();

var dates = [today];


for (var i = 1; i < 7; i++) {

var d = new Date(today);

d.setDate(d.getDate() - i);

dates.unshift(d);

}


dates = dates.map(function(d) {

return (d.getMonth() + 1) + "月" + d.getDate() + "日";

});


console.log(dates);

结果:


["9月25日",

"9月26日",

"9月27日",

"9月28日",

"9月29日",

"9月30日",

"10月1日"]

问题地址:https://segmentfault.com/q/10...


7.用闭包保存状态

和普通function执行的时候传参数一样,自执行的函数表达式也可以这么传参,因为闭包直接可以引用传入的这些参数,利用这些被lock住的传入参数,自执行函数表达式可以有效地保存状态。







请到「今天看啥」查看全文