js进阶之函数与对象

7 篇文章 0 订阅
6 篇文章 0 订阅

数据类型:string number boolean null undefined object
(前五个为基本数据类型 都是单一的值,值与值之间没有任何联系,不能成为一个整体,
只要不是这五种,在js中都是对象(object)对象是一个复合的数据对象,在对象中可以保存不同数据类型的属性)
对象的分类
1.内建对象:
由es标准定义的对象,在任何的es的实现都可以使用
比如:math string number function Array
function是一种特殊的对象,因为它可以执行
array是一种特殊的对象,通过数值下标操作,且是有序的
2.宿主对象
由js运行环境提供的对象,目前由浏览器环境提供的对象,
bom 和 dom 比如console
3.自定义对象
自己创造的对象
创建对象
使用new关键词调用的函数,是构造函数,构造函数是专门用来创造对象的函数
对象的属性名可以是任何值,属性值可以是任何数据类型
console.log('text’in obj)boolean可以检验这个属性名是否在对象中。
判断数据的类型方法:1.typeof 2.instanceof(判断对象的具体类型!!!) 3.===
一.typeof 与 instanceof 区别?
正因为typeof遇到null,数组,对象object时都会返回object类型,
所以当我们要判断一个对象是否是数组时
或者判断某个变量是否是某个对象的实例则要选择使用另一个关键语法instanceof
instanceof用于判断一个变量是否某个对象的实例,如var a=new Array();alert(a instanceof Array);会返回true,
同时alert(a instanceof Object)也会返回true;这是因为Array是object的子类。
再如:function test(){};var a=new test();alert(a instanceof test)会返回true。
二.undefined与null的区别?
undefined代表定义了未赋值
null是赋值定义为null
a = null,起始什么时候将变量值赋值为null,表明将来要将这个变量a赋值为对象
最后将对象值赋值为null,b = {a:1,c:2}b = null;让b指向的对象{a:1,c:2}成为垃圾对象,(被浏览器回收)
三.严格区分变量类型与数据类型?
变量类型指的是变量内存值的类型,基本类型:保存就是基本类型的数据,引用类型保存的内存值
数据的类型 基本类型,对象类型
var c = {} c指的是变量,c存的是后面的对象的地址。
三.什么数据,什么是内存,什么是变量,三者有什么关系?
数据:储存在内存中代表特定信息的东西,本质上是010101,内存中所以的操作的目标就是数据
操作:算术运算 逻辑运算 赋值 运行函数
内存:内存条通电后,产生的可存储数据的空间(临时的)
一块内存存的两个数据:内部存储的数据和地址值
内存分类:栈:全局变量和局部变量(地址值指向堆里的对象) 堆:对象 函数在堆空间 函数名在栈中
内存的产生和死亡:内存条–>通电–>产生内存空间–>存储数据–>处理数据–>断电–>内存空间和数据消失
变量:变量是指可变化的量,由变量名和变量值组成,每个变量都对应的一块小内存,变量名用来查找内存中保存的数值数据
var obj = {name:“bob“} obj.name里的obj指的是内容
三者关系:内存用来存储数据的空间,变量是内存的标识。
四. a = XXX a中保存的是什么?
如果XXX是基本数据,保存的就是这个数据,XXX是对象,保存的就是这个对象的地址值,
XXX是一个变量,保存的是XXX的内存内容,可能是以上两个可能
五.关于引用变量赋值问题
两个引用变量指向同一个对象,通过一个变量,修改对象内部数据,另一个变量看到的是修改之后的数据
两个引用变量指向同一个对象,其中一个引用变量,指向另外一个对象,另外一个变量依然指向原理的对象
比如 a = {d:1} b = a a = {d:2},b.d === 1(true)
六.在js调用函数时传递变量参数时,是值传递还是引用(地址)传递?
两种理解 一:都是地址值传递 二 可能是值传递,也可能是引用传递
七.js引擎如何管理内存?
1.内存生命周期 :1.分配小内存空间,得到它的使用权,存储数据,可以反复操作,释放小内存空间
2.释放内存 局部变量 函数执行完自动释放,对象:在成为垃圾对象被垃圾回收机制回收
八.什么是对象
多个数据的封装体,一个对象代表现实中的一个事物。可以用来统一管理多个数据,由属性和方法组成
方法是一种特殊的属性,属性值为函数。如何访问对象内部数据 如p.属性名或者p[‘属性名’](当属性名包含
特殊字符‘-’空格,变量名不确定,即属性值为变量这些情况用p[‘属性名’])
九.什么是函数?
具有实现特定功能的n条语句的封装体,只有函数时可以执行的,其他类型的数据不能执行,好处
提高代码复用。便于阅读交流。call/apply可以让一个函数成为指定任意对象的方法进行调用
比如
c = {} function b = {console.log(1)} b.apply(c) 会输出1
十 回调函数
特点:你定义的,你没有调用,但最终它执行了
常见回调函数,dom时间回调函数,定时器回调函数,ajax请求回调函数,生命周期回调函数

更多前端资料

请关注公众号:前端从入门到SP
微信扫描二维码
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值