NodeJS
node.js1234567// 基于Chrome v8 的js运行环境// 使用javascript的开发平台// js框架库1. 基于 [Express 框架](http://www.expressjs.com.cn/),可以快速构建 `Web` 应用2. 基于 [Electron 框架](https://electronjs.org/),可以构建跨平台的桌面应用3. 基于 [restify 框架](http://restify.com/),可以快速构建 `API` 接口项目4. 读写和操作数据库、创建实用的命令行工具辅助前端开发、etc…
终端命令12345678910111213// cmdesc // 清除当前命令cls // 清空命令行tab // 路径补全dir // 查看目录cd.>文件 // 创建文件md // 创建文件夹在文件地址栏直接cmd可以打开当前目录路径的cmd终端窗口// powershellshift+右键 打开powershell终端New-Item 文件 // 新建文件
文件读写模块(fs)1234567File system // 文件系 ...
mouseleave的中文输入法问题
onmouseleave 鼠标移出事件
在textarea中用中文输入法输入内容时 发现mouseleave事件被触发 导致输入框被隐藏
解决办法 给mouseleave事件处理函数加判断条件 判断光标是否在容器内
12345678910fn(e) { const x = e.offsetX; // 以当前事件的目标对象左上角为原点,定位x轴坐标 const y = e.offsetY; // 以当前事件的目标对象左上角为原点,定位y轴坐标 const w = this.$refs.container.offsetWidth; // 绑定了鼠标移出事件的容器宽度包括了 padding 和 border const h = this.$refs.container.offsetHeight; // 绑定了鼠标移出事件的容器高度包括了 padding 和 border if (x < 0 || y < 0 || x >= w || y >= h) { // 判断光标是否移出容器 ...
less
less的使用官网地址
变量(Variables)1234567@width: 10px;@height: @width + 10px;#header { width: @width; height: @height;}
编译为
1234#header { width: 10px; height: 20px;}
混合(Mixins)混合(Mixin)是一种将一组属性从一个规则集包含(或混入)到另一个规则集的方法。
1234.bordered { border-top: dotted 1px black; border-bottom: solid 2px black;}
123456789#menu a { color: #111; .bordered();}.post a { color: red; .bordered();}
.bordered 类所包含的属性就将同时出现在 #menu a 和 .post a 中了。(#ids也可以)
嵌套(Nesting) ...
js一些内置对象的用法
.charCodeAt() 通过索引获取字符的ASCII码值
判断字符是 数字,大写字母,小写字母,符号 中的哪一种
1234567891011var content = prompt('请输入一个字符');var code = content.charCodeAt(0);if(code >= 48 && code <= 57){ document.write('这是一个数字');}else if(code >= 65 && code <= 90){ document.write('这是一个大写字母。');}else if(code >= 97 && code <= 122){ document.write('这是一个小写字母。');}else{ document.write('这是一个符号');}
统计字符串中的数字,大 ...
运算符
运算符的分类
算数运算符
递增和递减运算符
比较运算符
逻辑运算符
赋值运算符
算数运算符算术运算符概述概念:算术运算使用的符号,用于执行两个变量或值的算术运算。
12345+ 加- 减* 乘/ 除% 取余
表达式最终都会有一个结果,返回给我们,我们成为返回值
浮点数的精度问题浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数。
12var result = 0.1 + 0.2; // 结果不是 0.3,而是:0.30000000000000004console.log(0.07 * 100); // 结果不是 7, 而是:7.000000000000001
所以:不要直接判断两个浮点数是否相等 !
表达式和返回值表达式:是由数字、运算符、变量等以能求得数值的有意义排列方法所得的组合 简单理解:是由数字、运算符、变量等组成的式子
递增和递减运算符
前置递增运算符
++num 前置递增,就是自加1,类似于 num = num + 1,但是 ++num 写起来更简单。
使用口诀:先自加,后返回值
12var num = 10;a ...
JS的组成和JS的数据类型
JavaScript是什么布兰登·艾奇(Brendan Eich,1961年~)。神奇的大哥用10天完成 JavaScript 设计。最初命名为 LiveScript,后来在与 Sun 合作之后将其改名为 JavaScript。
JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言 (Script 是脚本的意思)
脚本语言:不需要编译,运行过程中由 js 解释器( js 引擎)逐行来进行解释并执行
现在也可以基于 Node.js 技术进行服务器端编程
JavaScript 的组成
ECMAScript (JavaScript语法)
DOM (页面文档对象模型)
BOM (浏览器对象模型)
ECMAScript ECMAScript 是由ECMA 国际( 原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为 JavaScript或 JScript,但实际上后两者是 ECMAScript 语言的实现和扩展。
ECMAScript:规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵 ...
数组和函数
数组创建数组的方式
12345678var 数组名 = new Array();var arr = new Array(); // 创建一个新的空数组var arr = new Array(1,2,3,4); // 创建带初始值的数组//1. 使用数组字面量方式创建空的数组var 数组名 = [];//2. 使用数组字面量方式创建带初始值的数组var 数组名 = ['小白','小黑','大黄','瑞奇'];
通过索引可以访问、设置、修改对应的数组元素
1234// 定义数组var arrStus = [1,2,3];// 获取数组中的第2个元素alert(arrStus[1]);
注意:如果访问时数组没有和索引值对应的元素,则得到的值是undefined
使用“数组名.length”可以访问数组元素的数量(数组长度)。
数组中可以通过以下方式在数组的末尾插入新元素:
1数组[ 数组.length ] = 新数据;
函数函数的概念 在 JS 里面,可能会定义非常多的相同代 ...
内置对象和数据类型
内置对象内置对象 JavaScript 中的对象分为3种:自定义对象 、内置对象、 浏览器对象 前面两种对象是JS 基础 内容,属于 ECMAScript; 第三个浏览器对象属于 JS 独有的, JS API 讲解内置对象就是指 JS 语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法),内置对象最大的优点就是帮助我们快速开发
JavaScript 提供了多个内置对象:Math、 Date 、Array、String等
查文档 查找文档:学习一个内置对象的使用,只要学会其常用成员的使用即可,我们可以通过查文档学习,可以通过MDN/W3C来查询。 Mozilla 开发者网络(MDN)提供了有关开放网络技术(Open Web)的信息,包括 HTML、CSS 和万维网及 HTML5 应用的 API。 MDN:https://developer.mozilla.org/zh-CN/
Math对象Math 对象不是构造函数,它具有数学常数和函 ...
作用域和对象
作用域全局作用域作用于所有代码执行的环境(整个 script 标签内部)或者一个独立的 js 文件。
局部作用域作用于函数内的代码环境,就是局部作用域。 因为跟函数有关系,所以也称为函数作用域。
JS没有块级作用域(在ES6之前)块作用域由 { } 包括。
变量的作用域全局变量
在全局作用域下声明的变量叫做全局变量(在函数外部定义的变量)。
全局变量在代码的任何位置都可以使用
在全局作用域下 var 声明的变量 是全局变量
特殊情况下,在函数内不使用 var 声明的变量也是全局变量(不建议使用)
局部变量
在局部作用域下声明的变量叫做局部变量(在函数内部定义的变量)
局部变量只能在该函数内部使用
在函数内部 var 声明的变量是局部变量
函数的形参实际上就是局部变量
全局变量和局部变量的区别
全局变量:在任何一个地方都可以使用,只有在浏览器关闭时才会被销毁,因此比较占内存
局部变量:只在函数内部使用,当其所在的代码块被执行时,会被初始化;当代码块运行结束后,就会被销毁,因此更节省内存空间
作用域链如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域;根据在**[内部 ...
jQuery
jQuery1// JavaScript库:即 library,是一个封装好的特定的集合(方法和函数)。从封装一大堆函数的角度理解库,就是在这个库中,封装了很多预先定义好的函数在里面,比如动画animate、hide、show,比如获取元素等。
入口函数123// 等待页面DOM加载完毕再去执行js代码(不包括图片,视频等等)$(document).ready(function(){});$(function(){});
版本1231.x // 兼容ie6782.x // 使用基于jquery的插件 不兼容ie678(主流,稳定)3.x // 使用了一些新的语法(阮一峰的es6入门) 不兼容ie678
引入12// 本地引入// 使用cdn的方式加载 只要有其他网页使用过 再使用我们网页时就不会重新下载 加载速度更快
DOM对象和jQuery对象123// 用原生js获取的对象就是DOM对象// 用jquery方式获取的对象就是jQuery对象 本质:通过$把DOM元素进行了包装// jQuery对象只能使用jQuer ...