快键键
已经敲代码这么久, 分享一下自己的小习惯(可能有点乱有点杂)
win+S
可以说是 window 用户的神器, 可以随意开启全局的软件, 配合 cmd 使用, alt+F4 直接关闭这样就省下按鼠标的时间
ctrl+shift+tab
在 webstorm 中快速打开本项目文件也可以直接打开 cmd, 不会打开 webstorm 自带的 cmd 我 习惯使用 alt+F12
alt+tab
这个切换窗口你们可以用的特别多, 但是 ctrl+alt+tab 你们肯定用的少吧, 这个你们用多了, 就发现还是比 alt+tab 好用的, 特别你开启很多窗口的时候
ctrl+shift+esc
开启任务管理器你们肯定知道 ctrl+alt+. 可是我是 68 的键盘没有. 表示很无奈
ctrl+w
关闭网页用 chrome 浏览器用多了, 蛋疼的是不能双击关闭网页, 后来知道可以按滚纶关闭, 但是, 我鼠标不怎么样, 还是这个比较方便
ctrl+c
这个你不会以为我要跟你说复制, 呵呵, 这个是 webstorm 中回到行首, 解决了一部分不喜欢的方向键的烦恼
ctrl+tab 或 ctrl+1,2,3
快速切换浏览器窗口, 可以只是强迫症来的时候用的多, 或者吃饭一只手的时候可以用
直接上图
对于英语单词还是比较吃力的我, 简直是我人生的福音, 超超超级好用
去掉快键键的箭头 简值是强迫症的福音
phpstorm 多窗口 alt + 窗口
解决用习惯了 webstorm 快速转移 phpstorm, 当然少不了快键键了, 直接上图
如果你要查看自己的 id, 直接在 cmd 输入 ipconfig 完美解决
下包
在用 webstorm 打开 cmdalt+F12
npm init npm install 包名 --save //save 把包信息放在 package
dower install 包名 // 直接在本文件夹下面生成包, 你要是怕麻烦可以用这个下包工具
其实你也可以直接报 npm 的下载地址改成淘宝镜像, 在安装路径 npm 文件夹下 npmrc 文件
ctrl+shift+F10 webstorm 直接打开浏览器如果是 js 文件就会直接打开控制台
ctrl+A 两次 在用 oneNote 的时候你会发现 ctrl+A 会全选一行内容, 两次就会全选全部内容
F11 全屏 -- 看视频专用
win + 左 / 右 分屏, 可以适合边看文档边敲代码
win + 上 全屏
win + 下 最小化(这个是不是很贴心又解决了用鼠标的烦恼呀)
Fn+F6 关闭电脑触屏版
语法糖
糖在不改变其所在位置的语法结构的前提下实现了运行时等价, 之所以叫语法糖, 是因为加糖后的代码写的很爽, 代码更简洁流畅语义自然
例如: for 循环, 三元表达式 ---
解决 node_modules 卡顿问题
如果觉得乱的话可以看下面的这张图简要的写了一下
Alt+F1 第七个 所在的文件路径(最新版 webstorm 好像不行)
ctrl+shift + 左. 右 目录调大调小
ctrl+F12 查找定义多少函数等目录(这么高级的功能我还没怎么用过)
alt + 左. 右 窗口文件左右切换(这么好用还是经常忘记真的不应该)
Alt+1 打开关闭项目窗口
itar 遍历一个 for 循环
cc:ie6 兼容 ie6(然后改成 7,8 就行了, 不相当于兼容 ie6,7,8)
自定义代码块保存路径 找到 c 盘安装目录 config/template 里面就是的
给桌面时间添加秒
学习篇
不管什么时候要不断保持学习的态度
再与产品经理打交道
第三方选择
你可以问清楚对方的真实需求, 给出一个你可以做到的方案, 而不是直接拒绝对方的方案
在工作和生活中, 不要把所有事情的解决方案都放在: 不 (第一选择, 要赢) 或者是 (第二选择, 认怂) 上, 如果只存在两种选择, 很容易就进入一种推拉的环境中, 实际上是可以考虑第三选择.
第三选择并不是某一方的妥协, 他的核心思想是创造力, 找到新的出路, 让双方协同找到一个大家都能接受的新方案
知识篇
js 基础部分
一 数据类型
1) Number 数据类型
2) String 字符串(双引号, 单引号)
3) Boolean 布尔数据类型(true, false)
4) undefined 变量未初始化(没有给变量赋值)
5) null 变量未引用(值为空)
6) object 对象 array 数组
二 算术运算符
1) 两个数字类型变量相加或相减, 得到一个数字类型
2) 一个数字类型和一个字符串相加, 得到一个字符串
3) 一个数字类型和一个非数字类型的字符串得到 NaN
三 Math 对象
1) Math.ceil() 天花板函数 向上取整(1.1---2)
2) Math.floor() 地板函数 向下取整(1.1---1)
3) Math.max() Math.min()
4) Math.pow(n1,n2) n1 的 n2 次方
5) Math.round() 四舍五入
6) Math.random() [0,1)的随机数
四 数据类型转换
1. 数字类型转字符串
a) Strong() b)变量. toString()
1. 字符串转数字类型
Number()
数字类型和小数类型字符串, 转换成数字,
非数字字符串, 转换成 NaN
parseInt()
数字开头的字符串, 转换之后得到前面的数字
非数字 ---NaN 小数 --- 取整
parseFloat
跟 parseInt 同理, 不同点是 小数 --- 小数
1. 转布尔类型
Boolean()
数字和字符串 true
undefined null 0 false
1. 逻辑运算符
& 与 || 或 ! 非
等号运算符
== 只判断内容不判断数据类型
=== 判断内容还判断数字类型
!== 不仅判断内容还判断数字类型
条件判断
If(条件){true 内容}else{false 内容}
If(条件){true 的内容 false 执行下面内容}else if(条件){true 的内容}else{}
While(条件表达式){true 循环执行, false, 循环终止}
Break 语句 只要代码遇到 break, 程序立即停止
Continue 跳出本次循环, 整个循环继续执行
Switch(条件){循环体}
三元表达式
表达式? true:false;
优先级
()优先级最高 一元运算符 ++ -- !
/ % + -
如果我们想把函数内部的值赋值为外部, 必须使用 return;
如果没有 return 或者 return 没有值, 那么返回值都是 undefined
- // 隐式全局变量
- // 隐式全局变量
- function fn(){
- //b 和 c 都是隐式全局变量
- var a = b = c = 1;
- //e 和 f 都是隐式全局变量(分号相当于换行)
- var d = 1;e =2;f=3;
- //g 和 i 都不是隐式全局变量
- var g = 1,h= 2,i=3;
- }
对象本身没有 length, 所以不能用 for 循环遍历
11. for(var k in aaa){ // console.log(k); // //aaa.k 代表 aaa 这个对象的 k 属性的值, 并不是 k 对应的变量值的属性 //// console.log(aaa.k); // //aaa[k], 代表的是 aaa 这个对象中 k 这个变量值对应的属性值 // console.log(aaa[k]); // }
在调用函数的时候, 传参的过程其实就是用实参给形参赋值的过程
当参数为值类型的时候, 函数内和函数外的两个变量完全不同, 仅仅只是存的值一样而已, 修改时互不影响
当参数为引用类型的时候, 函数内和函数外的两个变量不同, 但是共同指向同一个对象, 在函数内修改对象数据时会影响外部
- var num = 1;
- fn1(num);
- console.log(num);
- function fn1(aaa) {
- aaa = aaa * 10;
- }
- // 复杂数据类型
- var obj = new Object();
- obj.name = "张三";
- fn2(obj);
- console.log(obj);
- function fn2(object) {
- object.name = "李四";
- }
五 判断数组和转换数组
Instanceof: 是一个关键字 判断 A 是否是 B 类型
布尔类型值 = A Instanceof B ;
Array.isArray() //html5 中新增 判断是不是数组
布尔类型值 = Array.isArray(变量) ;
调用者: Array 参数: 变量(被检测值) 返回值: 布尔类型
toString() // 把数组转换成字符串, 每一项用, 分割
字符串 = 数组. toString();
valueOf() // 返回数组对象本身
数组本身 = 数组. valueOf();
Join // 根据每个字符把数组元素连起来变成字符串
字符串 = 数组. join(变量);
变量可以有可以没有不写默认用逗号分隔, 无缝连接用空字符串
六 数组增删和换位置(原数组讲被修改)
push()
在数组最后面插入项, 返回数组的长度
数组 1 改后的长度 = 数组 1.push(元素 1);
pop()
取出数组中的最后一项, 返回最后一项
被删除的元素 = 数组 1.pop();
unshift()
在数组最前面插入项, 返回数组的长度
数组 1 改后的长度 = 数组 1.unshift(元素 1);
shift()
取出数组中的第一个元素, 返回最后一项
被删除的元素 = 数组 1.shift();
reverse()
翻转数组(原数组讲呗反转, 返回值也是被反转后的数组)
反转后的数组 = 数组 1.reverse();
sort();
给数组排序, 返回排序后的数组如何排序看参数
从小到大排序后的数组 = 数组 1.sort(function(a,b){ return a-b;});
无参: 按照数组元素的首字符对应的 Unicode 编码值从小到大排列数组元素
带参: 必须为函数 (回调函数 --callback) 函数中带有两个参数, 代表数组中的 前后元素如果计算后(a-b), 返回值为负数, a 排 b 前面等于 0 不动 返回值为正数, a 排 b 后面
concat()
把参数拼接到当前数组
新数组 = 数组 1.concat(数组 2);
slice()
从当前数组中截取一个新的数组, 不影响原来的数组, 参数 start 从 0 开始, end 从 1 开始
新数组 = 数组 1.slice(索引 1, 索引 2);
splice()
删除或替换当前数组的某些项目, 参数 start,deleteCount,options(要替换的项目)
新数组 = 数组 1.splice(起始索引, 结束索引, 替换内容);
indexOf()lastIndexOf()
如果没找到返回 - 1
索引值 = 数组. indexOf/lastIndexOf(数组中的元素);
迭代方法 不会修改原数组
every()filter()forEach()map()some()
数组 / boolean / 无 = 数组. every/filter/forEach/map/some(
function(element,index,arr){
程序和返回值;
}
);
这个属于 ES6 的内容我还是在后面详细介绍吧
清空数组
- var array = [1,2,3,4,5,6];
- array.splice(0,array.length); // 删除数组中所有项目
- array.length = 0; //length 属性可以赋值, 其它语言中 length 是只读
- array = []; // 推荐
来源: https://www.cnblogs.com/fangdongdemao/p/8450218.html