Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
1 | Object.assign(target, ...sources) |
描述:
如果目标对象中的属性具有相同的键,则属性将被源中的属性覆盖。后来的源的属性将类似地覆盖早先的属性。
Object.assign 方法只会拷贝源对象自身的并且可枚举的属性到目标对象。该方法使用源对象的[[Get]]和目标对象的[[Set]],所以它会调用相关 getter 和 setter。因此,它分配属性,而不仅仅是复制或定义新的属性。如果合并源包含getter,这可能使其不适合将新属性合并到原型中。为了将属性定义(包括其可枚举性)复制到原型,应使用Object.getOwnPropertyDescriptor()和Object.defineProperty() 。
String类型和 Symbol 类型的属性都会被拷贝。
在出现错误的情况下,例如,如果属性不可写,会引发TypeError,如果在引发错误之前添加了任何属性,则可以更改target对象。
注意,Object.assign 会跳过那些值为 null 或 undefined 的源对象。
multispinner 是在命令行执行时等待的样式,并且能根据结果返回不同的提示信息.
这个node插件使用起来非常简单 在multispinner Github 里有例子 不太懂可以看一下.
**普通方法使用**1 |
|
想用js开发桌面现在有两个框架可以用 Electron 另外一个是 nwjs.
但感觉还是用 Electron比较好,因为现在一些流行的软件是那这个弄的,比如说我现在用的 Atom ,VSCode 这两个软件都非常好用,而且漂亮.
另外还有个原因是,他有中文文档.这样实在是方便太多了
这里主要编写个 Electron 启动配置文件.是 package.json
里的 main
字段的文件.
注意:如果 main 字段没有在 package.json 声明,Electron会优先加载 index.js。
剩下的就是编写自己的程序了就行了.
贴两个配置文件样本.
一 这是官方的例子
1 | const { app, BrowserWindow } = require('electron') |
这就是Promise的作用了,简单来讲,就是能把原来的回调写法分离出来,在异步操作执行完后,用链式调用的方式执行回调函数。
1 | function runAsync(){ |
功能相同
1 | function runAsync(callback){ |
优点:
效果也是一样的,还费劲用Promise干嘛。那么问题来了,有多层回调该怎么办?如果callback也是一个异步操作,而且执行完后也需要有相应的回调函数,该怎么办呢?总不能再定义一个callback2,然后给callback传进去吧。而Promise的优势在于,可以在then方法中继续写Promise对象并返回,然后继续调用then来进行回调操作。
今天遇到个很bug的问题.在chrome里当窗口很小的时候,一个div就会偏移,但是当用鼠标调正窗口,又会变好.而且只有在chrome下有这个问题,最后确认原来是margin-top失效的原因.再次说明: 上面那个问题,并没有因使用overflow:hiden
而解决.只是放在火狐里这个bug不存在了.后来是通过删除了子容器的 float:left
解决的.但到底是哪里冲突还是不明白.但下面这些方法解决一些浮动漂移是有用的.
正统说法:
1:“在CSS2.1中,水平的margin不会被折叠;垂直margin可能在一些盒模型中被折叠…”
2: 当第一个层浮动,而第二个没浮动层的margin会被压缩,详见–浮动元素后非浮动元素的margin的处理。
一 如果是两个容器并列,一般出现问题,是因为第一个容器加了浮动,第二个没有加 所以造成第二个margin出问题.解决办法是在第二个容器前增加一个<divstyle="clear:both;"></div>
.像下面这样,或者给box2也增加float;
[TOC]
https://github.com/mailru/FileAPI
原本打算是操作本地文件,如打开文件,新建文件,保存文件.但好像js是无法坐到这些的.
只能通过一些特别的手段达到一定的效果而已.
这个组件就是搜索时找到的,主要是通过上传时得到文件一些信息,他主要用作图片上传,
文件上传时获得相关内容.而且他还能操作摄像头用于头像.
并且他还有个jquery的插件,主要用处也是上传头像时的相关操作.
这里就写几个主要的,详细请看这篇文章:
http://www.iteye.com/news/27580
使用Emmet加速Web前端开发
HTML文档需要包含一些固定的标签,比如、
、等,现在你只需要1秒钟就可以输入这些标签。比如输入“!”或“html:5”,然后按Tab键:现在你只需要1行代码就可以实现标签的嵌套。
1 | >: 子元素符号,表示嵌套的元素 |
你可以通过嵌套和括号来快速生成一些代码块,比如输入(.foo>h1)+(.bar>h2),会自动生成如下代码
1 | <div class="foo"> |