js部分基础
2024-09-06 21:43:55
1.js的基本类型有哪些?引用类型有哪些?null和undefined的区别。
基础类型:number,null,regex,string,boolean 引用类型 : object,function,array
null是数据类型,undefined未定义
2.如何判断一个变量是Array类型?
array:Object.prototype.toString.call(obj) [object Array]
3.引用类型和基本类型的区别
引用类型:堆内存,是二级缓存,保存一个指针,指向另一个内存,如果程序不结束或者没有手动释放,则不释放 基本类型:栈内存,是一级缓存,由系统分配或者释放。
4.事件委托(手写例子)
<div id='parent'></div>
<script>
function delegate(dom,type,fn){
document.body.click(function(e){
if(e.target = dom){
fn(e)
}
})
}
<script>
5.对闭包的理解,闭包的优缺点?
闭包:一个可以让外部访问的函数。消耗内存
6.改变this的几种方法?
call , apply , bind
7.显式和隐式原型
显式原型:prototype , Function是一个Object,Function有一个属性prototype,它是一个指针,指向一个对象。这个对象有construsctor属性 隐式原型:_proto_ ,指向创建这个对象的函数的prototype,一个指针指向一个对象。
8.创建对象的多种方式
//字面量
var obj = {name:'test'} //构造函数
var obj = new Object({name:''})
9.实现继承的多种方式和优缺点
//原型链
function Parent(){
this.name=''
}
function Son(){}
Son.prototype = new Parent() //创建新对象
var son = Object.create(new Parent()) //call,apply
function Son(){
Parent.call(this,'')
} //es6
class Son extends Person{}
10.变量提升
var value = 1;
var test = function(){
console.log(value)
var value = 2;
}
test()
function test(){
console.log(value+1)
}
test();
// undefined , undefined
11.匿名函数
(function(){
alert('test')
})()
12.NaN != NaN,false != null
13.new 一个对象的过程
function ClassName (option){
console.log(option)
}
ClassName.prototype.say=function(){} let obj = new ClassName({}) 1.创建一个对象,传入原型 lo = Object.create(ClassName.prototype)
2.执行当前函数,并且this执行 newObj = ClassName.call(o)
3. 返回新的对象 newObj
14.实现一个bing函数
//bings函数
Function.prototype.binds = function () {
var args = [].slice.call(arguments,1),target = arguments[0]
return this.apply(target,args)
}
function tesa(a,b) {
console.log(this,a+b)
return a+b
}
console.log(tesa.binds({a:1},1,2))
最新文章
- JAVA 设计模式 职责链模式
- 批量导入Excel存在的问题及解决方案
- -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
- EF查看sql的方法
- pushState与replaceState区别
- Html5浏览器端less应用
- 【简单并查集】Farm Irrigation
- Jquery_基础(二) 包装集
- python 实现简单卷积网络框架
- 工具安装(mac)
- 消除TortoiseSVN 检出到(checkout)桌面上显示一堆问号
- UE4中多种颜色轮廓线的后期处理
- 随机取出数组中的某些值,并删除它们array_splice,array_slice
- html07
- SQLException: com.mchange.v2.c3p0.ComboPooledDataSource [ java.beans.IntrospectionException: java.lang.reflect.InvocationTargetException [numThreadsAwaitingCheckoutDefaultUser] ] has been closed()
- cnblogs.com用户体验
- Vue 源码 基础知识点
- [转载]查看JDK及Java框架的源代码
- 【Python】从简单案列中揭示常用内置函数以及数据类型
- spring boot 系统启动时运行代码(1)-@PostConstruct
热门文章
- Python(1)-第一天
- EasyUI系列学习(十一)-Accordion(分类)
- [ Nowcoder Contest 167 #D ] 重蹈覆辙
- 仿ofo单车做一个轮播效果
- Atmel studio 7.0 安装成功
- UVM基础之-------uvm report机制的使用
- Android 将Bitmap对象保存为png图片文件
- react Native环境 搭建
- 【Linux】CentOS安装Jenkins
- CAD由一个自定义实体事件中的id得到自定义实体对象(com接口VB语言)