数组属性
数组常用方法
数组去重
String 对象方法
创建对象的方式
Object构造函数创建
使用对象字面量表示法 var Person = {};``//相当于var Person = new Object();其实1和2是一种
使用工厂模式创建对象
使用构造函数创建对象
原型创建对象模式
组合使用构造函数模式和原型模式
js执行机制
数组最常用遍历方法
js继承的方式
原型链继承
借用构造函数继承
组合继承(组合原型链继承和借用构造函数继承)(常用)
原型式继承
寄生式继承
寄生组合式继承(常用)
闭包
什么是闭包
函数和函数内部能访问到的变量(也叫环境)的总和,就是一个闭包。
闭包的特点
声明在一个函数中的函数,函数嵌套函数,叫做闭包函数
函数内部可以引用外部的参数和变量
参数和变量不会被垃圾回收机制回收
闭包的用途
主要是为了设计私有的变量和方法,可以避免全局变量的污染,方便调用上下文的局部变量 加强封装性
主要可以访问其他函数内部变量
保护变量不被内存回收机制回收
闭包的缺点
增大内存的使用量,常驻内存,,使用不当会造成内存泄漏
曾经的需求
如果你调用一个对象里的函数,并且函数里再返回一个函数,返回值有this,此时this就指向了window,可以利用闭包特性,因为父级函数的this指向该对象,在父级函数里定义一个that=this,this就会指向该对象而不会指向window了,也可以使用箭头函数解决
创建自定义函数的时候,基本都要有传参,传参和返回的函数就构成了闭包 (取值和排序)
解决闭包造成的内存泄露
在退出函数之前,将不使用的局部变量全部删除。可以使变量赋值为null;
这段代码会导致内存泄露
window.onload = function(){
var el = document.getElementById("id");
el.onclick = function(){
alert(el.id);
}
}
解决方法为
window.onload = function(){
var el = document.getElementById("id");
var id = el.id; //解除循环引用
el.onclick = function(){
alert(id);
}
el = null; // 将闭包引用的外部函数中活动对象清除
}
避免变量的循环赋值和引用
递归
变量的作用域
变量在函数外定义,即为全局变量,全局变量就是在页面内都可以调用的变量,全局变量有 全局作用域: 网页中所有脚本和函数均可使用
变量在函数内声明,只能在函数内部访问,变量为局部作用域,
简述同步和异步的区别
所有任务可以分成两种,一种是同步任务(synchronous),另一种是异步任务(asynchronous)。同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;异步任务指的是,不进入主线程、而进入"任务队列"(task queue)的任务,只有等主线程任务执行完毕,"任务队列"开始通知主线程,请求执行任务,该任务才会进入主线程执行。
https://blog.csdn.net/qq_22855325/article/details/72958345
同步的概念应该是来自于OS中关于同步的概念:不同进程为协同完成某项工作而在先后次序上调整(通过阻塞,唤醒等方式).同步强调的是顺序性.谁先谁后.异步则不存在这种顺序性.
同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等请求完,页面刷新,新内容出现,用户看到新内容,进行下一步操作。
异步:浏览器访问服务器请求,用户正常操作,浏览器后端进行请求。等请求完,页面不刷新,新内容也会出现,用户看到新内容。
写一个函数,清除字符串前后的空格(兼容所有浏览器)
function trim(str) {
if (str && typeof str === "string") {
return str.replace(/(^\s)|(\s)$/g,""); //去除前后空白符
}
}
this指向
避免按钮多次点击请求ajax
原型及原型链
添加,移除,移动,复制,创建,查找节点
线程和进程的区别
获取浏览器url中查询字符串的参数
js字符串函数
如何确定一个变量时不是字符串类型
比较typeof和instanceof
判断一个字符串中出现最多的字符,并统计出现的次数
documentload和documentready区别
js中typeof放回的数据类型
事件绑定和普通事件区别
如何给ajax请求的数据绑定事件
列举三种强制类型转换和两种隐式转换
jQuery中$.bind(),$.on(),$.live()的异同点
jQuery中callback的作用
jQuery将变量对象转化成json字符串的方法
创建dom的几种方式 优劣点
Base64
事件冒泡-事件捕获-事件委托