8.7错题整理

1.在这里插入图片描述
以上 javascript 代码执行后, 浏览器 alert 出来的结果分别是:
green blue
知识点一:js函数调用时加括号和不加括号的区别.不加括号相当于把函数代码赋给等号左边,加括号是把函数返回值赋给等号左边.
知识点二:js中this的用法,this总是指向调用它的对象,倒数第二行的getColor为windows调用的,倒数第一行的getColor是test4399对象调用的.

2.如何判断一个js对象是否是Array,arr为要判断的对象,其中最准确的方法是?
Object.prototype.toString.call(arr) === ‘[object Array]’;
简单概括下:
typeof(arr) 返回的是 Object
instanceof 在跨 frame 对象构建的场景下会失效
arr.toString 没有这种用法,正确的用法是 arr.toString() 返回的是数组的内容

3.js同步与异步间的执行
同步→异步→回调
promise是异步微任务,
setTimeout是异步宏任务,

4.如何规避javascript多人开发函数重名问题?
**可以通过命名规范,比如根据不同的开发人员实现的功能,在函数名加前缀

每个开发人员都把自己的函数封装到类中,然后调用的时候即使函数名相同,但是因为是要类.函数名来调用,所以也减少了重复的可能性****
5.JS基本数据类型
Undefined Null String Number Boolean Object Symbol
6.apply,call,bind的用法和区别(方法劫持)
用途:手动改变this的指向
区别:
1.apply和call会使当前函数立即执行,bind会返回一个函数,后续需要时再调用
2. call是apply的语法糖,只有传的参数不同,call中要传多个任意参数,apply只可以直接传数组或者类数组
3. bind是为函数绑定一个this上下文
规则: fn.apply(上下文环境,执行所需数组)
fn.call(上下文环境,执行所需单个参数)
fn.bind(上下文环境)
ps:如果上下文的值为null,则使用全局对象代替,相当于没传上下文还用以前的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值