JS高级
Posted yaokai729
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS高级相关的知识,希望对你有一定的参考价值。
类型判断
-
typeof:
-
可以判断:undefined/数值/字符串、布尔值、function
-
不能判断: null与object object与array
-
-
instanceof
-
判断对象的具体类型
-
-
===
-
可以判断:undefined,null
-
1.undefined与null的区别?
undefined代表定义未赋值
null定义并赋值,只是值为null
2.什么时候给变量赋值给null?
初始赋值,表明赋值为对象
结束前,使对象成为垃圾对象
内存分类
-
栈: 全局变量/局部变量
-
堆: 对象(对象名为变量,存在栈内存中
内存,变量,数据三者之间的关系
-
内存用来存储数据的空间
-
变量是内存的标识
如何访问对象内部数据?
-
.属性名:编码简单,有时不能用
-
[‘属性名‘]:编码简单,能通用
什么时候使用[‘属性名‘]的方式?
1.属性名包含特殊字符:- 空格
2.属性名不确定
var p =
var propName = ‘myAge‘
var value = 18
p.propName =value //不能用
p[propName] = value
关于引用变量赋值问题
-
n个引用变量指向同一个对象,通过一个变量修改对象内部数据,其他所有变量看到的是修改之后的数据。
-
2个引用变量指向同一个对象,让其中一个引用变量指向另一个对象,另一个引用变脸依然指向前一个对象
函数
如何执行函数
-
-
test():直接调用
-
obj.test():通过对象调用
-
new test():new调用
-
test.call/apply(obj):临时让test成为obj的方法进行调用(可以让一个函数成为指定任意对象的方法进行调用
-
回调函数
-
什么函数才是回调函数?
-
你定义的
-
你没有调用
-
但它最终执行了(在一定条件下或某个时刻)
-
-
常用的回调函数
-
dom事件回调函数
-
定时器回调函数
-
ajax请求回调函数(后面讲解)
-
-
1.$是一个函数 2.$执行后返回的是一个对象
函数中的this
-
this是什么?
-
一个关键字, 一个内置的引用变量
-
在函数中都可以直接使用this
-
this代表调用函数的当前对象
-
在定义函数时, this还没有确定, 只有在执行时才动态确定(绑定)的
-
-
如何确定this的值?
-
test()
-
obj.test()
-
new test()
-
test.call(obj)
本质上任何函数在执行时都是通过某个对象调用的
-
关于语句中的分号问题
-
js一条语句的后面可以不加分号
-
是否加分号是编码风格问题, 没有应该不应该,只有你自己喜欢不喜欢
-
在下面2种情况下不加分号会有问题
-
小括号开头的前一条语句
-
中方括号开头的前一条语句
-
-
解决办法: 在行首加分号
-
强有力的例子: vue.js库
以上是关于JS高级的主要内容,如果未能解决你的问题,请参考以下文章