获得徽章 0
#每天一个知识点#
函数柯里化
//是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术
function curryIt(fn) {
let length = fn.length, args = [];
let result = function (arg) {
args.push(arg);
length--;
if(length <= 0) {
return fn.apply(this, args);
} else {
return result;
}
}
return result;
}
函数柯里化
//是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术
function curryIt(fn) {
let length = fn.length, args = [];
let result = function (arg) {
args.push(arg);
length--;
if(length <= 0) {
return fn.apply(this, args);
} else {
return result;
}
}
return result;
}
展开
评论
点赞
#每天一个知识点#
异步加载script
function loadScript(url, callback) {
let oscript = document.createElement("script");
if(oscript.readyState) { //ie8及以下版本
oscript.onreadystatechange = function () {
if(oscript.readyState === 'complete' || oscript.readyState === 'loaded') {
callback();
}
}
} else {
oscript.onload = function () {
callback();
}
}
oscript.src = url;
document.body.appendChild(oscript);
}
异步加载script
function loadScript(url, callback) {
let oscript = document.createElement("script");
if(oscript.readyState) { //ie8及以下版本
oscript.onreadystatechange = function () {
if(oscript.readyState === 'complete' || oscript.readyState === 'loaded') {
callback();
}
}
} else {
oscript.onload = function () {
callback();
}
}
oscript.src = url;
document.body.appendChild(oscript);
}
展开
评论
点赞
#每天一个知识点#
数组去重:
方法一:
function unique1(arr) {
retrun [...new Set(arr)]
}
方法二:
function unique2(arr) {
var obj = {};
return arr.filter(ele => {
if(!obj[ele]) {
obj[ele] = true;
return true;
}
})
}
方法三:
function unique3(arr) {
var result = [];
arr.forEach(ele => {
if(result.indexof(ele) == -1) {
return result.push(ele)
}
})
return result;
}
数组去重:
方法一:
function unique1(arr) {
retrun [...new Set(arr)]
}
方法二:
function unique2(arr) {
var obj = {};
return arr.filter(ele => {
if(!obj[ele]) {
obj[ele] = true;
return true;
}
})
}
方法三:
function unique3(arr) {
var result = [];
arr.forEach(ele => {
if(result.indexof(ele) == -1) {
return result.push(ele)
}
})
return result;
}
展开
2
2
#每天一个知识点#
"??"和"?.":
"??"表示:只有左侧的值为null或undefined时才使用右侧的值。
“?.”表示:可选链操作符(?.)允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。操作符的功能类似于链式操作符,不同之处在于,在引用为空(null或undefined)的情况下不会引起错误,该表达式短路返回值。
示例:
let obj = {
name: 'zhang san',
age: 16
}
let sex1 = obj.detail?.sex
let sex2 = obj.detail?.sex ?? '男'
console.log(sex1) //undefined
console.log(sex2) //男
"??"和"?.":
"??"表示:只有左侧的值为null或undefined时才使用右侧的值。
“?.”表示:可选链操作符(?.)允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。操作符的功能类似于链式操作符,不同之处在于,在引用为空(null或undefined)的情况下不会引起错误,该表达式短路返回值。
示例:
let obj = {
name: 'zhang san',
age: 16
}
let sex1 = obj.detail?.sex
let sex2 = obj.detail?.sex ?? '男'
console.log(sex1) //undefined
console.log(sex2) //男
展开
评论
点赞
hello 我是李治,是一名28岁的转行准程序员,我选择了前端作为未来程序员生涯的技术方向,期待和大佬们能有更多的交流