JS
变量
var variableName;
- 大小写敏感
内置类型
基本类型:
- Null \ undefined \
undefined 派生自 null,所以 null==undefined; // true
- boolean:true,false \ 转型函数 Boolean() \ if语句会自动执行Boolean转换
var t = true; t.toString(); // true Number(t); // Number(true) => 1
- string
字符是不可变的,改变时,先创建新的,再销毁旧的字符串;
- number
保存浮点数需要的内存空间是整数的两倍
不要测试浮点数值(0.1+0.2 == 0.3?)/* false*/
isNaN(obj)尝试转为数字; isNaN(true); // false,会被转为1
转换任意类型:Number( ); // ‘10a’: NaN
转换字符串类型:parseInt( ), parseFloat( )
- symbol??
对象:Object,引用类型
- constructor
- hasOwnProperty
- isPrototypeOf
- propertyIsEnumerable
- toLocaleString
- toString
- valueOf
Q:引用类型拷贝问题:
var a = {
name: "asi"
}
var b=a;
b.name="阿肆";
console.log(a.name); // 阿肆
Typeof
undefined \ string \ number \ boolean \ symbol
object \ function
类型判断: typeof obj === 'string'
Q:
var arr = null;
typeof arr; // object
Object.prototype.toString.call(arr); // [object Null]
类型转换
转Boolean
除了 null \ undefined \ false \ NaN \ '' \ 0 \ -0 , 其余均转为 true,包括对象
对象转基本类型
先调用 valueOf(),再调用 toString() var arr = { name:"asi", valueOf: function(){ return this.name; // 判断数字试为 NaN,接着执行toString }, toString: function(){ return 1; // 判断为数字 } }
布尔操作
- ! 非操作符:始终返回 布尔值,两个一起用返回obj的布尔值
- &&
- ||
四则运算
乘性操作符 * / %: 3/0=Infinity;
==操作符
比较运算符
函数
function funcName(){
}
原型
new
instanceof
this
执行上下文
闭包
深浅拷贝
- 浅拷贝
- 深拷贝
模块化
- CommonJS
- AMD
防抖
节流
继承
call,apply,bind区别 模拟实现
Promise实现
Generator实现
Map,FlapMap和Reduce
async和await
Proxy
为什么0.1+0.2 != 0.3
正则表达式
- 元字符
- 修饰语
- 字符简写
《 简记 》
ECMAScript标识符使用驼峰法;
ECMAScript数据类型具有动态性;变量为松散类型;
不使用var声明的变量将成为全局变量;
未经初始化的值,默认取到undefined;
ECMAScript中函数是对象,不是一种数据类型。
声明的变量如果是要存储对象,则在声明时最好初始化为 null值;
注释:
// 单行注释
/* 多行注释
*
*/
代码行位没有分好会导致代码压缩错误,也可以提高想能,检索解析器不用推测在哪里插入分号,提高性能;
valueof( ) toString( )
Q: 阿肆有问题?
typeof obj === ’ ’ ; // 为什么要用全等号?
javascript引擎是什么 ?
ES6新特性
var let
箭头函数
Browser
事件机制
- 事件触发三阶段
- 注册事件
- 事件代理
跨域
- JSONP
- CORS
- document.domain
- postMessage
Event loop
- Node中的Event loop
- 浏览器中的Event loop
存储
- cookies, localStorage, sessionStorage, indexDB
- Service Worker
渲染机制
- Load 和 DOMContentLoaded区别
- 图层
- 重绘(Repaint)和回流(R额flow)
- 减少重绘和回流
HTTP
概念
post 和 get区别
常见状态码
HTTP首部
从输入URL到页面加载完成的过程
CSS
居中
- 水平
- 垂直
flex
- sort