获得徽章 0
#沸你不可#
队名:前端反卷大队
队员:@前端杨同学 @frllk 人生缺张草稿🌾

var f = function g () {
return 23
}
typeof g()

typeof f => function
typeof f() => number
typeof g => undefined
typeof g() => ReferenceError,g is not defined
展开
1
#沸你不可#
队名:前端反卷大队
队员:@前端杨同学 @frllk 人生缺张草稿🌾

标准事件模型顺序:事件捕获->事件处理->事件冒泡
评论
#沸你不可#
队名:前端反卷大队
队员:@前端杨同学 @frllk 人生缺张草稿🌾

一行代码求数组中最大的值
Math.max.apply(null, arr)
展开
1
#沸你不可#
队名:前端反卷大队
队员:@前端杨同学 @frllk 人生缺张草稿🌾

以下代码输出的结果是什么
let obj = {
num1: 117
}
let res = obj;
obj.child = ojb = {num2: 935};
var x = y = res.child.num2;
console.log(obj.child);
console.log(re.nums1);
console.log(y);

// js在执行赋值语句时,会先从左往右解析变量名,转换为变量值,然后从左到右执行赋值。
obj.child = {num2:935}
{num1:117}.child = {num2:935}
此时res为{num1:117, child: {num2: 935}}'
同理var x = y = res.child.num2 y = 935
展开
1
赞了这篇沸点
#沸你不可#

队名:前端反卷大队
队员:@前端杨同学 @frllk @人生缺张草稿

window.name 有什么用?

● 获取/设置浏览器窗口的名称
● 无论是否同源,只要在同一个浏览器窗口里,前一个网页设置了这个属性,后一个网页可以读取它,所以可以通过这个特性来进行跨域数据传递
● 但是现代 web 应用不推荐使用这个属性进行跨域通信,应使用 postMessage API 来进行敏感的跨域通信


欢迎大家留言讨论,下面是最近总结的闭包知识点,也欢迎大家前来点赞讨论
展开
1
#沸你不可#
队名:前端反卷大队
队员:@前端杨同学 @frllk @人生缺张草稿

以下代码输出的结果是什么
let obj = {
num1: 117
}
let res = obj;
obj.child = ojb = {num2: 935};
var x = y = res.child.num2;
console.log(obj.child);
console.log(re.nums1);
console.log(y);

// js在执行赋值语句时,会先从左往右解析变量名,转换为变量值,然后从左到右执行赋值。
obj.child = {num2:935}
{num1:117}.child = {num2:935}
此时res为{num1:117, child: {num2: 935}}'
同理var x = y = res.child.num2 y = 935
展开
评论
赞了这篇沸点
#沸你不可#
【我们都是知识分享官 1.17】
队名:前端反卷大队
队员:@前端杨同学 @人生缺张草稿🌾

this的四种指向:
1. 直接调用的情况下this指向window,即直接调用一个可以直接调用的函数,this指向window
2. new运算符,则this指向当前new出来的函数对象
3. 创建一个对象,然后通过对象进行调用,this指向该对象(谁调用,指向谁)
4. 箭头函数中没有this,箭头函数中的this指向的是上下文的this
展开
评论
#沸你不可#
队名:前端反卷大队
队员:@前端杨同学 @frllk @人生缺张草稿

检测是否是数组的方式:
Array.isArray()
instanceof
Object.prototype.toString.call()
展开
1
#沸你不可#
队名:前端反卷大队
队员:@前端杨同学 @frllk @人生缺张草稿🌾

执行以下程序,分别输出什么
for(var i = 0;i<2;i++){
setTimeout(function(){console.log(i)},0) ….①
}

for(var i = 0;i<2;i++){
(function(i){
setTimeout(function(){console.log(i);},0) …②
}(i))
}
A.setTimeout是异步的,定时函数被加入执行队列,等(for循环)主程序运行完毕时,此时再调用定时函数,i的值已经变为2,两次的定时函数都会共用i=2这个值,因此打印2个2
B. js的作用域是链式的,当for循环函数内部的子块有引用的时候是不会销毁的。这里运用了闭包,外层 function(i)保持着对i的引用,因此每次 i的值得以保留,每次调用定时函数内层function都有自己的私有变量值。 因此打印 0 1
展开
评论
#沸你不可#
执行以下程序,分别输出什么
for(var i = 0;i<2;i++){
setTimeout(function(){console.log(i)},0) ….①
}

for(var i = 0;i<2;i++){
(function(i){
setTimeout(function(){console.log(i);},0) …②
}(i))
}
A.setTimeout是异步的,定时函数被加入执行队列,等(for循环)主程序运行完毕时,此时再调用定时函数,i的值已经变为2,两次的定时函数都会共用i=2这个值,因此打印2个2
B. js的作用域是链式的,当for循环函数内部的子块有引用的时候是不会销毁的。这里运用了闭包,外层 function(i)保持着对i的引用,因此每次 i的值得以保留,每次调用定时函数内层function都有自己的私有变量值。 因此打印 0 1
展开
评论
赞了这篇沸点
#沸你不可#
队名:前端反卷大队
队员:@前端杨同学 @frllk 人生缺张草稿🌾

箭头函数为什么不能作为构造函数?

使用 new 命令执行构造函数,返回实例对象的过程分为四步
1、创建一个空对象,作为将要返回的对象实例
2、将这个空对象的原型 __proto__,指向构造函数的 prototype 属性
3、将这个空对象赋值给构造函数内部的 this
4、开始执行构造函数内部的代码

而箭头函数没有自己的 this,没有 prototype 属性,自然也就没有 prototype 属性上的 constructor 属性了,所以使用 new 命令执行箭头函数时会报错 TypeError: xxx is not a constructor
展开
1
人生缺张草稿🌾的头像
关注了
frllk
前端开发工程师
人生缺张草稿🌾的头像
前端开发工程师
赞了这篇沸点
#沸你不可#
【我们都是知识分享官 1.17】
队名:前端反卷大队
队员:@前端杨同学 @人生缺张草稿🌾

vue中计算属性传值:
// 销售计入模式
saleList () {
return function (linkedCode) {
return this.getList('20XXD', linkedCode) || []
}
}
// 使用
<el-option
v-for="item in saleList (form.hasStoreInside)"
:key="item.code"
:label="item.value"
:value="item.code"
/>
展开
评论
#沸你不可#
将集合变为数组都有哪些方法
Array.from(a)
[].slice.apply(a)
[...a]
[].map.cell(a, o => 0)
展开
评论
#沸你不可#
队名:前端反卷大队
队员:@前端杨同学 @frllk @人生缺张草稿🌾
评论
#沸你不可#
队名:前端反卷大队
队员:@前端杨同学 @frllk
评论
下一页
个人成就
文章被点赞 170
文章被阅读 56,302
掘力值 1,316
收藏集
0
关注标签
114
加入于