1、文件管理
①查看文件
查看当前目录下的文件和目录: ls
查看当前目录下的文件和目录,获取更多的文件信息: ls -l(list)
查看隐藏文件:ls -a(all)
more >>技术改变生活,分享沉淀自我
同源策略是浏览器的基本安全功能,所谓同源,即协议、域名、端口相同。当浏览器执行一个脚本是,会检查脚本是否同源,才会去执
行!如果不同如何去执行呢,这时候就需要跨域!
提到跨域,可能光想到有个jsonp。然而jsonp是什么,跨域还有没有其他方式就不知道了,所下面来了解下跨域的几种方式及原理:
1、jsonp(json with padding)
在前面讲到浏览器有同源策略的限制,但是 <img>的src,<link>的href,<script>的<script>所以你会发现A网站的图片地址,放到B网站同样也可以显示。
jsonp,就是<script>的src不符合同源策略而来的。通过<script>的src动态引入文件,返回服务器端数据。
2、
3、
4、
事件委托 就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。
比如一个ul有100个li, 这 100个 li 都有相同的点击事件,如果我们采用循环的方法对这100个liclick方法,这样我们就需要不断的和DOM节点交互,DOM访问次数越多,DOM重绘重排就越多。可是如果使用 事件委托机制去处理的话,我们只需要给 ul 加上个点击事件就可以了,DOM操作只需交互一次,大大提高性能。
那事件委托是怎么去实现的呢?
事件委托是利用事件的冒泡原理来实现的,何为事件冒泡呢?
就是事件从最深的节点开始,然后逐步向上传播事件,举个例子:页面上有这么一个节点树,div>ul>li>a;比如给最里面的a加一个click点击事件,那么这个事件就会一层一层的往外执行,执行顺序a>li>ul>div,有这样一个机制,那么我们给最外面的div加点击事件,那么里面的ul,li,a做点击事件的时候,都会冒泡到最外层的div上,所以都会触发,这就是事件委托,委托它们父级代为执行事件。
如果我们只想在点击li的时候触发 点击事件,点击 ul的时候不会触发,这个时候我们可以使用(target):
Event对象提供了一个属性叫target,可以返回事件的目标节点,也就是目标源,target就可以表示最初触发事件的DOM元素,标准浏览器用ev.target,IE浏览器用event.srcElement,这时只是获取了当前节点的位置,并不知道是什么节点名称,这里我们用nodeName来获取具体是什么标签名,这个返回的是一个大写的,我们需要转成小写(target.nodeName.toLowerCase)再做比较
if(target.nodeName.toLowerCase() == ‘li’)
通常我们会比较 event.target 和 this 来确定事件是不是由于冒泡而触发的。
不知道你们有没有踩过,js运算时出现多位小数的坑,比如 22.77+10,结果竟然是32.769999999996。
目前我的解决方案是这样的:
首先将小数变成整数,然后再除于相应的倍数。比如上面的计算可以写成((22.77×100)+(10×100))/100
|
|
要理解闭包,首先必须理解Javascript特殊的变量作用域。
变量的作用域无非就是两种:全局变量和局部变量。
Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。
安装Node(必须)
作用:用来生成静态页面的
到Node.js官网下载相应平台的最新版本,一路安装即可。
安装Git(必须)
作用:把本地的hexo内容提交到github上去。
more >>
1、 安装node.js
如果是新建项目,执行 npm init 创建package.json文件
2、全局安装gulp
$ npm install –global gulp
3、项目本地安装gulp
$ npm install –save-dev gulp
( –save 可以让gulp插件显示在 package.json中)
more >>
缺失模块。
1、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
2、在根目录_config.yml里添加配置:
jsonContent:
meta: false
pages: false
posts:
title: true
date: true
path: true
text: true
raw: false
content: false
slug: false
updated: false
comments: false
link: false
permalink: false
excerpt: false
categories: false
tags: true